Struts2之输入验证

摘要:Struts2提供了安全的服务器验证方法,使用action中的validate方法即可

下面将展现简单的输入验证怎么写

1,表单index.jsp代码如下:

 1 <%@ page language="java" import="java.util.*" pageEncoding="GBK" contentType="text/html; charset=GBK"%>
 2 <%@ taglib uri="/struts-tags" prefix="s"%>
 3 <%
 4 String path = request.getContextPath();
 5 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 6 %>
 7
 8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 9 <html>
10   <head>
11     <base href="<%=basePath%>">
12
13     <title>My JSP ‘index.jsp‘ starting page</title>
14     <meta http-equiv="pragma" content="no-cache">
15     <meta http-equiv="cache-control" content="no-cache">
16     <meta http-equiv="expires" content="0">
17     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
18     <meta http-equiv="description" content="This is my page">
19     <!--
20     <link rel="stylesheet" type="text/css" href="styles.css">
21     -->
22   </head>
23
24   <body>
25     <h1> 学生信息 </h1>
26     <s:form action="st" method="post">
27         <s:textfield name="name" label="姓名"></s:textfield>
28         <s:textfield name="age" label="年龄"></s:textfield>
29         <s:textfield name="mark" label="分数"></s:textfield>
30         <s:textfield name="enrolltime" label="入学时间"></s:textfield>
31         <tr>
32             <td align="center" colspan="2">
33                 <input type="submit" value="提交"/>
34                 <input type="reset" value="重置"/>
35             </td>
36         </tr>
37     </s:form>
38
39   </body>
40 </html>

2,编写Student类来接受表单参数,代码如下:

 1 package pojo;
 2
 3 import java.util.Date;
 4
 5 public class Student {
 6     private String name;
 7     private int age;
 8     private double mark;
 9     private Date enrolltime;
10     public String getName() {
11         return name;
12     }
13     public void setName(String name) {
14         this.name = name;
15     }
16     public int getAge() {
17         return age;
18     }
19     public void setAge(int age) {
20         this.age = age;
21     }
22     public double getMark() {
23         return mark;
24     }
25     public void setMark(double mark) {
26         this.mark = mark;
27     }
28     public Date getEnrolltime() {
29         return enrolltime;
30     }
31     public void setEnrolltime(Date enrolltime) {
32         this.enrolltime = enrolltime;
33     }
34
35
36
37 }

3,Action代码如下:

 1 package action;
 2
 3 import pojo.Student;
 4
 5 import com.opensymphony.xwork2.ActionSupport;
 6 import com.opensymphony.xwork2.ModelDriven;
 7
 8 public class StuAction extends ActionSupport implements ModelDriven<Student>{
 9     private Student student=new Student();
10     @Override
11     public Student getModel() {
12         // TODO Auto-generated method stub
13         return student;
14     }
15     @Override
16     public String execute() throws Exception {
17         System.out.println(student.getName());
18         System.out.println(student.getAge());
19         System.out.println(student.getMark());
20         System.out.println(student.getEnrolltime());
21         return SUCCESS;
22
23
24     }
25
26
27
28 }

4,struts.xml配置如下:

 1 <?xml version="1.0" encoding="GBK" ?>
 2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
 3 <struts>
 4     <package name="actions" extends="struts-default">
 5         <action name="st" class="action.StuAction">
 6             <result name="input">/index.jsp</result>
 7             <result>/Success.jsp</result>
 8         </action>
 9
10     </package>
11
12
13 </struts>    

注:name="input"是在Action模型装换异常或validate方法验证发生异常时自动转换页面,此处为index.jsp

5,Action正确执行后的Success.jsp代码如下:

 1 <%@ page language="java" import="java.util.*" pageEncoding="GBK" contentType="text/html; charset=GBK"%>
 2 <%@ taglib uri="/struts-tags" prefix="s"%>
 3 <%
 4 String path = request.getContextPath();
 5 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 6 %>
 7
 8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 9 <html>
10   <head>
11     <base href="<%=basePath%>">
12
13     <title>My JSP ‘Success.jsp‘ starting page</title>
14
15     <meta http-equiv="pragma" content="no-cache">
16     <meta http-equiv="cache-control" content="no-cache">
17     <meta http-equiv="expires" content="0">
18     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
19     <meta http-equiv="description" content="This is my page">
20     <!--
21     <link rel="stylesheet" type="text/css" href="styles.css">
22     -->
23
24   </head>
25
26   <body>
27     <h1>消息显示</h1>
28     <s:property value="name"/><br/>
29     <s:property value="age"/><br/>
30     <s:property value="mark"/><br/>
31     <s:property value="enrolltime"/><br/>
32   </body>
33 </html>
时间: 2024-10-07 02:34:21

