2016-09-29 94 views
0

我有一个表单来注册一个事件。在这个表单中有两个用于用户电子邮件和事件ID的隐藏字段。正如你可以看到下面。Servlet getParameter()返回null,但传输值

<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中使用了它,并且它工作正常。

请帮帮我!可能我正在做一些完全错误的事情,但我找不到我的错误。

As you can see here

+0

发布您的servlet类和网页 –

+0

是的...检查链接,你可以看到,值被传输... –

+0

但是,如果你已经注册,你会看到签名表格。这会导致问题吗?它与SignOff Servlet的调用形式相同 - –

回答

1

使用的request.getParameter代替request.getAttribute( “ID”)( “ID”)。使用getParameter方法检索HTML表单字段。

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

+0

非常感谢。解决了。 –