用JSTL标签访问list且判断list的选中项

王朝html/css/js·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

本文将向大家讲述如何通过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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航