2011-02-06 100 views
49

目前我使用:如何访问JSP中的请求属性?

<% 
final String message = (String) request.getAttribute ("Error_Message"); 
%> 

然后

<%= message %> 

但是我不知道是否同样可以使用EL和JSTL来完成使用一个scriptlet来代替。

回答

80

EL表达式:

${requestScope.Error_Message} 

有在JSP EL几个隐式对象。请参阅“隐式对象”标题下的Expression Language

+38

`requestScope`的方式是可选的。 '$ {Error_message}`将按照页面,请求,会话和应用程序的顺序扫描所有范围,并返回第一个匹配项。 – BalusC 2011-02-07 11:53:54

1

使用JSTL:

<c:set var="message" value='${requestScope["Error_Message"]}' /> 

这里VAR设置变量名称和request.getAttribute等于requestScope。但这不是必需的。 $ {Error_Message}会给你相同的结果。它会搜索每个范围。如果您想从Error_Message中执行一些操作,则必须使用消息来完成。像下面一样。

<c:out value="${message}"/> 
0

只是在这里注意到这一点,以防其他人有类似的问题。
如果您直接将请求指向JSP,使用Apache Tomcat web.xml配置,则${requestScope.attr}似乎不起作用,而${param.attr}包含请求属性attr