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. 实现错误提示信息的国际化。

最新文章

  1. [SDK2.2]SQL Azure (13) Azure的两种关系型数据库服务:SQL Azure与SQL Server VM的不同
  2. 如何获取TypedArray?
  3. iOS-多线程--介绍NSOperration
  4. ISAPI_Rewrite中文手册
  5. 每天一个linux命令(6):mv命令
  6. Quartz.net 的开源任务管理平台
  7. VS2010/MFC常用控件:图片控件Picture Control
  8. jQuery学习心得一
  9. 接触新的项目,构建时候报错:Failure to find io.netty:netty-tcnative:jar:${os.detected.classifier}:2.0.7.Final in
  10. Excel—宏表函数
  11. 面试:atoi() 与 itoa()函数的内部实现(转)
  12. canal demo搭建全记录
  13. VS2008安装“Visual Studio Web 创作组件”安装失败的解决方法
  14. NOIP2018初赛游记
  15. IDEA2018.2破解方法
  16. 素数问题练习_HDOJ1262
  17. js实现截取或查找字符串中的子字符串
  18. mysql检查-优化-分析
  19. 第二阶段冲刺——three
  20. Python日志模块简单使用

热门文章

  1. Odoo(OpenERP)开发实践:数据模型学习
  2. 【iOS开发-80】Quartz2D画图简单介绍:直线/圆形/椭圆/方形以及上下文栈管理CGContextSaveGState/CGContextRestoreGState
  3. 兼容chrome和ie的音乐播放
  4. 配置win2008防火墙&amp;nbsp;允许被Ping的设置方法
  5. npm中的 --save-dev
  6. PHP中的字符串类型
  7. MeayunDB学习笔记(一) MeayunDB介绍及安装
  8. Linux 内核剖解(转)
  9. mvc关于pots请求 哪个函数 出现bug研究
  10. UWP添加数字证书导出安装包本地安装