我有一张表格可以报名参加活动。在此表单中有两个用于用户电子邮件和事件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
引发NumberFormatException
,String email
也为空。我已经尝试了其中一个,更改了他们的名字等等。但它们仍然是空的!
java.lang.NumberFormatException: For input string: "null"
奇怪的是,值被传输。正如您在Chrome的开发者工具中看到的那样(最后的链接)。我找不到任何错误。我已经在许多servlet中使用它,它工作正常。
请帮帮我!可能我做错了什么,但我找不到我的错误。
答案 0 :(得分:1)
使用request.getParameter(“id”)而不是request.getAttribute(“id”)。使用getParameter方法检索HTML表单字段。
如果仍然为null,请重新启动服务器并重新部署应用程序。如果完成所有操作后仍然无效,请重新安装Web容器。