0

これが私のコードです。ハイパーリファレンスリンクをクリックしたときにフォームの値を保持するにはどうすればよいですか(ahref:コードの下部)

<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>  
4

3 に答える 3

1

いくつかの可能性があり、すべてJavaScriptが関係しています。

  1. リンクをクリックするときは、フォームの入力のすべての値をURLのパラメーターとして追加することにより、JavaScriptを使用してhrefを変更します。

  2. リンクをクリックするときは、質問IDを含むフォームに非表示フィールドを追加し、フォームのアクションを変更して、APPServletではなくMCQAppに移動するようにして、フォームを送信します。

  3. 最もクリーンなもの:リンクをクリックすると、HTMLフラグメント(またはデータ)で応答するURLにAJAXリクエストを送信し、更新するページのセクションをこのHTMLフラグメントに置き換えて、フォームを次のようにします。それはページにあります。

于 2013-03-03T15:28:52.240 に答える
0

セッションを操作している場合は、セッションの属性として保存する方法が2つあります。ただし、セッションを使用していない場合は、Cookieを使用して、必要な値を新しいCookieに保存してから、Cookieを呼び出して値を取得することができます。

セッションもCookieですが、別の機能があります。Cookieはより単純で、後で再利用できる値を保存するのに役立ちます。よろしくお願いします

于 2013-03-03T15:29:23.320 に答える
0

モデルで渡されたデータを保持し、次のようにjspで使用します。

すべての入力変数を検索モデルオブジェクトに保持し、検索が呼び出されるたびに更新します。応答をレンダリングする前に、リクエスト属性にsearchRequestを保持します。

于 2013-03-03T15:30:25.357 に答える