Struts2之输入验证的相关文章

Struts2的输入验证(三)-短路验证与非字段验证

一.短路验证 若对一个字段使用多个验证器,默认情况下会执行所有的验证.若希望前面的验证器验证没有通过,后面的就不再验证,可以使用短路验证. 1)对同一个字段内的多个验证器,如果一个短路验证器验证失败,其他验证器不会继续校验 2)验证程序配置文件中<validator  …/> 元素和 <field-validator  …/> 元素可以指定一个可选的 short-circuit 属性,该属性指定该验证器是否是短验证器,默认值为 false. 1.示例:短路验证器 要求:为age字段

struts2用户输入验证

一.用户输入验证 1.手工编程验证 动作类中的所有方法进行验证: 步骤: a.动作类继承ActionSupport b.覆盖调用public void validate()方法 c.在validate方法中,编写不符合要求的代码判断,并调用父类的addFieldError(String fieldName,String errorMessage) 如果fieldError(存放错误信息的Map)有任何的元素,就是验证不通过,动作方法不会执行. Struts2框架会返回到name=input的re

Struts2的输入验证(二)-声明式验证证框架的原理

一.Struts2 声明式验证原理解析 1.Struts2 默认的拦截器栈中提供了一个 validation 拦截器,validation 拦截器负责加载和执行已注册的验证程序. 其运行时序图如下: 2.每个具体的验证规则都会对应具体的一个验证器,有一个配置文件把验证规则名称和验证器关联起来了,而实际上执行验证的就是那个验证器.  该文件位于 com.opensymphony.xwork2.validator.validators 下的 default.xml. 如下图所示: 3.配置文件与验证

Struts2的输入验证(四)-自定义验证器与编程式验证

一.自定义验证器 1.实现步骤: 1)定义一个验证器的类 自定义验证器必须实现 Validator 接口,由于ValidatorSupport 和 FieldValidatorSupport 实现了 Validator 接口,因此可以继承ValidatorSupport 或 FieldValidatorSupport Ⅰ. 若需要普通的验证程序,可以继承 ValidatorSupport 类: Ⅱ. 若需要字段验证程序,可以继承 FieldValidatorSupport 类: Ⅲ. 若验证程序

[原创]java WEB学习笔记70:Struts2 学习之路-- 输入验证,声明式验证,声明是验证原理

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

在struts2框架中实现手动处理输入验证

在struts2框架中实现手动处理输入验证,只需要在Action中对父类ActionSupport的validate方法重写即可.就是讲输入验证逻辑写在validate方法中.下面看项目中的Action类checkUser.java package action; import java.util.regex.Matcher; import java.util.regex.Pattern; import com.opensymphony.xwork2.ActionSupport; public

struts2输入验证

1.方法 ① 基于Annotations的验证 ②基于XML配置的验证 http://blog.csdn.net/furongkang/article/details/6922046 ③手动验证 a.重写validate()方法  b.重写validateXxx()方法 2.种类:对Action中所有校验 和 对指定方法校验 3.基于XML配置的验证struts2提供的校验器列表 系统提供的校验器如下: required (必填校验器,要求field的值不能为null) requiredstri

用户输入验证的集总

1 一.用户输入验证 2 1.编程方式: 3 动作类中的所有方法进行验证: 4 5 步骤: 6 a.动作类继承ActionSupport 7 b.覆盖调用public void validate()方法 8 c.在validate方法中,编写不符合要求的代码判断,并调用父类的addFieldError(String fieldName,String errorMessage) 9 如果fieldError(存放错误信息的Map)有任何的元素,就是验证不通过,动作方法不会执行. 10 Struts

JAVAWEB开发之Struts2详解(二)——Action接受请求参数、类型转换器、使用Struts2的输入校验、以及遵守约定规则实现Struts2的零配置

Action接受请求参数 作为MVC框架,必须要负责解析HTTP请求参数,并将其封装到Model对象中 Struts2提供了非常强大的类型转换机制用于请求数据 到 model对象的封装 Struts2和MVC定义关系 StrutsPrepareAndExecuteFilter:控制器 在Struts2中action是什么?(Struts2是一个MVC框架) V:jsp M:action C:action StrutsPrepareAndExecuteFilter Struts2提供了三种数据封装