我正在使用 JSP。我有这个用例:
主页包含一个搜索框、一个提交按钮和一个下拉列表。用户从下拉列表中选择某些内容,在搜索框中输入查询并点击提交按钮后,它会转到同一页面,并显示一些基于查询的结果。
主页包括其他页面(例如 results.jsp、searchtables.jsp ),这些页面仅在搜索返回某些结果后才可见。我想在显示这些结果后保留在主页(下拉列表和搜索框)中输入的值。
因此,如果主页是/home ,则单击按钮后,它仍然位于附加了/search 的同一页面中,并且显示检索到的结果。
有什么办法可以实现这个目标吗?
谢谢
最佳答案
如果您使用转发而不是重定向,则可以在 Controller 中使用请求属性:
request.setAttribute("searchVal", searchVal);
request.setAttribute("dropdownVal", dropdownVal);
然后在jsp页面上您可以访问这样的值:
<input type="text" name="search" value="${searchVal}"/> //will be empty if searchVal is never set
<select>
<option value="val1" ${dropdownVal == 'val1' ? 'selected="selected"' : ''}>val1</option>
</select>
如果您正在进行重定向,则可以将值附加为网址查询,然后使用 ${params.search}
和 ${params.dropdown}
访问它们> 在jsp页面上。
最后一个选项是在 HTML5 web storage objects 中使用 localStorage它在客户端而不是服务器端存储内容,但您需要编写一些 JavaScript 代码来处理它。
关于java - 请求后如何持久化请求数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24831348/