慕無忌1623718
2022-05-21 17:05:58
我使用 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(); 服務器端 servletpublic 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() 。謝謝,因為我很難過
1 回答

浮云間
TA貢獻1829條經驗 獲得超4個贊
操作字段中的查詢參數被忽略(提交帶有查詢字符串參數和隱藏參數的 GET 表單消失)。您應該將其添加為隱藏參數(如何在 gwt 的 formPanel 上添加隱藏數據):
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!
如果你不使用urlencoded它,它也可以使用request.getParameter(…),但它會在正文而不是 URL 中傳輸。
添加回答
舉報
0/150
提交
取消