gpt4 book ai didi

java - 表单向 Servlet 发送空查询字符串

转载 作者:行者123 更新时间:2023-12-02 04:10:51 24 4
gpt4 key购买 nike

我有一个 JSP,其表单如下所示:

<form method="GET" action="ManagerLogicServlet?action=salesreport" >
<select name="monthList">
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<input type="submit" value="Submit">
</form>

我正在尝试发送带有属性 action = salesreport 的查询字符串,这将是返回所选月份的销售报告的条件(不要介意缺少默认值)。我将表单提交给 ManagerLogicServlet,其中包含以下代码片段:

..String action = request.getParameter("action");

if (action.equalsIgnoreCase("salesreport")){

forward = SALES_REPORT;
int month = Integer.parseInt(request.getParameter("monthList"));
String monthString = new DateFormatSymbols().getMonths()[month-1];
request.setAttribute("monthString", monthString);
request.setAttribute("salesReport", salesDAO.getSalesReport(month));

} else if..

但是action属性被设置为null。这是为什么?

最佳答案

因为您的表单使用 GET方法,参数来自action属性被丢弃。如果您坚持使用GET ,那么您可以包含 <input>包含您希望传递给 servlet 的参数的标记。尝试这样做:

<form method="GET" action="ManagerLogicServlet?action=salesreport" >
<input type="hidden" name="action" value="salesreport">
<select name="monthList">
<option value="1">January</option>
...
</select>
<input type="submit" value="Submit">
</form>

另一种方法是保留代码不变,但将表单的方法更改为 POST .

关于java - 表单向 Servlet 发送空查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33820865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com