经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Java » 查看文章
JSTL核心标签库
来源:cnblogs  作者:金钟如流年  时间:2018/10/8 9:19:40  对本文有异议
  1. 1 <%-- 保存数据 --%>
  2. 2 <c:set></c:set>
  3. 3
  4. 4 <%-- 获取数据 --%>
  5. 5 <c:out value=""></c:out>
  6. 6
  7. 7 <%-- 单条件判断 --%>
  8. 8 <c:if test=""></c:if>
  9. 9
  10. 10 <%-- 多条件判断 --%>
  11. 11 <c:choose></c:choose>
  12. 12 <c:when test=""></c:when>
  13. 13 <c:otherwise></c:otherwise>
  14. 14
  15. 15 <%-- 用于迭代(循环) --%>
  16. 16 <c:forEach></c:forEach>
  17. 17 <c:forTokens items="" delims=""></c:forTokens>
  18. 18
  19. 19 <%-- 重定向 --%>
  20. 20 <c:redirect></c:redirect>

1.<c:set/>给域对象赋值

  1. JSTL标签
  2. var:数据的名称
  3. value:保存的数据值
  4. scope:保存到哪个域
  5. page:page
  6. request:request
  7. session:session
  8. application:application
  1. 1 <%--
  2. 2 <c:set/> 给域对象赋值
  3. 3 --%>
  4. 4 <%-- jsp脚本 --%>
  5. 5 <%
  6. 6 //String name = "eric";
  7. 7 //pageContext.setAttribute("name", name);
  8. 8 %>
  9. 9 <%--
  10. 10 JSTL标签
  11. 11 var:数据的名称
  12. 12 value:保存的数据值
  13. 13 scope:保存到哪个域
  14. 14 page:page
  15. 15 request:request
  16. 16 session:session
  17. 17 application:application
  18. 18 --%>
  19. 19 <c:set var="name" value="jacky" scope="request"/>
  20. 20 ${requestScope.name}
View Code

 

  1.  
    2.<c:out/>获取域对象的数据
  1. value:代表获取域中的某个域中的名称内容,如果数据在域中,必须使用EL表达式去获取
  2. default:默认值。当前需要获取的内容为null时,那么使用默认值代替
  3. escapeXml:默认情况下为trueout标签会把输出的内容进行转义。如果不需要转义,则为false即可。
  1. 1 <%--
  2. 2 2. <c:out/> 获取域对象的数据
  3. 3 --%>
  4. 4 <%-- EL表达式 --%>
  5. 5 ${name }<br>
  6. 6 <%--
  7. 7 value:代表获取域中的某个域中的名称内容,如果数据在域中,必须使用EL表达式去获取
  8. 8 default:默认值。当前需要获取的内容为null时,那么使用默认值代替
  9. 9 escapeXml:默认情况下为trueout标签会把输出的内容进行转义。如果不需要转义,则为false即可。
  10. 10 --%>
  11. 11 <c:out value="${name }" default="<h3>默认值</h3>" escapeXml="false"></c:out>
View Code 

3.<c:if/>单条件判断

test:条件表达式。返货true的时候,就会执行if标签体的内容,否则不执行。

  1. 1 <%--
  2. 2 3.<c:if/>单条件判断
  3. 3 --%>
  4. 4 <%--
  5. 5 test:条件表达式。返货true的时候,就会执行if标签体的内容,否则不执行。
  6. 6 --%>
  7. 7 <c:if test="${10 > 8}">
  8. 8 <input type="submit" value="提交"/>
  9. 9 </c:if>

4.<c:choose/>+<c:when/>+<c:otherwise/>多条件判断

  1. 1 <%--
  2. 2 4.<c:choose/>+<c:when/>+<c:otherwise/> 多条件判断
  3. 3 --%>
  4. 4 <%--模拟登录 --%>
  5. 5 <c:set var="user" value="jacky" scope="session"/>
  6. 6 <c:choose>
  7. 7 <c:when test="${!empty sessionScope.user }">
  8. 8 欢迎回来,你的用户名是:${sessionScope.user},<a href="">【退出登录】</a>
  9. 9 </c:when>
  10. 10 <c:otherwise>
  11. 11 请先<a href="">注册</a>或<a href="">登录</a>
  12. 12 </c:otherwise>
  13. 13 </c:choose>
