struts-11-表单数据校验
来源:互联网 发布:大数据的价值体现在 编辑:程序博客网 时间:2024/05/29 02:44
表单数据的验证
前台js验证
后台验证
相关拦截器
<interceptor name="validation" class="org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor"/>
一、代码方式验证Action中的所有方法
用struts完成的数据验证案例,数据校验以及错误信息回显User.java
package com.cx.verify;/** * Created by cxspace on 16-7-14. */public class User { private String userName; private String pwd; private String email; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; }}
UserAction.java
package com.cx.verify;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;/** * Created by cxspace on 16-7-14. *//* 如果要用struts的数据校验功能,必须要继承actionsupport以及实现相关接口 */public class UserAction extends ActionSupport{ //封装请求数据 private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; } //数据验证方法,拦截器自动调用 @Override public void validate() { //用户名非空 if (user.getUserName()==null || "".equals(user.getUserName())){ //保存错误信息 super.addFieldError("userName","用户名必须填写"); } if (user.getPwd() == null || "".equals(user.getPwd())){ super.addFieldError("pwd","密码必须填写"); } } public String login(){ System.out.println("username in validate" + user.getUserName()); ActionContext.getContext().getContextMap().put("username",user.getUserName()); return SUCCESS; }}
配置
<?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> <package name="verify" extends="struts-default"> <action name="user_*" class="com.cx.verify.UserAction" method="{1}"> <result name="success">/index.jsp</result> <result name="input">/login.jsp</result> </action> </package></struts>
login.jsp
<%-- Created by IntelliJ IDEA. User: cxspace Date: 16-7-14 Time: 下午3:44 To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ taglib prefix="s" uri="/struts-tags" %><html><head> <title>login</title></head><body> <form method="post" action="${pageContext.request.contextPath}/user_login"> 用户名:<input type="text" name="user.userName"> <br> 密码:<input type="password" name="user.pwd"> <br> 邮箱:<input type="text" name="user.email" value=""> <br> <% System.out.println(request.getAttribute("username")); %> <input type="submit"> <s:fielderror> <s:param>userName</s:param> <s:param>pwd</s:param> </s:fielderror> </form></body></html>
二、验证指定的方法
写验证方法命名规则: validate+要验证的方法名
三、xml验证Action中所有的方法
代码验证繁琐,会设置很多重复的验证逻辑。
Struts对于常用验证,进行了封装,提供了验证器!
常用验证器
<validators> <validator name="required" class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/> <validator name="requiredstring" class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/> <validator name="int" class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/> <validator name="long" class="com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator"/> <validator name="short" class="com.opensymphony.xwork2.validator.validators.ShortRangeFieldValidator"/> <validator name="double" class="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"/> <validator name="date" class="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"/> <validator name="expression" class="com.opensymphony.xwork2.validator.validators.ExpressionValidator"/> <validator name="fieldexpression" class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/> <validator name="email" class="com.opensymphony.xwork2.validator.validators.EmailValidator"/> <validator name="url" class="com.opensymphony.xwork2.validator.validators.URLValidator"/> <validator name="visitor" class="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"/> <validator name="conversion" class="com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"/> <validator name="stringlength" class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/> <validator name="regex" class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"/> <validator name="conditionalvisitor" class="com.opensymphony.xwork2.validator.validators.ConditionalVisitorFieldValidator"/></validators>
写xml,定义验证规则
xml文件名命名语法 : ActionClassName-validation.xml
注意:此xml需要与当前要验证的action在同一个目录
案例
com/cx/verify/UserAction-validation.xml
<?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表示--> <field name="user.userName"> <!--使用指定的验证器--> <field-validator type="requiredstring"> <!--验证失败的错误提示信息--> <message>用户名不能为空!</message> </field-validator> </field> <field name="user.pwd"> <field-validator type="requiredstring"> <message>密码不能为空!</message> </field-validator> <!--长度验证--> <field-validator type="stringlength"> <param name="minLength">6</param> <param name="maxLength">10</param> <message>密码必须为6-10位</message> </field-validator> </field> <!-- <field name="user.birth"> <field-validator type="date"> <message>日期格式不对</message> </field-validator> </field> --> <field name="user.email"> <field-validator type="email"> <message>邮箱格式不对!</message> </field-validator> </field></validators>
四、xml方式验证Action中指定方法
xml配置文件命名
UserAction-user_register-validation.xml
验证UserAction中的register方法
0 0
- struts-11-表单数据校验
- struts表单数据校验
- 在Struts 2.0中实现表单数据校验(Validation)
- 在Struts 2.0中实现表单数据校验(Validation)
- 在Struts 2.0中实现表单数据校验(Validation)
- 在Struts 2.0中实现表单数据校验(Validation)
- 在Struts 2.0中实现表单数据校验(Validation)
- 在Struts 2.0中实现表单数据校验(Validation)
- 在Struts 2.0中实现表单数据校验(Validation)
- 在Struts 2.0中实现表单数据校验(Validation)
- 在Struts 2.0中实现表单数据校验(Validation)
- 在Struts 2.0中实现表单数据校验(Validation)
- 在Struts 2.0中实现表单数据校验(Validation)
- 11--struts--保持表单数据
- struts 数据校验
- struts 数据校验
- struts 数据校验
- Struts的数据校验
- struts-核心内容-9-拦截器
- javaweb-c3p0连接池
- struts-核心内容-10-Ognl表达式语言
- Android系列之Service组件的应用
- struts-10-主要标签
- struts-11-表单数据校验
- struts标签解决用户输入验证的解决方案
- Hibernate学习-1-ORM 概念
- Hibernate学习-2-环境搭建
- Hibernate学习-3-API详解以及执行流程
- container_of分析
- 解构C#游戏框架uFrame兼谈游戏架构设计
- Hibernate学习-4-各种查询方式
- Hibernate-简单的crud案例