如何访问在JSP一个servlet设置了请求属性?如何访问在JSP一个servlet设置了请求属性?

2019-05-17 08:15发布

我试图通过检索在JSP页面中一个servlet设置的属性值,但我只是运气与参数${param} 。 我不知道我能做些什么不同。 也许它的简单,但我还不能管理它。

public void execute(HttpServletRequest request, HttpServletResponse response) {

    //there's no "setParameter" method for the "request" object
    request.setAttribute("attrib", "attribValue");

    RequestDispatcher rd = request.getRequestDispatcher("/Test.jsp");
    rd.forward(request,response);
}

在JSP中我一直在试图找回“attribValue”,但没有成功:

<body>
    <!-- Is there another tag instead of "param"??? -->
    <p>Test attribute value: ${param.attrib}
</body>

如果我经历了所有过程(调用页面,servlet和目的地页)传递一个参数,它的工作原理相当不错。

Answer 1:

它在默认EL范围的可用了,所以只

${attrib}

应该做。

如果你喜欢明确指定范围(EL将即搜索页面,请求,会话和应用范围在序列的第一个非空属性值匹配的属性名称),然后你需要范围的地图是指它来代替,这是${requestScope}为请求范围

${requestScope.attrib}

如果你有可能与正好在页面范围内,否则将优先获得相同名称的属性这是唯一有用的(但这种情况通常表明毕竟设计不良)。

也可以看看:

  • 我们的EL wiki页面
  • Java EE 6教程-表达式语言


Answer 2:

也许之间的比较EL语法和scriptlet语法会帮助你理解这个概念。

  • param是像request.getParameter()
  • requestScope就像request.getAttribute()

你需要告诉request attributerequest parameter



Answer 3:

你有没有尝试使用

<% request.getAttribute("attrib"); %>


Answer 4:

如果范围是请求类型,我们设置的要求使用了request.setAttribute(键,值)的属性和使用$ {} requestScope.key在jsp中检索。



文章来源: How to access a request attribute set by a servlet in JSP?