http://35java.com/zhibo/forum.php?mod=viewthread&tid=357&extra=page%3D4
现在有一个类CommonAddSubmitAction(这个类负责所有添加实体类的操作) 在struts.xml中,有对应关系为 <action name="AddProductSubmit" class="addProductSubmitAction"> <result>/crm/success.jsp</result> 在spring管理的action.xml下对应关系为 <bean id="addProductSubmitAction" class="cn.edu.software.nju.crm.action.common.CommonAddSubmit" scope="prototype"> <property name="entity" ref="product"/> <property name="commonService" ref="commonService"></property> </bean> addProductSubmit.jsp中//伪代码 <s:form action="AddProductSubmit" theme="simple" > <s:textfield name="entity.name" size="30" maxlength="45"/> <s:textfield name="entity.netWorth" size="30" maxlength="45"/> <s:textfield name="entity.returnNumber" size="30" maxlength="45"/> <input name="submint"type="submit" class="high_bid_price" value=" 提交 " > 调用顺序为 填写addProductSubmit.jsp后,根据s:form action="AddProductSubmit",查找struts.xml由name得到class,再根据action.xml中的对应(id-->class) 关系,把spring自动生成的entity注入到CommonAddSubmit的Action类中 加入验证 因为CommonAddSubmit对应很多的实体类的添加操作,所以使用Validation中的别名机制,(这里的别名是指struts.xml中的别名AddProductSubmit) 建立验证文件CommonAdd-AddProductSubmit-validation.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators> <field name ="entity.name" > <field-validator type ="requiredstring" > <message>名字不能为空</message> </field-validator> </field> <field name ="entity.netWorth" > <field-validator type="double"> <param name="minExclusive">0.0</param> <param name="maxExclusive">1.0</param> <message>净值必须在 ${minExclusive} 到 ${maxExclusive}之间</message> </field-validator> </field> </validators> 如果,validation没有通过会返回"input",所以修改struts.xml为 <action name="AddProductSubmit" class="addProductSubmitAction"> <result>/crm/success.jsp</result> <resutl name="input" > /crm/error.jsp</result> 另外:validation.xml验证的是实体类中的具体类型,比如netWorth验证的是double,而不是string,原因好像是因为调用转换器在前,验证机制在后(这个原因有待我考证一下,文档还没有研究细致) 改进: 1 变为前台验证:在jsp页面中加入validate="true" <s:form action="AddProductSubmit" theme="simple" validate="true"> |