服务器端的输入校验包含两种方式:硬编码方式和配置文件方式。本文演示硬编码方式中使用validate()方法进行输入校验。

1、项目目录结构:

2、项目核心代码:

BookAction.java:

public class BookAction extends ActionSupport {
  private Book book;

  public Book getBook() {
    return book;
  }

  public void setBook(Book book) {
    this.book = book;
  }

  public String execute() {
    return SUCCESS;
  }

  public void validate() {
    if (book.getBookName().isEmpty()) {
      addFieldError("book.bookName", "书名不能为空!");
    }
    if (book.getBookPrice()<=0) {
      addFieldError("book.bookPrice", "单价不应小于等于0");
    }
    if (book.getBookPublishDate() == null||book.getBookPublishDate().after(new Date())) {
      addFieldError("book.bookPublicDate", "出版日期不能为空并且应该在今天之前!");
    }
    if (book.getBookCount() <= 0) {
      addFieldError("book.bookCount", "数量应大于0");
    }
  }
}

BookAction.java:

public class Book {

  private String bookName;
  private double bookPrice;
  private Date bookPublishDate;
  private int bookCount;

  public String getBookName() {
    return bookName;
  }
  public void setBookName(String bookName) {
    this.bookName = bookName;
  }
  public Double getBookPrice() {
    return bookPrice;
  }
  public void setBookPrice(Double bookPrice) {
    this.bookPrice = bookPrice;
  }
  public Date getBookPublishDate() {
    return bookPublishDate;
  }
  public void setBookPublishDate(Date bookPublishDate) {
    this.bookPublishDate = bookPublishDate;
  }
  public int getBookCount() {
    return bookCount;
  }
  public void setBookCount(int bookCount) {
    this.bookCount = bookCount;
  }
}

struts.xml:

<struts>
  <package name="default" namespace="/" extends="struts-default">
    <action name="addBook" class="com.example.action.BookAction">
      <result>/addBook.jsp</result>
      <result name="input">/addBook.jsp</result>
    </action>
  </package>
</struts>

addBook.jsp:

<s:actionerror />
<s:form action="addBook">
  <s:textfield name="book.bookName" label="书名" />
  <s:textfield name="book.bookPrice" label="单价" />
  <s:textfield name="book.bookPublicDate" label="出版日期" />
  <s:textfield name="book.bookCount" label="数量" />
  <s:submit value="提交" />
  <s:reset value="重置" />
</s:form>

3、使用validate()方法校验结果截图

使用validate()方法进行输入校验 --Struts2框架的更多相关文章

  1. 使用validateXxx()方法进行输入校验 --Struts2框架

    1.本例是在使用validate()方法进行输入校验 --Struts2框架的基础上接着做的,上一篇使用validate()方法进行输入校验时会对当前Action中的所有方法有效,由于Struts2框 ...

  2. 【Struts2学习笔记(11)】对action的输入校验和XML配置方式实现对action的全部方法进行输入校验

    在struts2中,我们能够实现对action的全部方法进行校验或者对action的指定方法进行校验. 对于输入校验struts2提供了两种实现方法: 1. 採用手工编写代码实现. 2. 基于XML配 ...

  3. struts2对action中的方法进行输入校验---xml配置方式(3)

    上面两篇文章已经介绍了通过编码java代码的方式实现action方法校验,这里我们介绍第二种方式:xml配置文件 首先我们来看一个样例: ValidateAction.java: package co ...

  4. 转载 - Struts2基于XML配置方式实现对action的所有方法进行输入校验

    出处:http://www.cnblogs.com/Laupaul/archive/2012/03/15/2398360.html http://www.blogjava.net/focusJ/arc ...

  5. struts2对action中的方法进行输入校验(2)

    struts2输入校验流程: 1.类型转换器对请求參数运行类型转换,并把转换后的值赋给aciton中的属性 2.假设在运行类型转换的过程中出现异常,系统会将异常信息保存到ActionContext, ...

  6. struts_19_对Action中所有方法、某一个方法进行输入校验(手工编写代码实现输入校验)

    对所有方法进行校验1.通过手工编写代码的形式实现 需求:用户名:不能为空手机号:不能为空,并且要符合手机号的格式1,3/5/8,后面是9个数字 第01步:导包 第02步:配置web.xml <? ...

  7. struts_20_对Action中所有方法、某一个方法进行输入校验(基于XML配置方式实现输入校验)

    第01步:导包 第02步:配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app ...

  8. Struts2 对Action中所有方法进行输入校验、单个方法进行校验

    index.jsp: <body> <s:fielderror /> <form action="${pageContext.request.contextPa ...

  9. Struts2框架之类型转换 --Struts2框架

    Struts2框架实现了大多数常见的用于类型转换的转换器,开发人员不用自己编写类型转换代码,就可以实现数据类型的转换.下面一个Struts2框架类型转换的简单事例, 本例可在使用validate()方 ...

随机推荐

  1. Babel总结

    什么是babel? babel是一个JavaScript编译器. Babel是一个工具链,主要用于将ECMAScript 2015+代码转换为向后兼容的旧浏览器或环境中JavaScript版本. 注解 ...

  2. 如何使用AsyncTask

    1 如何使用handler,安卓规定只能再UI线程里面刷新UI,但是不能再UI线程里面执行耗时操作.所以我们要把耗时操作放在子线程里,然后把要刷新UI的操作传递到handler里面,然后在由Handl ...

  3. 【python005-数据类型】

    数据类型 一.字符串的相加是拼接,数字的相加是求和 二.python的数值类型:整形,浮点型,e记法,布尔类型 >>> 1.2e412000.0>>> 1.2e-4 ...

  4. Qt5使用QFtp,二次封装

    1.需要的东西 ftp.cpp,ftp.h是二次封装的ftp类,放在工程下包含 QFtp和qftp.h放在D:\Qt5.7.1\5.7\msvc2013\include\QtNetwork: Qt5F ...

  5. linux内核中的crng是什么?

    答: 一致性随机数生成器(congruential random number generator)

  6. upc组队赛1 黑暗意志【stl-map】

    黑暗意志 题目描述 在数千年前潘达利亚从卡利姆多分离之时,迷雾笼罩着这块新形成的大陆,使它不被外来者发现.迷雾同样遮蔽着这片大陆古老邪恶的要塞--雷神的雷电王座.在雷神统治时期,他的要塞就是雷电之王力 ...

  7. Ubuntu: repository/PPA 源

    在Ubuntu中,每个PPA源是单独存放在/etc/apt/sources.list.d/文件夹中的,进入到该文件夹,使用ls命令查询即可列出当前系统添加的PPA源. 添加 sudo add-apt- ...

  8. 枚举+排序|神奇算式|2014年蓝桥杯A组题解析第三题-fishers

    标题:神奇算式 由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成. 比如: 210 x 6 = 1260 8 x 473 = 3784 27 x 81 = 2187 都符合要求. ...

  9. MySQL主主复制、主从复制

    意思: 主机A上有mysql1,主机B上有mysql2,mysql1新建库D,则mysql2也新建库D,mysql1原有库A.B.C,mysql2也原有库A.B.C,总之mysql1和mysql2一样 ...

  10. java 之 xml 之解析工具jaxp

    一.jaxp的api查看 *jaxp是javase一部分 *jaxp解析器在jdk的javax.xml.parsers包里面 *共四个类:分别针对dom和sax解析使用的类 *dom解析类: Docu ...