为什么我的HTML表单的操作标记忽略了JSP生成的其他GET变量?

时间:2015-06-25 20:39:30

标签: html forms jsp url action

我有一个HTML表单,其动作标记重定向到同一页面,附加的变量由JSP生成(变量打印现有变量),但是当我使用表单时,它只显示当前的URL,只显示表单中的变量,所以另外,JSP生成的变量都缺失了。我的(简化)表单如下所示:

<form id="tfnewsort" method="get" action="./index.jsp?categorie=<% out.println(categorie); %>&minprijs=<% out.println(stringminprijs); %>&maxprijs=<% out.println(stringmaxprijs); %>">
  <select name="sorteermethode" id="sortselect">
    <option value="date_added">
      Datum oplopend
    </option>
  </select>
</form>

正如您所看到的,它应该重定向到通过打印一些变量创建的URL,并将其自己的变量(&#34; sorteermethode&#34;)附加到URL的末尾。现在,当我实际使用它时,它会重定向到类似于http://localhost:8080/webshop/index.jsp?sorteermethode=name&#39;之类的内容,基本上忽略其他变量并将其替换为自己的变量,而不是将其附加到URL的结尾。有谁知道我做错了什么(除了使用JSP scriplets)和/或如何解决这个问题?

我非常感谢任何帮助!

3 个答案:

答案 0 :(得分:1)

表单数据生成新的查询字符串。这取代了现有的。

如果要在其中添加额外数据,请将其放入隐藏的输入元素而不是操作。

答案 1 :(得分:0)

您应该将其他变量添加为隐藏的输入元素。 GET的要点是将所有输入值添加到查询字符串,它不会将它们与当前操作合并。

答案 2 :(得分:0)

将其用作hidden输入字段,因为查询字符串和<form>方法也是GET

<input type="hidden" name="categorie" value="<% out.println(categorie); %>" />
<input type="hidden" name="minprijs" value="<% out.println(stringminprijs); %>" />
<input type="hidden" name="maxprijs" value="<% out.println(stringmaxprijs); %>" />