0

我有一个允许用户修改保存在数据库中的 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 包含的任何内容。我猜你在最初设置页面的 Action 中填充了这个 bean,而不是在提交页面时处理页面的 Action 中,所以在后一种情况下它将是空的。

相反,在您的第一个操作中,您应该填充表单的属性,例如使用“libro”bean 中保存的值。然后,您可以像这样使用 html 标签:

<html:text property="titolo"/>

在表单提交到的 Action 类中,您的表单将包含用户输入的值。如果您随后返回到同一个 JSP 页面,例如由于验证错误,那么请求中将包含同一个 Form 对象,即它仍将包含用户输入的值。

于 2012-05-14T19:30:29.477 回答