浏览 1225 次
锁定老帖子 主题:Struts_jstl完全使用
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-02-15
最后修改:2009-02-18
*****Action中的处理:**************8 //====普通字符串======// request.setAttribute("hello", "Hello World"); //====对象===============// User user=new User(); user.setUsername("wulihai"); user.setAge(25); Group group=new Group(); group.setName("地下党"); user.setGroup(group); //=====以上是业务逻辑处理,应该单独放入一个业务处理类中====== request.setAttribute("user", user); //=======Map==============// Map elMap=new HashMap(); elMap.put("key1", "value1"); elMap.put("key2", "value2"); request.setAttribute("elMap", elMap); //=========集合======// List userlist=new ArrayList(); for (int i=0; i<10; i++) { User usr = new User(); usr.setUsername("USR_" + i); usr.setAge(25+i); userlist.add(usr); } request.setAttribute("userlist", userlist); //=========对象数组=========// User[] users = new User[10]; for (int i=0; i<10; i++) { User u = new User(); u.setUsername("U_" + i); users[i] = u; } request.setAttribute("users", users); //=========字符串数组========// String[] strArray = new String[]{"a", "b", "c"}; request.setAttribute("strArray", strArray); *******Jsp页面获取值*********************** //=====普通字符串,EL表达式的使用方法$和{},EL表达式的隐含对象pageScope/requestScope/sessionScope/applicationScope等等 如果为指定scope,它的搜索顺序是pageScope~applicationScope====// hello(el,scope=request): ${requestScope.hello}<br> hello(el,scope=session): ${sessionscope.hello} <br> //=====对象</li>使用"."来导航 姓名 : ${user.username}<br> 年龄 : ${user.age}<br> 所属组:${user.group.name}<br> //==Map</li>使用"."来导航 elMap.value1: ${elMap.key1}<br> elMap.value2: ${elMap.key2}<br> //==集合</li>使用中括号[]加下标数字导航<br> userlist[4].username: ${userlist[4].username}<br> userlist[4].age: ${userlist[4].age}<br> //==对象数组</li>使用中括号[]加下标数字导航<br> users[5].username:${users[5].username} //==字符串数组</li>使用中括号[]加下标数字导航<br> strArray[0]:${strArray[0] }<br> strArray[1]:${strArray[1] }<br> //==EL表达式对运算符的支持</li><br> 1+4:${1+4 }<br> 9-3:${9-2 }<Br> 2*3:${2*3 }<br> 9/2:${9/3 }<br> 9mod2:${9 mod 2 }<br> 4div1:${4div 1 }<br> ===================JSTL的核心标签 =================== //==c:out的value属性支持El表达式,<font color='red'>特别注意value后面可以跟El表达式,也可以跟字符串 hello(value="${hello}): <c:out value="${hello}"/><br> abcd:<c:out value="${abcd}" /><br> c:out的default属性,此外c:out的defalut属性是默认值,在value为空的情况下取default的值<br> abcd(default="为空"):<c:out value="${abcd}" default="为空"/><br> c:out的escapeXml属性,默认为true,原样输出<br> bj(escapeXml="false")<c:out value="${bj}" escapeXml="false"/><br> bj(escapeXml="true")<c:out value="${bj}" escapeXml="true"/><br> //==c:set/c:remove <c:set var="temp" value="${userlist[1].username}"/> temp:<c:out value="${temp}"/><br> <c:remove var="temp"/> temp:<c:out value="${temp}"/><br> //==c:if <c:if test="${v1 lt v2}"> v1 小于 v2 </c:if> //===c:forEach循环输出Map的元素==// <c:forEach items="${elMap}" var="m"> ${m.key},${m.value }<br> </c:forEach> //====c:choose/c:when/c:otherwise============// <table border="1"> <tr> <td>姓名</td> <td>年龄</td> <td>所属组</td> </tr> <c:choose> <c:when test="${(empty userlist)}">//判断userlist是否为空 <tr> <td colspan="3"> 没有合适的数据</td> </tr> </c:when> <c:otherwise> //=====迭代集合userlist,从第2个开始,第8个结束,步长为2======// <c:forEach items="${userlist}" var="usr" begin="2" end="8" step="2" varStatus="v"> //====两层嵌套,c:otherwise内部又好包含又c:when,c:otherwise===// <c:choose> <c:when test="${v.count % 2==0}">//===判断行数是否是偶数,如果是偶数,将背景色改为红色===// <tr bgcolor="red"> </c:when> <c:otherwise> <tr> </c:otherwise> </c:choose> <td>${usr.username}</td> <td>${usr.age }</td> <td>${usr.group.name }</td> </tr> </c:forEach> </c:otherwise> </c:choose> //=====c:import,相当于jsp中的include包含某个页面====// <c:import url="http://localhost:8080/login_struts"/> //=====credirect:重定向=====// <c:redirect context="/login_struts" url="/login.jsp"/> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |