0

ユーザーがDBに保存されたBeanを変更できるようにする次のフォームがあります。

<html:form action="/confMod">
<table id="inserimento">
<tr>
  <td>Titolo</td>
  <td><html:text property="titolo" value="${libro.titolo }"/>
</tr>
<tr>
  <td>Pagine</td>
  <td><html:text property="pagine" value="${libro.pagine }"/>
</tr>
<tr>
<td>ISBN</td>
<td><html:text property="isbn" value="${libro.isbn }"/>
  </tr>
</table>
<html:hidden property="idLibro" value="${idLibro }"/>
<html:hidden property="opCod" value="modifica" />
<html:submit value=" Inserisci " />

ユーザーが送信すると、validate()メソッドは入力をチェックします。入力が正しくない場合、Struts はフォームを含む JSP に戻りますが、値は空です。古い価値観を形に残したい…どうしたらいいの?validate()メソッドで BD にアクセスしたり、セッションで保存したりしたくありません。

4

1 に答える 1

0

struts html タグの 'value' 属性を使用して、フォーム フィールドの値を libro Bean に含まれるものに明示的に設定します。この Bean は、最初にページを設定するアクションに入力されますが、送信時にページを処理するアクションには入力されないため、後者の場合は空になります。

代わりに、最初のアクションで、たとえば「libro」Bean に保持されている値を使用して、フォームのプロパティを設定する必要があります。次に、次のように html タグを使用できます。

<html:text property="titolo"/>

フォームが送信される Action クラスでは、フォームにはユーザーが入力した値が含まれます。その後、たとえば検証エラーが原因で同じ JSP ページに戻った場合、同じ Form オブジェクトがリクエストに含まれます。つまり、ユーザーが入力した値がまだ含まれています。

于 2012-05-14T19:30:29.477 に答える