我有这个表单允许用户修改保存在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,也不想将其保存在会话中。
答案 0 :(得分:0)
通过使用struts html标记的'value'属性,您可以将表单字段的值显式设置为libro bean包含的任何值。我猜你在最初设置页面的Action中填充这个bean,而不是在提交页面时处理页面的Action中填充,所以在后一种情况下它将为空。
相反,在第一个Action中,您应该填充表单的属性,例如使用'libro'bean中保存的值。然后,您可以使用这样的html标签:
<html:text property="titolo"/>
在提交表单的Action类中,您的表单将包含用户输入的值。然后,如果您返回到相同的JSP页面,例如由于验证错误,同一Form对象将在请求中,即它仍将包含用户输入的值。