一口一口吃掉Struts(四)——几个知道就可以的属性 .

先看struts-config.xml

  1. <action path="/login" type="com.jialin.LoginAction" name="userForm"  
  2.    scope="request" validate="true" attribute="uf">  
  3.    <forward name="success" path="/LoginSuccess.jsp" />  
  4.    <forward name="fail" path="/LoginFail.jsp" />  
  5.   </action>  
<action path="/login" type="com.jialin.LoginAction" name="userForm"
   scope="request" validate="true" attribute="uf">
   <forward name="success" path="/LoginSuccess.jsp" />
   <forward name="fail" path="/LoginFail.jsp" />
  </action>


其中 validate和attribut有什么用?

 

validate,是否验证表单数据。

我们在ActionForm中,重写父类的validate方法,当从表单收集完数据放到ActionForm后,如果配置文件中validate=true,将调用该方法,这里我们可以做一些数据验证。

  1. @Override  
  2. public ActionErrors validate(ActionMapping mapping,  
  3.         HttpServletRequest request) {  
  4.     System.out.println("-------ActionForm.validate()从表单收集完数据放到ActionForm后做验证--------");  
  5.     return super.validate(mapping, request);  
  6. }  
	@Override
	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		System.out.println("-------ActionForm.validate()从表单收集完数据放到ActionForm后做验证--------");
		return super.validate(mapping, request);
	}


当然,如果系统安全性各方面要求不高,我们一般的验证都是放在javascript里的。

 

attribute

如果我们配置了attribute属性,我们在jsp中要获取actionform中的值得时候,form名就变为attribute设置的值。而不再是form-bean节点下 name属性的值。

例如

  1. <struts-config>  
  2.     <!-- set ActionForm info-->  
  3.     <form-beans>  
  4.         <form-bean name="userForm" type="com.jialin.UserActionForm" />  
  5.     </form-beans>  
  6.   
  7.     <action-mappings>  
  8.         <!-- Set path,action,actionform,scope,forward info -->  
  9.         <action path="/login" type="com.jialin.LoginAction" name="userForm"  
  10.             scope="request" validate="true" attribute="uf">  
  11.             <forward name="success" path="/LoginSuccess.jsp" />  
  12.             <forward name="fail" path="/LoginFail.jsp" />  
  13.         </action>  
  14.     </action-mappings>  
  15.   
  16. </struts-config>  
<struts-config>
	<!-- set ActionForm info-->
	<form-beans>
		<form-bean name="userForm" type="com.jialin.UserActionForm" />
	</form-beans>

	<action-mappings>
		<!-- Set path,action,actionform,scope,forward info -->
		<action path="/login" type="com.jialin.LoginAction" name="userForm"
			scope="request" validate="true" attribute="uf">
			<forward name="success" path="/LoginSuccess.jsp" />
			<forward name="fail" path="/LoginFail.jsp" />
		</action>
	</action-mappings>

</struts-config>


如果我们要用el表达式取表单的值,不能使用${userForm.name},而是${uf.name}

 

ActionForm中还可以重写父类的reset的方法,可以在把收集表单数据往ActionForm中放之前做一些处理

  1. @Override  
  2.     public void reset(ActionMapping mapping, HttpServletRequest request) {  
  3.         System.out.println("------------ActionForm.reset()<SPAN style="FONT-FAMILY: Calibri">可以</SPAN><SPAN style="FONT-FAMILY: 宋体" lang=zh-CN>在把收集表单数据往</SPAN><SPAN style="FONT-FAMILY: Calibri" lang=en-US>ActionForm</SPAN><SPAN style="FONT-FAMILY: 宋体" lang=zh-CN>中放之前做一些处理</SPAN>-----------");  
  4.     }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值