服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

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


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

扫描关注微信公众号