本文将向大家讲述如何通过sun公司的jstl标签来访问list对象,并在jsp页面进行显示 一般而言,list对象会存储在request对象,session对象中,一般采用框架(比如说Struts框架中的Action)完成把list对象置入request对象中, XXAction{ public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { /*从session中获得用户信息*/ HttpSession session=request.getSession(); User user =(User)session.getAttribute("user"); request.setAttribute("user",user); /*建立rolelist*/ List rolelist =new ArrayList(); for(int i=0;i<5;i++){ Role role= new Role(i,"role"+i); rolelist.add(role); } request.setAttribute("role_list",rolelist); } 本文的讲解重点是jstl标签部分: <%@ taglib uri="/jstl/core" prefix="c"%> <c:set var="user" value="${user}" /> <tr bgcolor="#FFFFFF"> <td align="center" valign="top"> <!-- 因为涉及到中文字符问题,所以通过使用struts标签来读者资源文件中的adduser.role项,对应的中文编码为:角色--> <bean:message key="adduser.role" /></td> <td> <select name="role"> <c:forEach var="ro" items="${role_list}"><!--访问request中的role_list对象--> <c:choose> <c:when test="${user.role==ro.role_name}"><!--判定,相当于if(user.getrole().equlas(rolgetrolename()))假如user中的role和list中的role相同就在select中选中(高亮)--> <option selected="selected" value="<c:out value="${ro.role_id}"/>"><!--设定value项,这样保证页面中看到的是name,当选中 以后,传到接受端实际为id--> <c:out value="${ro.role_name}"/><!--看到的是role_name--> </option> </c:when> <c:otherwise><!--相当于else--> <option value="<c:out value="${ro.role_id}"/>"><!--原理同上--> <c:out value="${ro.role_name}"></c:out></option> </c:otherwise> </c:choose> </c:forEach><!--循环end--> </select></td> </tr>
|