如何在jsp页面中保留表单值?

时间:2013-03-03 15:22:29

标签: java jsp web-applications servlets

这是我的代码,当我点击超级引用链接时,如何保留表单的值。(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>  

3 个答案:

答案 0 :(得分:1)

你有几种可能性,都涉及JavaScript。

  1. 点击链接时,使用JavaScript更改其href,方法是将表单输入的所有值附加为URL的参数

  2. 点击链接时,在包含问题ID的表单中添加隐藏字段,更改表单的操作以使其转到MCQApp而不是转到APPServlet,然后提交表单

  3. 最干净的一个:点击链接时,向URL发送一个AJAX请求,该URL响应HTML片段(或数据),并用这个HTML片段替换要更新的页面部分,从而使表格保持在页面中。

答案 1 :(得分:0)

有两种方法,如果您正在使用会话,请将其存储为会话的属性。但是如果你没有使用会话,你可以使用Cookies,只需将你想要的值存储在一个新的cookie中,然后调用cookie并获取值。

会话也是Cookie,但它们还有其他功能,Cookie更简单,可帮助您存储以后可以重复使用的值。最好的问候

答案 2 :(得分:0)

保持数据在模型中传递并在jsp中使用它,

将所有输入变量保存在搜索模型对象中,并在调用搜索时更新它。在呈现响应之前,在请求属性中保持searchRequest。