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

Why does my HTML form's action tag ignore it's other GET-variables generated by JSP?

我有一个 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>

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

如有任何帮助,我将不胜感激!

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

如果你想在里面放额外的数据,那么把它放在隐藏的输入元素而不是动作中。

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

将其用作 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); %>" />