JSP中的EL表达式(重要)
在JavaServer Pages (JSP) 和Servlet环境中,Expression Language (EL) 提供了一种简单直观的方式来访问和操作作用域中的变量。以下是在JSP和Servlet中使用EL表达式取值的常见方式大全:
${} 重要指定
JSP中的EL表达式取值方式:
- 访问ServletRequest(request)作用域中的属性:
<!-- 获取request作用域中的属性值 -->
<p>Request Attribute: ${requestScope.attributeName}</p>
- 访问HttpSession(session)作用域中的属性:
<!-- 获取session作用域中的属性值 -->
<p>Session Attribute: ${sessionScope.sessionAttributeName}</p>
- 访问ServletContext(application)作用域中的属性:
<!-- 获取application作用域中的属性值 -->
<p>Application Attribute: ${applicationScope.applicationAttributeName}</p>
- 访问页面(page)作用域中的属性(局部变量):
<!-- 在scriptlet中定义局部变量 -->
<%
pageContext.setAttribute("pageVar", "Value");
%>
<!-- 获取page作用域中的属性值 -->
<p>Page Scope Variable: ${pageVar}</p>
- 访问隐式对象:
-
请求参数:
<!-- 获取请求参数 --> <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>
- 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>

浙公网安备 33010602011771号