GWT form pass a int to a doGet() servlet
我有一个表单提交到servlet与doGet()方法。 我需要的是通过doGet()将id传递给servlet并在该方法中检索它。
到目前为止我尝试了:添加id作为查询字符串并在doGet中使用request.getParameter()。 我在doPost()及其工作中使用相同的方法。
客户端代码
1 2 3 4 5 6 | downloadPanel = new FormPanel(); downloadPanel.setEncoding(FormPanel.ENCODING_MULTIPART); downloadPanel.setMethod(FormPanel.METHOD_GET); downloadPanel.setAction(GWT.getModuleBaseURL()+"downloadfile" +"?entityId="+ 101); downloadPanel.submit(); |
服务器端servlet
1 2 3 4 5 6 7 | public class FileDownload extends HttpServlet { private String entityId; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { entityId = request.getParameter("entityId"); |
entityId为null。 如何将Id传递给doGet()请求?
至于在线查看示例,这应该适用于doPost(),因为它适用于doPost()。 谢谢,因为我很难过
在操作字段中忽略查询参数(提交带有查询字符串参数和隐藏参数的GET表单消失)。 您应该将其添加为隐藏参数(如何在gwt中的formPanel上添加隐藏数据):
1 2 3 4 5 6 7 8 | FormPanel form = new FormPanel(); form.setEncoding(FormPanel.ENCODING_URLENCODED); // use urlencoded form.setMethod(FormPanel.METHOD_GET); FlowPanel fields = new FlowPanel(); // FormPanel only accept one widget fields.add(new Hidden("entityId","101")); // add it as hidden form.setWidget(fields); form.setAction(GWT.getModuleBaseURL() +"downloadfile"); form.submit(); // then the browser will add it as query param! |
如果您不使用