0

文字列配列をjspからサーブレットクラスに送信できるかどうか疑問に思っていました。実際、この状況は、サーブレットから JSP に文字列配列を送信しているということです。次に、この文字列配列を別のサーブレット クラスに送信したいと考えています。例えば、

   <table border="1">
     <tr>
        <th>Target Names</th>
    </tr>
        <c:forEach items="${targetarray}" var="drugtarget">
        <tr>
        <td>${fn:escapeXml(drugtarget)}</td>
        </tr>
        </c:forEach>
</table>

ここに、targetarray私の文字列配列があります。今すぐ別のサーブレット クラスに送信する必要があります。または、それを行う別の方法はありますか?ありがとうございました。

4

1 に答える 1

1

HTMLには文字シーケンスのみを含めることができます。HTTPリクエストパラメータは、文字シーケンスのみを表すことができます。Javaオブジェクトを渡すことは絶対にできません。サーバー側で取得した後にJavaオブジェクトに変換できるように、最初に指定された形式に基づいてJavaオブジェクトを一意に表す文字シーケンスに変換する必要があります。String文字シーケンスは、クラスによって表されるJavaです。

したがって、基本的には、HTMLで印刷する前にString[]に変換する必要があります。StringHTML<input type="hidden">を使用して、非表示のリクエストパラメータを表すことができます。String送信された値String[]をHTTPリクエストパラメータとして取得した後、元に戻す必要があります。最も単純な方法では、表現としてコンマ区切り値(CSV)形式を選択するか、String XMLまたはJSONを選択できます。

完全に異なる代替手段は、Javaオブジェクトがかなり複雑な場合(たとえば、Javabean、場合によってはよりネストされたJavabeanプロパティなど)java.util.UUID、セッション内の一意の自動生成されたキー(たとえばby)に沿ってオブジェクトを格納することです。次に、その一意のキーをリクエストパラメータとして渡すだけで、後でキーに基づいてセッションから取得(削除)できます。

于 2012-11-26T15:38:50.007 に答える