JSP中的EL表达式(重要)

在JavaServer Pages (JSP) 和Servlet环境中,Expression Language (EL) 提供了一种简单直观的方式来访问和操作作用域中的变量。以下是在JSP和Servlet中使用EL表达式取值的常见方式大全:

${} 重要指定

JSP中的EL表达式取值方式:

  1. 访问ServletRequest(request)作用域中的属性:
<!-- 获取request作用域中的属性值 -->
<p>Request Attribute: ${requestScope.attributeName}</p>
  1. 访问HttpSession(session)作用域中的属性:
<!-- 获取session作用域中的属性值 -->
<p>Session Attribute: ${sessionScope.sessionAttributeName}</p>
  1. 访问ServletContext(application)作用域中的属性:
<!-- 获取application作用域中的属性值 -->
<p>Application Attribute: ${applicationScope.applicationAttributeName}</p>
  1. 访问页面(page)作用域中的属性(局部变量):
<!-- 在scriptlet中定义局部变量 -->
<%
    pageContext.setAttribute("pageVar", "Value");
%>

<!-- 获取page作用域中的属性值 -->
<p>Page Scope Variable: ${pageVar}</p>
  1. 访问隐式对象:
  • 请求参数:

    <!-- 获取请求参数 -->
    <p>Parameter Value: ${param.parameterName}</p>
    
  • Cookie值:

    <!-- 获取Cookie值 -->
    <p>Cookie Value: ${cookie.cookieName.value}</p>
    
  • Header值:

    <!-- 获取Header值 -->
    <p>Header Value: ${header.headerName}</p>
    
  • 初始化参数(对于Servlet或Filter配置时设置的初始化参数):

    <!-- 获取Servlet初始化参数 -->
    <p>Init Parameter: ${initParam.initParamName}</p>
    
  1. EL算术、逻辑和关系运算符:
<!-- 算术运算 -->
<p>Sum: ${1 + 1}</p>
<!-- 关系运算 -->
<p>Comparison: ${user.age > 18 ? 'Adult' : 'Minor'}</p>
<!-- 逻辑运算 -->
<p>Logical AND: ${empty param.emptyField && param.nonEmptyField eq 'yes' ? 'True' : 'False'}</p>

Servlet中使用EL表达式(间接使用):

Servlet本身并不能直接使用EL表达式,但你可以通过RequestDispatcher的forward或include方法将处理传递给JSP页面,在JSP页面中使用EL表达式。在Servlet中准备数据,然后转发到JSP页面进行渲染:

// 在Servlet中设置属性
request.setAttribute("attributeName", "AttributeValue");

// 转发到JSP页面
RequestDispatcher dispatcher = request.getRequestDispatcher("/path/to/page.jsp");
dispatcher.forward(request, response);

然后在page.jsp中就可以通过EL表达式访问上述设置的属性:

<!-- 在JSP中获取Servlet设置的属性 -->
<p>Served from Servlet: ${attributeName}</p>

原文链接 https://www.hanyuanhun.cn | https://node.hanyuanhun.cn

posted @   汉源魂  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示