我有一个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)和/或如何解决这个问题?
我非常感谢任何帮助!
答案 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); %>" />