Struts2校验的两种实现方式(使用内置校验和手动编写)

新建名为validationApp的web project,该应用允许用户输入一本图书的相关信息,要求对表单中的每个文件输入框进行输入校验。

(1)创建input.jsp页面,该页面用于输入图书的以下信息:

字段名

字段类型

校验规则

书名

String

必须输入;长度在4-80之间

作者

String

必须输入;长度在4-40之间

书号(13位ISBN)

String

必须输入;长度必须是13位;根据参考资料中的ISBN校验码的计算方法对书号的有效性进行校验。

出版社

String

文本中必须包含“出版社”一词

出版日期

Date

日期范围为1900年1月1日到当前日期

价格

Double

最小值为0.0

库存数量

Integer

最小值为0

input.jsp代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>




   
   
图书录入页面



	
   
   
		
    
    
书名
作者
书号
出版社
出版日期
价格
库存数量

 (2)创建show.jsp页面,该页面用于显示用户输入的图书的所有信息。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




    
    
图书详情页面



    
    
书名 : ${request.B_book}
作者 : ${request.B_author}
书号 : ${request.B_number}
出版社 : ${request.B_public}
出版日期 : ${request.B_pub_date}
价格 : ${request.B_price}
库存数量 : ${request.B_inventory}

(3)创建名为Book的Action类对日期和出版社进行手动校验,用以对请求参数进行处理。

package org.action.cheakout;

import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class Book extends ActionSupport {
	/**
	 * hh.todd@qq.com
	 */
	private static final long serialVersionUID = 1L;
	private String B_book;
	private String B_author;
	private String B_number;
	private String B_public;
	private Date B_pub_date;
	private Double B_price;
	private Integer B_inventory;

	public String getB_book() {
		return B_book;
	}

	public void setB_book(String b_book) {
		B_book = b_book;
	}

	public String getB_author() {
		return B_author;
	}

	public void setB_author(String b_author) {
		B_author = b_author;
	}

	public String getB_number() {
		return B_number;
	}

	public void setB_number(String b_number) {
		B_number = b_number;
	}

	public String getB_public() {
		return B_public;
	}

	public void setB_public(String b_public) {
		B_public = b_public;
	}

	public Date getB_pub_date() {
		return B_pub_date;
	}

	public void setB_pub_date(Date b_pub_date) {
		B_pub_date = b_pub_date;
	}

	public Double getB_price() {
		return B_price;
	}

	public void setB_price(Double b_price) {
		B_price = b_price;
	}

	public Integer getB_inventory() {
		return B_inventory;
	}

	public void setB_inventory(Integer b_inventory) {
		B_inventory = b_inventory;
	}

	public String execute() throws Exception {
		ActionContext ac = ActionContext.getContext();
		HttpServletRequest request = (HttpServletRequest) ac
				.get(ServletActionContext.HTTP_REQUEST);
		String date=new SimpleDateFormat("YYYY-mm-dd").format(B_pub_date);
		request.setAttribute("B_pub_date", date);
		return SUCCESS;
	}

	public void validate() {
		if (getB_public() == null || "".equals(getB_public().trim())) {
		} else {
			String B_public1 = getB_public();
			String str = "出版社";

			if (B_public1 != null && !B_public1.contains(str)) {
				this.addFieldError("B_public", "文本中必须包含“出版社”一词!");
			}
		}

		if (getB_number() == null || "".equals(getB_number().trim())) {
			this.addFieldError("B_number", "书号不能为空!");
		} else if (!ISBN.checkISBN(getB_number())) {
			this.addFieldError("B_number", "请正确填写13位书号!");
		}
	}
}

(4)创建名为ISBN的Action类对书号进行手动校验。

(5)要求使用Struts2的内建校验器校验“书名”、“作者”、“出版日期”、“价格”和“库存数量”字段;


    
    


    
    
	
     
     
		
      
      
			
       
       
			
       
       true
			
       
       
        
        请填写书名
       
       
		
      
      
		
      
      
			
       
       4
			
       
       80
			
       
       
        
        长度在4-80之间
       
       
		
      
      
	
     
     
	
     
     
		
      
      
			
       
       
			
       
       true
			
       
       
        
        请填写本书作者
       
       
		
      
      
		
      
      
			
       
       4
			
       
       40
			
       
       
        
        长度在4-40之间
       
       
		
      
      
	
     
     
	
     
     
		
      
      
			
       
       1900-01-01
			
       
       2014-05-30
			
       
       
        
        日期范围为1900-01-01到2014-05-30
       
       
		
      
      
	
     
     
	
     
     
		
      
      
			
       
       0.0
			
       
       
        
        最小值为0.0
       
       
		
      
      
	
     
     
	
     
     
		
      
      
			
       
       0
			
       
       
        
        最小值为0
       
       
		
      
      
	
     
      

    
    

(6)Struts配置


    
    


    
    
  
     
     
  	
      
      
  		
       
       
        
        /show.jsp
       
          
        
       
       
        
        /input.jsp
       
        
  	
      
      
  
     
     

    
    

源码下载地址:http://download.csdn.net/detail/u012612399/7556159点击打开链接

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值