这是我的代码,当我点击超级引用链接时,如何保留表单的值。(a href:代码底部)
<form action="APPServlet">
<div class="">
<div class="">Search For:</div>
<div class="">
<input type="text" size="45" align="right" name="searchRequest">
</div>
</div>
<div class="">
<div class="">Exclude:</div>
<div class="">
<input type="text" size="45" align="right" name="excludeWords">
</div>
</div>
<div class="">
<div class="">In Modules:</div>
<div class="">
<select name="modules">
<option name="module" value="all">All modules</option>
<c:forEach var="module" items="${modelObj.modules}">
<option name="module" value="${module}">${module}</option>
</c:forEach>
</select>
</div>
</div>
</form>
<!-- ahref outside the form , this does not work
&searchRequest=${searchRequest} <- Guess the value is out of scope
-->
<div class="div-table-row">
<div class="div-table-single-col">
${question.id} <a href="APPServlet?id=${question.id}&searchRequest=${searchRequest}">${question.topic}</a>
</div>
</div>
答案 0 :(得分:1)
你有几种可能性,都涉及JavaScript。
点击链接时,使用JavaScript更改其href,方法是将表单输入的所有值附加为URL的参数
点击链接时,在包含问题ID的表单中添加隐藏字段,更改表单的操作以使其转到MCQApp而不是转到APPServlet,然后提交表单
最干净的一个:点击链接时,向URL发送一个AJAX请求,该URL响应HTML片段(或数据),并用这个HTML片段替换要更新的页面部分,从而使表格保持在页面中。
答案 1 :(得分:0)
有两种方法,如果您正在使用会话,请将其存储为会话的属性。但是如果你没有使用会话,你可以使用Cookies,只需将你想要的值存储在一个新的cookie中,然后调用cookie并获取值。
会话也是Cookie,但它们还有其他功能,Cookie更简单,可帮助您存储以后可以重复使用的值。最好的问候
答案 2 :(得分:0)
保持数据在模型中传递并在jsp中使用它,
将所有输入变量保存在搜索模型对象中,并在调用搜索时更新它。在呈现响应之前,在请求属性中保持searchRequest。