1.我们在使用webwork验证,可以分为两种情况讨论,下面提到的是第一种情况:
<!-- 第一种情况 服务器验证 + 验证提示信息位置 -->
<!-- 不管action="test"或action="test.do" 都为服务器验证方式
因为使用html标签<input name="Username" />,而不是<@ww.textfield label="Username" name="Username" />
优点:验证提示信息不会在文本框附近显示,而集中显示在一个span中
-->
<span class="errorMessage" align="left">
<@ww.iterator value="fieldErrors">
<li><@ww.property value="value[0]"/></li>
</@ww.iterator>
</span>
<@ww.form action="test" method="post" validate="true">
Username:<input name="Username" /><br/>
Birthday:<input name="Birthday" /><br/>
<@ww.submit />
</@ww.form>
第二种情况为:
<!-- 我们编写代码的时候追求简单,当action="test"时webwork客户端验证方式时,验证提示信息会重复多次显示,
解决方法是:在ftl页面中添加完整<html><head></head><body>...下面的代码...</body></html>,主要跟validation.js文件,clearErrorMessages(form);
clearErrorLabels(form);两个方法与html标签结构完整性有关
特点:验证提示信息显示在文本框上面
当action="test.do"方式时,为服务器验证,不会生成validation.js文件,function验证代码(显示出来的页面->查看源文件)
不管<html><head></head><body></body></html>是否存在,验证提示信息都不会重复多次显示
-->
<@ww.form action="test" method="post" validate="true">
<@ww.textfield label="Username" name="Username" />
<@ww.textfield label="Birthday" name="Birthday" />
<@ww.submit />
</@ww.form>
下面看看action名字-validation.xml
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators> <field name="Username"> <field-validator type="requiredstring"> <message>Username不能为空</message> </field-validator> </field> <field name="Birthday"> <field-validator type="requiredstring"> <message>Birthday不能为空</message> </field-validator> </field> </validators>
归纳:只有在webwork客户端验证情况时,才会出现验证提示信息会重复多次显示问题,解决方法是:<html><head></head><body>...</body></html>编写代码完整.
当webwork服务器端验证时,不会出现验证提示信息重复多次显示问题.
提醒:action类继承ActionSupport