但是他们有共同的属性,难道非要建两个相同的ActionForm,只是不同的验证而已?
解决方案 »
- ajax传对象值
- org.hibernate.exception.SQLGrammarException: could not execute query
- 关于自动生成Model配置(Annotation)的讨论
- jxl读取excel,知道密码,怎么读取excel
- struts2中参数传递到Action?
- 如何运行hibernate-extensions控制台???
- 拿不到联接
- SSL Configuring in the HP BTO SOA Manager
- spring无法代理struts的action的问题
- dom4j中获取一个注释节点?
- Hibernate与数据库Informix的问题提,请达人解答!
- 请高手指点 配置数据源 如何配置以及 如何使用 连接池.
就算是我写两个Action吧,但我想用一个ActionForm验证,验证失败分别返回不同的页面
我该怎么设置input?
在action中使用这句代码就行了。return mapping.getInputForward();使用这句代码就可以解决楼主的问题 了,分别返回相应的页面了。
。。
另一个页面是列表查询.
那么应该做两个Action , 即使物理上是一个Action.java. 也应该配置两个Action
ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
reture 注册;
} public ActionForward to用户修改资料方法(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
reture 修改资料页面;
}
}
自定义验证方法,不使用框架默认的验证方法
boolean 验证注册(form)
{}
boolean 验证修改(form)
{} public ActionForward to用户注册方法(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
实例化form
String forward="";
if(验证注册(form))
{forward=正常页面}
else
{forward= 错误页面}
return forward;
} 修改方法同上
我指的是ActionForm验证的返回,不是在Action中或bean中验证
ActionForm中不能用success或failure吧?
或者是我不会
请指教
以前就是写在action里,现在想试试用validate方法验证
这样至少有个好处,通不过验证返回页面时,至可以保留用户输入的信息
意思就是你的XXXDispatchAction的class实例只有一个,例如com.xyh.emp.EmployeeAction,
但是在struts-config.xml的ActionMappings里面可以映射为多个<action>标记,例如:<action
path="/regEmployee"
input="/registerEmployee.jsp"
parameter="method"
name="employeeForm"
attribute="employeeForm"
scope="request"
validate="true"
type="com.xyh.emp.EmployeeDispatchAction">
<forward name="detail" path="/detailEmployeeInfo.jsp" />
</action><action
path="/editEmployee"
input="/editEmployee.jsp"
parameter="method"
name="employeeForm"
attribute="employeeForm"
scope="request"
validate="true"
type="com.xyh.emp.EmployeeDispatchAction">
<forward name="detail" path="/detailEmployeeInfo.jsp" />
</action>那么在JSP里面就可以这么分别描述表单标签。
·<html:form action="registerEmployee.do"/>
·<html:form action="editEmployee.do"/>这样你不仅能为不同的行为指定不同的“action”,
自然就可以使用不同的input页,
分别指定validate是true或者false,
甚至可以使用不同的ActionForm。说白了就是DispatchAction的类实例只有一个,
但是可以通过不同的path映射为不同的“行为”,
这不是Struts的缺点,反而正好是它的优点。:)
一种是使用BeanName,就是action标签里面的name="employeeForm",
另一种是使用path,就是action标签里面的path="/regEmployee",
那么在使用了DispatchAction的情况下,如果使用Validator进行验证的话,
你的XXXXForm只需要继承ValidatorActionForm或DynaValidatorActionForm,
然后在validation.xml文件里面form标签里面的name属性使用该映射action的path就可以了。
十分感谢,调试已经通过啦:)
结贴