JSP标准动作和EL

虽然JSP已经用的比较少了,趋势是前后端分离嘛。

JSP标准动作

JSP可以写java脚本代码块,但这样对前端页面设计人员不太友好。所以采用标准动作元素来简化JSP,使用格式和html一样,也是采用严格的xml标签语法来表示这些元素。

不要标准动作(使用Java脚本)
<html><body>
<%=((强制转换类型)request.getAttribute("属性名")).getPropertyName()%>
</body></html>

使用标准动作(没有Java脚本)
<html><body>
<jsp:useBean id="属性名" class="强制转换得到的类型的全限定名" scope="作用域类型"/>
<jsp:getProperty name="属性名" property=”propertyName" />
</body> </html>

因为跟html标签很相似,前端页面人员和容易上手。但就上面的代码有一个问题存在:你标准动作不是把作用域请求作为一个JavaBean对象吗?如果这个bean的实例变量是基本数据类型,确实可以直接打印出来,但如果是一个class(类)类型,且这个类类型有个需要打印出来的基本类型的实例变量。怎么办?


简而言之就是,利用<jsp:getProperty>,只能访问bean属性的性质。它不能访问嵌套性质,也就是无法得到我们想要的性质的性质,它只能访问属性的性质。

救星:表达式语言(EL)!

没有脚本的JSP代码,使用EL
<html><body>
Dog's name is:${AttributeName.PropertyName.PropertyName...}
</body></html>

使用EL,打印嵌套性能变得非常容易…换句话说,可以很轻松地打印性质的性质!

举例来说:用这个代码: ${persion.dog.name}

替换以下代码:
<%=((foo.Person) request.getAttribute("person").getDog().getName()%>

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值