【问题标题】:Servlet getParameter() returns null but the value is transmittedServlet getParameter() 返回 null 但值已传输
【发布时间】:2017-02-07 15:58:56
【问题描述】:

我有一个表格可以报名参加一个活动。在此表单中有两个隐藏字段,用于用户电子邮件和事件 ID。如下所示。

<form action="EventRegister" method="POST">
   <input type="hidden" name="id" value="${events.Id}"> 
   <input type="hidden" name="email" value="${pageContext.request.userPrincipal.name}">  
   <button type="submit" class="btn btn-primary">Anmelden</button>
</form>

当我调用 Servlet 时,它在以下几行失败:

Integer event = Integer.valueOf(request.getAttribute("id")); 
String email = request.getAttribute("email");

并抛出异常。 getParameter() 方法也不起作用。 Integer event 抛出 NumberFormatExceptionString email 也为空。我已经尝试过其中一个,更改了他们的名字等等。但它们仍然为空!

java.lang.NumberFormatException: For input string: "null"

奇怪的是,值是被传输的。正如您在 Chrome 的开发者工具中看到的那样(链接在最后)。我找不到任何错误。我已经在许多 servlet 中使用它,它工作正常。

请帮帮我!可能我做错了什么,但我找不到我的错误。

As you can see here

【问题讨论】:

  • 发布您的 servlet 类和网页
  • 是的...检查链接,如您所见,值已传输...
  • 但是如果你已经注册了,你会看到签字表格。这会导致问题吗?这是相同的形式,但 SignOff Servlet 被称为-
  • 请检查您的servlet中的所有参数,是否传输,您不能通过浏览器控制台检查来确定。
  • 我该怎么做? :) 抱歉,我对 Web 并没有什么经验。

标签: java html forms servlets


【解决方案1】:

使用 request.getParameter("id") 代替 request.getAttribute("id")。使用 getParameter 方法检索 HTML 表单字段。

如果您仍然收到 null ,请重新启动服务器并重新部署您的应用程序。如果在完成所有操作后仍然为空,请重新安装您的 Web 容器。

【讨论】:

  • 非常感谢。解决了。​​
猜你喜欢
  • 2012-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-21
  • 2017-10-21
  • 1970-01-01
  • 2020-08-10
  • 1970-01-01
相关资源
最近更新 更多