JSTL标签库+EL表达式

简介

          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标签。


EL表达式简单应用

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 );


JSP页面:
 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>

          看着两段代码实现相同的功能但是明显第二种代码量少,如果是小项目代码不多体现不出什么,如果前台页面非常多,开发者当然要选择第二种方式,可以减少很多工作量。所以通过对比jstl+el编写的代码最简洁,高效。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值