JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是一个实现 Web应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。在drp项目中咱们用到的只是一些常见的用法。当然在JSTL中必然用到EL(Expression Language)表达式,格式:${}.
JSTL的核心标签库标签共13个,从功能上可以分为4类:表达式控制标签、流程控制标签、循环标签、URL操作标签。使用这些标签能够完成JSP页面的基本功能,减少编码工作。
(1)表达式控制标签:out标签、set标签、remove标签、catch标签。
(2)流程控制标签:if标签、choose标签、when标签、otherwise标签。
(3)循环标签:forEach标签、forTokens标签。
(4)URL操作标签:import标签、url标签、redirect标签。
1.取普通字符串
Servlet代码:
//普通字符串 req.setAttribute("hello","Hello World");
hello(jsp脚本):<%=request.getAttribute("hello") %><br> hello(el表达式,语法:$和{}):${hello }<br>
2.取属性值
servlet代码
//结构 Group group = new Group(); group.setName("提高班九期"); User user = new User(); user.setUsername("张晓"); user.setAge(23); user.setGroup(group); req.setAttribute("user", user);
JSP页面:
姓名:${user }<br> 年龄:${user.username }<br> 所属组:${user.group.name }<br>
3、测试是否为空
servlet代码
//empty req.setAttribute("v2","" ); req.setAttribute("v3",new ArrayList() ); req.setAttribute("v4","12345" ); req.setAttribute("v5",null );
v1:${empty v1 }<br> v2:${empty v2 }<br> v3:${empty v3 }<br> v4:${empty v4 }<br> v5:${empty v5 }<br>
运行结果:
1、jsp脚本编写
获取物料类别代码:
<tr> <td height="26"> <div align="right"> <font color="#FF0000">*</font>类别: </div> </td> <td> <% List<ItemCategory> itemCategoryList = (List)request.getAttribute("itemCategoryList"); %> <select name="category" class="select1" id="category"> <% for(Iterator<ItemCategory> iter = itemCategoryList.iterator();iter.hasNext();){ ItemCategory ic = iter.next(); %> <option value="<%=ic.getId() %>"><%=ic.getName() %></option> <% } %> </select> </td> </tr>
2、用jstl+el编写
<tr> <td height="26"> <div align="right"> <font color="#FF0000">*</font>类别: </div> </td> <td> <select name="category" class="select1" id="category"> <c:forEach items="${itemCategoryList}" var="itemCategory"> <option value="${itemCategory.id} }">${itemCategory.name }</option> </c:forEach> </select> </td> </tr>