At line 1 changed 1 line. |
__Part IV:__ [添加验证和列表页面|ValidationAndList_zh] - 给personForm的firstName和lastName字段添加必添的验证逻辑和显示person所有记录的页面。 |
__Part IV:__ [增加校验功能和列表页面|ValidationAndList_zh] - 给personForm的firstName和lastName字段添加必添的验证逻辑和显示person所有记录的页面。 |
At line 3 changed 1 line. |
;:''本教程依赖于__Part III:__ [创建Actions和JSPs|CreateActions].'' |
;:''本教程依赖于__Part III:__ [创建 Struts Actions和JSPs|CreateActions_zh].'' |
At line 22 changed 1 line. |
为了使用Struts的Validator,通常情况下你需要手工写validation.xml,如果你不使用AppFuse,你还需要配置Validator插件和在ApplicationResources_en.properties写错误关键字,可以到[Validation Made Easy Tutorial|http://www.reumann.net/struts/lesson3/step8.do](Struts本身也有一套[rich set of tutorials|http://www.reumann.net/struts/main.do])察看更多的信息。 |
为了使用Struts的Validator,通常情况下你需要手工写validation.xml,如果你不使用AppFuse,你还需要配置Validator插件和在ApplicationResources.properties写错误关键字,可以到[Validation Made Easy Tutorial|http://www.reumann.net/struts/lesson3/step8.do](Struts本身也有一套[rich set of tutorials|http://www.reumann.net/struts/main.do])察看更多的信息。 |
At line 52 changed 1 line. |
type="required"的属性的默认关键字是''errors.required'',所以我通常会保留默认值。这个默认值定义在web/WEB-INF/classes/ApplicationResources_*.properties,你一定会注意到我们把标签放到''getters''方法前,而不是[XDoclet 文档|http://xdoclet.sourceforge.net/tags/apache-tags.html#@struts.validator%20(0..*)]里说的放到setters前,这是因为我们生成PersonForm.java的模版文件(metadata/template/struts_form.xdt)会把标签加到生成的文件里。 |
type="required"的属性的默认关键字是''errors.required'',所以我通常会保留默认值。这个默认值定义在web/WEB-INF/classes/ApplicationResources_*.properties,你一定会注意到我们把标签放到''getters''方法前,而不是[XDoclet 文档|http://xdoclet.sourceforge.net/tags/apache-tags.html#@struts.validator%20(0..*)]里说的放到setters前,这是因为我们生成PersonForm.java的模版文件(metadata/template/struts_form.xdt)会把标签加到生成的文件里。 |
At line 81 changed 1 line. |
%%note __注意:__ 如果你绑定验证规则到对象,它将会被收集起来添加到validation.xml,这是因为当一个Form建立的时候,一个@struts.validator会添加到关联对象的Setter上(通过metadata/templates/struts_form.xdt)。如果你使用多对多的双向关联,这会引起一个问题,有两个解决方案,第一个是在struts_form.xdt中去掉@struts.validator标签,并且手动的修改POJO的setter,第二种方案在[这里描述|https://appfuse.dev.java.net/issues/show_bug.cgi?id=88]。%% |
%%note __注意:__ 如果你绑定验证规则到对象,它将会被收集起来添加到validation.xml,这是因为当一个Form建立的时候,一个@struts.validator会添加到关联对象的Setter上(通过metadata/templates/struts_form.xdt)。如果你使用多对多的双向关联,这会引起一个问题,有两个解决方案,第一个是在struts_form.xdt中去掉@struts.validator标签,并且手动的修改POJO的setter,第二种方案在[这里有阐述|https://appfuse.dev.java.net/issues/show_bug.cgi?id=88]。%% |
At line 85 changed 1 line. |
你现在有了这个form的验证配置,无论何时这个form在被调用时,如果action-mapping中的validate="true",这些规则就会被应用,在[上一个教程|CreateActions_zh]里,我们为PersonAction添加了"savePerson"的action-mapping,对应的XDoclet标签如下: |
你现在有了这个form的验证配置,无论何时这个form在被调用时,如果action-mapping中的validate="true",这些规则就会被应用,在[前一篇指南|CreateActions_zh]里,我们为PersonAction添加了"savePerson"的action-mapping,对应的XDoclet标签如下: |
At line 98 changed 1 line. |
[validation-required.png] |
[http://raibledesigns.com/wiki/attach/ValidationAndList/validation-required.png] |
At line 104 changed 1 line. |
[validation-required-nojs.png] |
[http://raibledesigns.com/wiki/attach/ValidationAndList/validation-required-nojs.png] |
At line 307 changed 1 line. |
最后,web/WEB-INF/classes/ApplicationResources_en.properties里添加标题和题目关键字(personList.title和personList.heading),打开文件添加如下内容: |
最后,web/WEB-INF/classes/ApplicationResources.properties里添加标题和题目关键字(personList.title和personList.heading),打开文件添加如下内容: |
At line 399 changed 1 line. |
''menu.viewPeople''是web/WEB-INF/classes/ApplicationResources_en.properties中的一个条目。 |
''menu.viewPeople''是web/WEB-INF/classes/ApplicationResources.properties中的一个条目。 |
At line 432 changed 1 line. |
[new-menu-item.png] |
[http://raibledesigns.com/wiki/attach/ValidationAndList/new-menu-item.png] |