首页 > 代码库 > Struts2校验

Struts2校验

struts2校验有两种实现方法:

手工编写代码实现(基本验证)

//login.jsp

<font color="red"><s:fielderror/></font>

    <s:form action="login">

        <s:textfield name="uname" label="user name"></s:textfield>

        <s:password name="upass" label="pass word"></s:password>

        <s:submit></s:submit>

</s:form>

 

//LoginAction.java里面重写validate方法

//校验失败则返回“input”,校验成功则执行execute方法

    public void validate(){

       if("".equals(uname)){

           this.addFieldError("uname", "user name can not be null!");

       }

       if("".equals(upass)){

           this.addFieldError("upass", "pass word can not be null!");

       }

    }

 

//如果针对不同的请求需要不同的验证方法

//比如说请求register和login两个不同的方法

//则对应书写validateRegister()和validateLogin()两个验证方法即可

 

基于XML配置方式实现(验证框架)

手动输入校验,虽然比在Servlet中能方便一点,但是还是出现了大量繁琐的编程代码。Struts2提供了更为高效、简易的校验框架,用户只需设置校验配置文件即可完成输入校验。

 

主要步骤就是在action同目录下创建一个xml格式的验证文件。

Login.jsp

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

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

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

<html>

  <head>

    <title>login page</title>

  </head>

  <body>

    <s:form action="loginAction">

       <s:textfield name="userName" label="用户名"></s:textfield>

       <s:password name="passWord" label="用户密码"></s:password>

       <s:submit></s:submit>

    </s:form>

  </body>

</html>

 

Struts.xml

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

<!DOCTYPE struts PUBLIC

   "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

   "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

   <constant name="struts.i18n.encoding" value=http://www.mamicode.com/"UTF-8"></constant>

    <package name="struts2" extends="struts-default" >

        <action name="loginAction" class="com.silvan.action.LoginAction">

            <result>/index.jsp</result>

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

        </action>

    </package>

</struts>

loginAction.java

package com.silvan.action;

 

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{

   private String userName;

   private String passWord;

   public String login(){

      return SUCCESS;

   }

   Get/set……

}

LoginAction-validation.xml与对应的Action类放入同一个文件夹下,并且以XxxAction-validation.xml的命名方式:(该xml校验文件的书写模板在xwork-core-2.1.6.jar包下的xwork-validator-1.0.3.dtd中可以查看)

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

<!DOCTYPE validators PUBLIC

      "-//Apache Struts//XWork Validator 1.0.3//EN"

     "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">

<validators>

   <field name="userName">

      <field-validator type="requiredstring">

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

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

      </field-validator>

   </field>

   <field name="passWord">

      <field-validator type="requiredstring">

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

         <message>用户密码不能为空xml</message>

      </field-validator>

   </field>

</validators>

 

可拓展的知识点:

  1. 正则表达式;
  2. 实现错误提示信息的国际化。

Struts2校验