日期:2014-05-16  浏览次数:20303 次

JSTL的使用
	*****Action中的处理:**************
		//====普通字符串======//
		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页面获取值***********************
	
	li>普通字符串,EL表达式的使用方法$和{},EL表达式的隐含对象pageScope/requestScope/sessionScope/applicationScope等等
			如果为指定scope,它的搜索顺序是pageScope~applicationScope</li><br>
	
	hello(el,scope=request): ${requestScope.hello}<br>	
	hello(el,scope=session): ${sessionscope.hello} <br>
	
	<li>对象</li>使用"."来导航<br>
	姓名 : ${user.username}<br>
	年龄 : ${user.age}<br>
	所属组:${user.group.name}<br>
	
	<li>Map</li>使用"."来导航<br>
	elMap.value1: ${elMap.key1}<br>
	elMap.value2: ${elMap.key2}<br>
	
	<li>集合</li>使用中括号[]加下标数字导航<br>
	userlist[4].username: ${userlist[4].username}<br>
	userlist[4].age: ${userlist[4].age}<br>
	
	<li>对象数组</li>使用中括号[]加下标数字导航<br>
	users[5].username:${users[5].username}
	<li>字符串数组</li>使用中括号[]加下标数字导航<br>
	strArray[0]:${strArray[0] }<br>
	strArray[1]:${strArray[1] }<br>
	
	<li>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>
		
	//===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"/>