EL表达式

        最近做DRP项目的时候,学习到了一个新的知识。EL表达式,这个东西特别的简单,那我为什么还要写一篇博客呢,一来推荐给更多的人使用,二来EL表达式给我带来了巨大的好处。

        大家先来看看在我没用el表达式之前,我们要先将数据放入request中 。

<span style="font-size:18px;">//我们在servlet中将数据写入到Request中, 然后转到我们的测试页面!</span>
<span style="font-size:18px;">public class JstlElServlet extends HttpServlet {

	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
	        req.setAttribute("hello", "hello world");
	        req.setAttribute("User", User)
	        req.getRequestDispatcher("/jstl_el.jsp").forward(req, resp);
	}
}
</span>


        在jsp的页面上时怎么取数据的!

<span style="font-size:18px;"><body>
     hello(jsp脚本)采用传统的方式:<%=request.getAttribute("hello") %><br>
     自定义用户类User :
     <%
	 User user=(User) request.getAttribute("hello"); 
     %>
</body></span>     

       

        每次取数据都是要写<%%> ,然后通过request的方法进行获取!,如果是自定义类型的类型,还要引入自定义类所在包,然后在定义一个该类的实例,在将从request中取到的数据进行强制转换!我去,好麻烦!

    但是在看一下我们如果有了EL表达式话,我们是怎么弄的!

<span style="font-size:18px;"><body>
	hello(el表达式,语法:$和{}):${hello }<br>
	User(用户自定义类) :${user }
</body></span>

        原来要写很多代码的东西,现在只要一句话就可以了可以了! 就不是真的很简单!

        下边我们来看一下EL表达式到底是该怎么用的!     

        1、语法结构
             ${expression}
        2、[ ]与.运算符
             EL 提供“.“和“[ ]“两种运算符来存取数据。
             当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用“[ ]“。例如:
             ${user.My-Name}应当改为${user["My-Name"] }
             如果要动态取值时,就可以用“[ ]“来做,而“.“无法做到动态取值。例如:
             ${sessionScope.user[data]}中data 是一个变量
        3、变量
             EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。 因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。 假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。
             属性范围在EL中的名称
                    Page          PageScope
                    Request          RequestScope
                    Session          SessionScope
                    Application      ApplicationScope

         大家是不是发现EL表达式真的很好用,也很简单!赶紧实践一把吧!

 


 


 

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值