Java GWT表单将int传递给doGet()servlet

Java GWT表单将int传递给doGet()servlet,java,servlets,gwt,Java,Servlets,Gwt,我使用doGet()方法将表单提交到servlet。我需要的是通过doGet()将id传递给servlet,并在该方法中检索它 到目前为止我尝试的是:添加一个id作为查询字符串,并在doGet中使用request.getParameter()。我在doPost()及其工作中使用了相同的方法 客户端代码 downloadPanel = new FormPanel(); downloadPanel.setEncoding(FormPanel.ENCODING_MULTIPART); download

我使用doGet()方法将表单提交到servlet。我需要的是通过doGet()将id传递给servlet,并在该方法中检索它

到目前为止我尝试的是:添加一个id作为查询字符串,并在doGet中使用request.getParameter()。我在doPost()及其工作中使用了相同的方法

客户端代码

downloadPanel = new FormPanel();
downloadPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
downloadPanel.setMethod(FormPanel.METHOD_GET);

downloadPanel.setAction(GWT.getModuleBaseURL()+"downloadfile" + "?entityId="+ 101);
downloadPanel.submit();  
服务器端servlet

public class FileDownload extends HttpServlet {

private String entityId;

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

entityId = request.getParameter("entityId");
entityId为空。如何将Id传递给doGet()请求?
至于在线查看示例,这应该与doPost()的工作原理相同。谢谢,我被难住了

在操作字段()中忽略查询参数。应将其添加为隐藏参数():


如果不使用
urlencoded
,也可以使用
request.getParameter(…)
,但它将在正文中而不是URL中传输。

这非常有效。谢谢你抽出时间来帮助我。非常感谢。我从来没有在我的搜索中看到过这种情况。你搞定了。谢谢这个解决方案会引起问题。“com.google.gwt.event.shared.umbralleexception:捕获异常:SimplePanel只能包含一个子小部件”我有一个下拉列表,当我选择一个项目时,我将id传递为隐藏。因此,每次我进行新的选择时,都会调用此表单。我注释了隐藏的,没有错误。有没有办法清除它,然后重新添加它?我最后做的是创建一个新的隐藏,然后附加它,这样在发送表单后,我就会删除它。似乎正在工作。哦,是的,您需要添加一个容器面板,例如FlowPanel。稍后我将更新该示例。
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!