Ank*_*kur 5 html java forms servlets hidden-field
我创建了一个隐藏的表单元素
<form name="UploadImage" enctype="multipart/form-data" method="post" action="UploadImage">
<label>
</label>
<input name="imgUploadObjId" id="imgUploadObjId" value="52" type="hidden">
//rest of the form here
</form>
Run Code Online (Sandbox Code Playgroud)
我试图在servlet中获取该行的值(正如我之前所做的那样):
int objId = Integer.parseInt(request.getParameter("imgUploadObjId"));
Run Code Online (Sandbox Code Playgroud)
但我明白了(第33行是上面的一行):
java.lang.NumberFormatException:null
java.lang.Integer.parseInt(Unknown Source)java.lang.Integer.parseInt(Unknown Source)web.objects.UploadImage.doPost(UploadImage.java:33)javax.servlet.http.HttpServlet .service(HttpServlet.java:637)javax.servlet.http.HttpServlet.service(httpServlet.java:717)
有关enctype ="multipart/form-data"的表单有什么不同吗?或者你能看到其他一些错误吗?
Bal*_*usC 16
servlet默认使用application/x-www-form-urlencoded编码解析参数.该multipart/form-data编码但是不支持的servlet直到Servlet的3.0.的getParameter()通话将所有的回报null.
在Servlet 3.0中,您应该使用它HttpServletRequest#getParts()来获取multipart/form-data请求的所有部分,包括普通表单字段.在Servlet 3.0之前,您应该使用Apache Commons FileUpload来解析multipart/form-data请求.有关这两种方法的详细示例,请参阅以下答案:如何使用JSP/Servlet将文件上载到服务器?
请注意,如果您根本不使用任何<input type="file">字段,那么您可以将编码保留在远离<form>.它将默认为application/x-www-form-urlencoded.
作为解决方法,您还可以在表单的操作属性中添加所需的隐藏参数作为 GET 参数:
<form name="UploadImage" enctype="multipart/form-data" method="post" action="UploadImage?imgUploadObjId=52">
//rest of the form here
</form>
Run Code Online (Sandbox Code Playgroud)
这将使request.getParameter("imgUploadObjId")通话正常进行。
| 归档时间: |
|
| 查看次数: |
17964 次 |
| 最近记录: |