十四、struts2验证实例

Struts2输入校验的两种实现方式
一、手动编程实现输入校验

二、校验框架XML实现输入校验

下面来分别实现

一、手动编程实现输入验证

1、建立validate.jsp页面代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	 <form action="validate" method="post">
    用户名:<input type="text" name="uid"/>
    <br/>
    手机号码:<input type="text" name="telephone"/>
    <br/>
  <!--   输入:<input type="text" name="input"/> -->
    <br/>
    
    <input type="submit" value="提交" />
    </form>
    <s:fielderror/>
    <br/>
    ${message }
  </body>
</body>
</html>
注意:不要忘记在页面内引入struts2标签库 <%@ taglib uri="/struts-tags" prefix="s" %>

2、配置struts-demo.xml文件

插入

<action name="validate" class="action.ValidateAction" >
			<result name="input">/validate.jsp</result>
			<result name="ok">/validate.jsp</result>
		</action>
详细:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<package name="demo" namespace="" extends="base">
		<!-- 声明拦截器 -->
		<interceptors>
			<interceptor name="mytime" class="interceptor.MyTimeInterceptor"></interceptor>
			<!-- 定义拦拦截器栈 -->
			<interceptor-stack name="myinterceptorstack">
				<interceptor-ref name="defaultStack"></interceptor-ref>
				<interceptor-ref name="mytime"></interceptor-ref>
			</interceptor-stack>
		</interceptors>
		<action name="date" class="action.DataTypeConvertAction" >
			<result name="ok">/dateType.jsp</result>
		</action>
		<action name="fileup" class="action.FileupAction" >
			<interceptor-ref name="myinterceptorstack"></interceptor-ref>
			<result name="ok">/fileup.jsp</result>
		</action>
		<action name="down" class="action.DownAction" >
			<result name="ok" type="stream">
				<!--有输出中文的时使用 param name="contentType">application/octet-stream;charset=utf-8</param -->
		        <param name="contentType">application/x-msdownload</param>
	            <param name="inputName">tagFile</param>
	            <param name="contentDisposition">filename=${filename}</param>
			</result>
		</action>
		<action name="validate" class="action.ValidateAction" >
			<result name="input">/validate.jsp</result>
			<result name="ok">/validate.jsp</result>
		</action>
	</package>
</struts>



3、根据配置文件所配建立ValidateAction.java文件 该文件记得继承ActionSupport类详细代码如下

package action;


import java.util.regex.Pattern;


import com.opensymphony.xwork2.ActionSupport;


public class ValidateAction extends ActionSupport {
private String uid;
private String telephone;
private String message;
private String input;
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getInput() {
return input;
}
public void setInput(String input) {
this.input = input;
}
public String execute(){
this.message="验证通过!";
return "ok";
}
@Override
public void validate() {
if(uid.equals("")){
this.addFieldError("uid", "用户名不能为空!");
}
if(telephone.equals("")){
this.addFieldError("teltphone", "电话号码不能为空!");
}
if(!Pattern.compile("^1[358][0-9]{9}$").matcher(this.telephone).matches()){
this.addFieldError("teltphone", "电话号码不正确!");
}
}
public String add(){
return "ok";
}

/**
* 为add的方法进行输入检验
*/
public void validateAdd(){
}
}

完成!

二、校验框架XML实现输入校验实现

在ValidateAction.java相同目录下建ValidateAction-validation.xml文件 文件取名规则为:action名称-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>
    <field name="uid">
        <field-validator type="requiredstring">
            <param name="trim">true</param>
            <message>用户名不能为空!</message>
        </field-validator>
    </field>
    <field name="telephone">
        <field-validator type="regex">
            <param name="expression"><![CDATA[^1[358]\d{9}$]]></param>
            <message>用户名不能为空!</message>
        </field-validator>
    </field>
</validators>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值