JSP request.getParameter(“..”)始终为select标记返回null

时间:2015-12-30 11:41:49

标签: html jsp

我有以下html代码,基本上是一个下拉列表。 Select具有属性名称report,并且选项标签值根据我放置的for语句而有所不同。

<form method="post" name="reportlist">
   <select name="report" style=" width: 40%; float: left; margin-left: 10px">
        <%
           for (...)
           {
         %>
               <option value="<%out.print(...);%>"><%out.print(...);%></option> 
         <%              
           }
          %>

<input type="button" name="Go" value="Go" onClick="window.location='anotherpagename.jsp?variable=<%out.print(request.getParameter("report"));%>'">

   </select>
</form>

request.getParameter("report")总是返回null,尽管我希望返回所选选项标签的值。我做错了什么?

感谢。

2 个答案:

答案 0 :(得分:2)

问题是您的输入按钮不提交表单。将标签更正为:

&#13;
&#13;
<form action="your url">
  <select name="report">
    <!-- your rest of the logic -->
  </select>
  <input type="submit" value="Go" /> <!-- use `submit` instead of `button` -->
</form>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

参数report只会出现在您提交包含选择的表单时发送的请求中。

生成该表单时,您希望该参数存在。那可能无法奏效。那时,用户还没有看到表单,因此没有选择任何内容,还没有将他的选择发送到服务器。

你应该学习基础知识:

  • HTTP如何运作
  • 如何使用JSP EL和JSTL,并避免在JSP中使用scriptlet
  • 如何使用JSTL来转义可能包含HTML特殊字符的值,甚至是用户提交的恶意数据。