0
点赞
收藏
分享

微信扫一扫

基于XML配置方式对指定action方法实现输入校验

gy2006_sw 2023-04-27 阅读 58


知识点:


当校验文件的取名为ActionClassName-validation.xml时,会对 action中的所有处理方法实施输入验证。如果你只需要对action中的某个action方法实施校验,那么,校验文件的取名应为:ActionClassName-ActionName-validation.xml,其中ActionName为struts.xml中action的名称。例如:在实际应用中,常有以下配置:

<action name="user_*" class="cn.itcast.action.UserAction" method="{1}“ > 

 <result name="success">/WEB-INF/page/message.jsp</result> 

 <result name="input">/WEB-INF/page/addUser.jsp</result> 

</action> 

UserAction中有以下两个处理方法: 

public String add() throws Exception{ 

 .... 

} 

public String update() throws Exception{ 

 .... 

}


要对add()方法实施验证,校验文件的取名为: UserAction-user_add-validation.xml
要对update()方法实施验证,校验文件的取名为: UserAction-user_update-validation.xml



照样实现步骤 :

第一步:编写验证配置文件命名为:

XMLValidate-validatexml_add-validation.xml 

【 

<?xml version="1.0" encoding="UTF-8"?> 

<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd"> 

<validators> 

<!-- action的属性--username属性名 --> 

 <field name="username"> 

<!-- requiredstring有一个类与其对应 --> 

 <field-validator type="requiredstring"> 

<!-- requiredstring有一个类与其对应的trim属性注入值 --> 

 <param name="trim">true</param> 

<!--message发生错误时的消息 --> 

 <message>用户名不能为空!</message> 

 </field-validator> 

 </field> 

</validators> 

】



第三步:编写action名称:XMLValidate
注意:这里是用xml配置来验证控件但也必须继承ActionSupport类

public class XMLValidate extends ActionSupport{ 


 private String username; 

 private String message; 


 public String getMessage() { 

 return message; 

 } 


 public void setMessage(String message) { 

 this.message = message; 

 } 


 public String getUsername() { 

 return username; 

 } 


 public void setUsername(String username) { 

 this.username = username; 

 } 

 public String save() 

 { 

 message="save"; 

 return "message"; 

 } 

 public String add() 

 { 

 message="add"; 

 return "message"; 

 } 

}



第四步:配置struts.xml文件

<action name="validatexml_*" class="com.liyong.XMLValidate.XMLValidate" method="{1}"> 

 <!-- 下面的input视图是当存在验证错误或提交参数是类型转换出错 --> 

 <result name="input">/index4.jsp</result> 

 <result name="message">/WEB-INF/page/message.jsp</result> 

 </action>



第五步: 编写提交表单index4.jsp

<%@ page language="java" pageEncoding="UTF-8"%> 

<%@ taglib uri="/struts-tags" prefix="s"%> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

<html> 

 <head> 

 <title>输入校验</title> 

 <meta http-equiv="pragma" content="no-cache"> 

 <meta http-equiv="cache-control" content="no-cache"> 

 <meta http-equiv="expires" content="0"> 

 </head> 

 <body> 

<!-- 以下标签是用来输出错误信息 --> 

 <s:fielderror/> 

 message:${message } 

 <form action="${pageContext.request.contextPath}/person/validatexml_add.action" method="post"> 

 用户名:<input type="text" name="username"/>不能为空<br/> 

 <input type="submit" value="提 交"/></form> 

 </body> 

</html>



第六步:编写message.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

<html> 

 <head> 

 <title>结果</title> 


 <meta http-equiv="pragma" content="no-cache"> 

 <meta http-equiv="cache-control" content="no-cache"> 

 <meta http-equiv="expires" content="0"> 

 </head> 


 <body> 

<!--取出message属性值--> 

 ${message} 

 </body> 

</html>


第七步:部署

注意:这里可从配置的*.xml文件看出
XMLValidate-validatexml_add-validation.xml这里我们只对add方法进行校验
当提交action路径该为:

save 

 <form action="${pageContext.request.contextPath}/person/validatexml_save.action" method="post">


其不对add方法进行校验

举报

相关推荐

0 条评论