【.jsp】.jsp页面中的EL表达式 ${...}

1. EL表达式

     ${...}是EL表达式(Expression Language),使得.jsp页面可以不含java代码,通常表示你从另外一个页面传过来的参数的值。

例如:${sessionScope.username}  取出Session范围的 username 变量。这种写法是不是比之前 JSP 的写法:

String username = (String) session.getAttribute("username");  简洁许多?

     EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。

     因为我们并没有指定哪一个范围的username,所以它会依序Page、Request、Session、Application范围查找。(4种作用域:https://blog.csdn.net/a327736051/article/details/49382857

     假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null,在页面优化显示空白。

 2. 使用方法

例如:在.java文件中我们要取得session中储存的一个属性username的值,可以利用下列方法:

session.getAttribute("username") ;

在.jsp的EL表达式中则使用下列方法:

 ${sessionScope.username}

3. 举例

${....}会从page,request,session,application中取相应名称的变量值。比如:${name}就从以上4个对象中去获得名为name的值。如果是在转发到这个页面之前,在request中setAttribute(“name”,“王小明”),那么${name} 就会被"王小明"这个值给替换。

request.setAttribute(String s,object o);

在Spring 中,所有逻辑处理单元返回的结果数据,都将作为 Attribute 被放置到 HttpServletRequest 对象中返回(具体实现可参见Spring 源码中org.springframework.web.servlet.view.InternalResourceView.exposeModelAsRequestAttributes方法的实现代码),也就是说SpringMVC 中,结果数据对象默认都是requestScope

4. param和paramValues

在取得用户参数时通常使用以下方法:

request.getParameter(String name)
request.getParameterValues(String name)

在 EL中则可以使用param和paramValues两者来取得数据:

${param.name}
${paramValues.name}

这里 param 的功能和 request.getParameter(String name) 相同,而 paramValues 和 request.getParameterValues(String name) 相同。如果用户填了一个表格,表格名称为username,则我们就可以使用${param.username}来取得用户填入的值。

看到这里,大家应该明确了EL表达式只能通过内置对象取值,也就是只读操作,如果想进行写操作的话就让后台代码去完成,毕竟EL表达式仅仅是视图上的输出标签罢了。

 


参考博文:https://blog.csdn.net/JavaNotes/article/details/80722153

https://blog.csdn.net/qwerasdf123/article/details/4189889

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值