View Code

 

5.<c:forEach/>用于迭代或循环

  1. begin:从哪个元素开始遍历,从0开始 可以不写
  2. end:到哪个元素为止 可以不写
  3. step:增加步长。默认为1 可以不写
  4. items:需要遍历的数据。(数组|List集合|Map集合),如果是获取域的数据,那么使用EL表达式获取
  5. var:每个元素名称
  6. varStatus:当前状态对象。该对象封装当前元素状态信息。例如count属性:表示当前遍历的是哪个元素,从1开始
  1. 1 <%--
  2. 2 5.<c:forEach/>用于迭代或循环
  3. 3 --%>
  4. 4 <%
  5. 5 //List集合
  6. 6 List<Student> list = new ArrayList<Student>();
  7. 7 list.add(new Student("abc","123"));
  8. 8 list.add(new Student("def","123"));
  9. 9 list.add(new Student("ghi","123"));
  10. 10 list.add(new Student("jkl","123"));
  11. 11 pageContext.setAttribute("list", list);
  12. 12 %>
  13. 13 EL表达式:<br>${list[0]}<br>${list[1]}<br>${list[2]}<br>${list[3]}<br>
  14. 14 <%--
  15. 15 begin:从哪个元素开始遍历,从0开始 可以不写
  16. 16 end:到哪个元素为止 可以不写
  17. 17 step:增加步长。默认为1 可以不写
  18. 18 items:需要遍历的数据。(数组|List集合|Map集合),如果是获取域的数据,那么使用EL表达式获取
  19. 19 var:每个元素名称
  20. 20 varStatus:当前状态对象。该对象封装当前元素状态信息。例如count属性:表示当前遍历的是哪个元素,从1开始
  21. 21 --%>
  22. 22 JSTL标签:<br>
  23. 23 <c:forEach items="${list}" var="student" varStatus="varStats">
  24. 24 学生${varStats.count} :${student}<br>
  25. 25 </c:forEach>
  26. 26 <hr/>
  27. 27 <%
  28. 28 //Map集合
  29. 29 Map<String,Student> map = new HashMap<String,Student>();
  30. 30 map.put("001", new Student("eric","1234"));
  31. 31 map.put("002", new Student("rose","1234"));
  32. 32 map.put("003", new Student("jacky","1234"));
  33. 33 pageContext.setAttribute("map", map);
  34. 34 %>
  35. 35 EL表达式:<br>${map['001']}<br>${map['002']}<br>${map['003']}<br>
  36. 36 JSTL标签:<br>
  37. 37 <%--
  38. 38 注意:forEach标签遍历Map集合时,把每个Map的对象使用Entry封装,Entry封装键对象和值对象,
  39. 39 通过getKey()获取键对象,通过getValue()获取值对象
  40. 40 --%>
  41. 41 <c:forEach items="${map}" var="entry" varStatus="varStats">
  42. 42 <%--学生${varStats.count}:${student}<br> --%>
  43. 43 编号:${entry.key} - 姓名:${entry.value.name} - 密码:${entry.value.password}<br>
  44. 44 </c:forEach>
View Code
  1. 6.<c:forTokens/>遍历特殊字符串

    items:需要遍历的字符串
    delims:指定分隔符号
    var:每个内容的名称
  1. 1 <%--
  2. 2 6.<c:forTokens/>遍历特殊字符串
  3. 3 --%>
  4. 4 <c:set var="str" value="java-net-php-平面设计" scope="request" />
  5. 5 <%-- JSP脚本形式 --%>
  6. 6 <%
  7. 7 String str = (String)request.getAttribute("str");
  8. 8 String[] strs = str.split("-");
  9. 9 for(int i = 0; i < strs.length; i++){
  10. 10 out.write(strs[i]+",");
  11. 11 }
  12. 12 %>
  13. 13 <br>
  14. 14 <%--JSTL标签 --%>
  15. 15 <%--
  16. 16 items:需要遍历的字符串
  17. 17 delims:指定分隔符号
  18. 18 var:每个内容的名称
  19. 19 --%>
  20. 20 <c:forTokens items="${str}" delims="-" var="s" varStatus="varStats">
  21. 21 ${varStats.count}:${s}<br>
  22. 22 </c:forTokens>
View Code

 








 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号