struts的两种校验方式
来源:互联网 发布:vscode 编译提示 编辑:程序博客网 时间:2024/05/17 14:26
struts校验页面的输入是否符合要求有两种方式,每种方式又分为全局验证和局部验证两种。
第一种:在Action类中重写方法。
在action类中实现全局验证的步骤:
1、action类继承ActionSupport类。
2、重写validate方法,实现验证规则。
/*//全局验证,不通过跳转到input
@Override
public void validate()
{
if (user.getUsername().equals(""))
{
this.addFieldError("msg", "用户名不能为空");
}
else if (user.getUsername().length() < 6)
{
this.addFieldError("msg", "用户名长度不能小于6");
}
if (user.getPassword().equals(""))
{
this.addFieldError("msg", "密码不能为空");
}
}
*/
3、在核心文件struts.xml中配置input字符串与视图的映射(input字符串为不通过验证时返回的字符串)
<?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="default" namespace="/" extends="struts-default" >
<action name="userAction_*" class="com.caokaiyuan.action.UserAction" method="{1}">
<result name="register">success.jsp</result>
<result name="login">success.jsp</result>
<!-- 配置input字符串与视图的映射 -->
<result name="input">{1}.jsp</result>
</action>
</package>
</struts>
局部验证的步骤基本如全局验证,不同的是在局部验证时不是重写validate方法。而且局部验证的方法也要遵循一定的命名规制。
命名规制:validate + 要验证的方法名,方法名首字母大写
如下代码:只对userAction_login的请求时验证
package com.caokaiyuan.action;
import com.caokaiyuan.vo.UserVO;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class UserAction extends ActionSupport implements ModelDriven<UserVO>
{
private static final long serialVersionUID = 1L;
private UserVO user = new UserVO();
public String register() throws Exception
{
return "register";
}
public String login() throws Exception
{
return "login";
}
/*//全局验证,不通过跳转到input
@Override
public void validate()
{
if (user.getUsername().equals(""))
{
this.addFieldError("msg", "用户名不能为空");
}
else if (user.getUsername().length() < 6)
{
this.addFieldError("msg", "用户名长度不能小于6");
}
if (user.getPassword().equals(""))
{
this.addFieldError("msg", "密码不能为空");
}
}
*/
//局部验证
public void validateLogin()
{
if (user.getUsername().equals(""))
{
this.addFieldError("msg", "用户名不能为空");
}
else if (user.getUsername().length() < 6)
{
this.addFieldError("msg", "用户名长度不能小于6");
}
}
public UserVO getUser() {
return user;
}
public void setUser(UserVO user) {
this.user = user;
}
@Override
public UserVO getModel()
{
return user;
}
}
第二种:在xml文件中配置验证规则。
在xml文件中配置全局验证的步骤
1、在action的包下面建立action名称+validation的xml文件如(UserAction-validation.xml)
2、在action包下的xml文件进行验证规制(如在UserAction-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>
<!-- 配置校验规则,用户名非空验证 -->
<validator type="requiredstring">
<!-- 要验证的字段 -->
<param name="fieldName">username</param>
<!-- 不通过是的返回值 -->
<message>用户名不为空!!</message>
</validator>
</validators>
3、、在核心文件struts.xml中配置input字符串与视图的映射(input字符串为不通过验证时返回的字符串)
局部验证的步骤只要把全局验证的xml文件的名称按一定的规制修改一下即可。
如把上面的UserAction-validation.xml修改为UserAction-userAction_login-validation.xml。
命名规制:action名称+ -要验证的请求的名称+ -validation
- struts的两种校验方式
- struts数据校验的两种方式
- Struts的校验方式
- Struts集成的校验方式
- struts2 两种校验方式
- Spring 整合 Struts 的两种方式
- 力所能及之struts2校验的两种方式
- struts2学习之表单校验的两种方式
- 网页用户登录权限校验的两种实现方式
- 常见的两种数据校验方式
- Struts2校验的两种实现方式(使用内置校验和手动编写)
- Struts2后台校验两种方式
- Struts数据校验的两种方法,以及错误标签的格式化
- Struts和Spring集成的两种方式
- spring 和struts 的结合两种方式
- Struts和Spring整合的两种方式
- Struts 获取HttpServletRequest和HttpServletResponse的两种方式
- 创建Action的两种方式Spring和Struts
- HDU1016-经典DFS
- [Spring]Annotation-based container configuration_AnotationBasis_02
- 高并发服务器设计
- 通知:Android 官方文档翻译正式开动了
- TCP/IP协议重要知识点汇总(持续更新中)
- struts的两种校验方式
- Java中的包与访问权限的控制
- c++作业
- JAVA——制作java程序说明书、解决DOS下中文编码问题 GBK
- 制作Nine-Path图片
- 多进程多线程编程汇总(持续更新中)
- 古诗三重境界
- JSP语法
- 泛型的简单写法