zoukankan      html  css  js  c++  java
  • 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="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. 实现错误提示信息的国际化。
  • 相关阅读:
    基于Python的TCP阻塞式echo服务器
    Memcache仅仅支持简单数据类型
    Memcached(七)Memcached的并发实例
    Memcached(六)Memcached的并发实例
    Memcached(五)Memcached的并发实例
    Tcl/Tk的安装(转)
    centos6.5下安装Scipy工具包
    Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost'问题的解决
    mysql启动失败解决方案
    Linux更换python版本
  • 原文地址:https://www.cnblogs.com/zhouyeqin/p/7172353.html
Copyright © 2011-2022 走看看