我有以下问题: 我调用一个servlet,将其转发到doGet上的JSP页面 JSP有一个FORM,我在其中设置值,然后我想通过POST将这些值提交回同一servlet 但参数始终为空
编辑:好吧,事情是:我发布了代码,但是只有当我在表单操作中调用另一个servlet时。
例如:帖子“上传” servlet如下所示。我也有一个使用相同的doPost方法称为fileupload的serlvet,如果我使用“ action =” fileupload“一切正常,则getParameter返回值,get getPart返回文件,但是如果我使用相同servlet的Post方法( “ upload”)它总是给我“ null”,问题是“ why”?我尝试了没有文件上传和“ multipart / form-data”的操作,但得到了参数,但是为什么它可以在另一个servlet中工作,但是不一样?
Servlet“上传”:
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
getServletContext().getRequestDispatcher(thisJSP).forward(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String type = req.getParameter("type");
Part filePart = req.getPart("file");
.
.
.
}
JSP:
` <form action="upload" method="post" enctype="multipart/form-data">
<div class="form-group">
<div class="col-md-10">
<h4>Select Type:</h4>
<select class="form-control" id="sel1" name="type">
<option value="blank"></option>
<option value="csvImport">CSV Import</option>
<option value="xmlAriba">XML Ariba</option>
</select>
<h4>Select File:</h4>
<label class="btn btn-default btn-file text-white btn-block"> Browse <input type="file" name="file"
style="display: none;">
</label>
</div>
</div>
<div class="form-group">
<div class="col-md-10">
<input type="hidden" name="test" value="testValue" />
<input class="btn btn-default btn-file text-white btn-block" type="submit" value="Upload" />
</div>
</div>
</form>`
问题是,如果我使用相同的代码调用不同的servlet,它就起作用了……我在这里做错了吗?还是根本不可能?