服务器端的输入校验包含两种方式:硬编码方式和配置文件方式。本文演示硬编码方式中使用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()方法校验结果截图

最新文章

  1. 工作中遇到的一个多线程下导致RCW无法释放的问题
  2. Css样式表【边界边框】【列表方块】
  3. RDIFramework.NET框架Web中datagrid与treegrid控件自动生成右键菜单与列标题右键菜单
  4. 从零开始编写自己的C#框架 ---- 系列文章
  5. 原生JS实现瀑布流
  6. PIC18F中断定时器
  7. JavaScript DOM-Ready 机制
  8. 在CentOS/RHEL 6.5上安装Chromium 谷歌浏览器
  9. php示例代码
  10. HTML5学习的价值是什么?
  11. hibernate的事务管理和session对象的详解
  12. A Simple Problem with Integers~POJ - 3468
  13. linux_FTP连接失败
  14. Python数据处理PDF
  15. 『TensorFlow』专题汇总
  16. Pycharm用鼠标滚轮控制字体大小
  17. 通过一个小Trick实现shader的像素识别/统计操作
  18. n个月后兔子的个数问题(for循环)
  19. Python基础1--Python的安装
  20. 滚动条事件,当页面滚动到距顶部一定高度时某DIV自动隐藏和显示

热门文章

  1. Lucas定理学习笔记
  2. QSetting
  3. 第三章 Web页面建设
  4. 总结: 在fc23中, 安装音频mp3 视频flv 的播放插件其实很简单, 只要一步就可以了: dnf install gstreamer1-libav
  5. luogu P3605 [USACO17JAN]Promotion Counting晋升者计数
  6. 深度学习课程笔记(十四)深度强化学习 --- Proximal Policy Optimization (PPO)
  7. propsData 选项 全局扩展的数据传递
  8. 测试常用的sql语句总结
  9. s*s*r备用
  10. CentOS7 下curl使用