【问题标题】:Value set by request.setAttribute() in Servlet is not accessible by request.getParameter() in JSP [duplicate]JSP中的request.getParameter()无法访问Servlet中request.setAttribute()设置的值[重复]
【发布时间】:2012-05-19 10:58:14
【问题描述】:

我将在单击表单按钮后向控制器 servlet 发送请求,它需要检查用户是否已登录以及按下了哪个按钮。

第一部分工作正常,但是当我试图将结果设置为参数并将请求转发到 JSP 页面时,参数“Button”总是返回 null。 有人可以帮我理解为什么会这样吗?也许有更好的方法来做到这一点?

小服务程序:

request.setAttribute("Buttons", "Add a new coupon");
request.getRequestDispatcher("/admin_main.jsp").forward(request,response);

JSP:

if (request.getParameter("Buttons") != null) {
    // ...
} 

【问题讨论】:

  • 您应该显示一些代码以便可以进行错误跟踪。
  • 拜托,拜托,拜托,请阅读 JSP EL 并且也许找到不是在 1999 年编写的 JSP 教程。(我很感激说起来容易做起来难。)虽然它可以做到, JSP 今天根本没有“以这种方式”完成。只是没有理由。这本书其实还不错。 theserverside.com/news/1369772/…
  • 感谢本书的链接...我开始阅读它,但对于课程项目,我做事的方式将不得不做...

标签: jsp servlets parameters attributes parameter-passing


【解决方案1】:

if(request.getAttribute("Buttons") != null) 可以工作。

信息:

始终使用request.getParameter() 来提取请求参数(即通过发布 html 表单发送的数据)。 request.getParameter()总是返回String值,数据来自客户端。

始终使用request.getAttribute() 将对象添加到服务器端的请求范围,即使用request.setAttribute()

【讨论】:

  • 感谢它完美地解决了我的问题:)
猜你喜欢
  • 2020-03-06
  • 1970-01-01
  • 2011-05-19
  • 2019-02-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-03
  • 1970-01-01
  • 2012-06-09
相关资源
最近更新 更多