struts2系列:struts2参数传递错误struts2的输入错误验证

Posted 小不点啊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了struts2系列:struts2参数传递错误struts2的输入错误验证相关的知识,希望对你有一定的参考价值。

一、struts2参数传递错误

1. 基本数据类型的传递最好使用包装类,原因是struts 2.1之后使用基本数据类型如果参数为空会报错
2. 日期参数的传递最好定义一个区域的属性(定义locale),在struts.properties里面定义struts.locale=zh_CN,原因是日期在不同的区域中格式不一样,所以默认情况下日期会随着浏览器的不同使用不同的区域的日期格式

二、struts2的输入错误验证

1. 在前一篇文章关于struts2系列(一)的文章中搭建的struts2的开发环境中改写HelloWorldAction.java,在里面复写ActionSupport的validate()方法,然后在这个方法里面使用ActionSupport的addFieldError()方法添加错误

HelloWorldAction.java:

 1 package com.study.struts2.demo;
 2 
 3 import com.opensymphony.xwork2.ActionSupport;
 4 
 5 public class HelloWorldAction extends ActionSupport {
 6 
 7     /**
 8      * 
 9      */
10     private static final long serialVersionUID = 6522825387249101847L;
11 
12     private String msg;
13 
14     @Override
15     public void validate() {
16         if (msg == null || "".equals(msg)) {
17             super.addFieldError("msg", "信息不能为空");
18 
19         }
20     }
21 
22     @Override
23     public String execute() throws Exception {
24 
25         // 通过request取得jsp的内置对象
26         // this.msg="hellowrold123";
27         return SUCCESS;
28     }
29 
30     public String getMsg() {
31         return msg;
32     }
33 
34     public void setMsg(String msg) {
35         this.msg = msg;
36     }
37 
38 }

2. 在jindex.jsp页面通过struts2的标签<s:property value="fieldErrors[\'msg\'][0]" />获取错误显示

 1 <%@ page language="java" pageEncoding="UTF-8"%>
 2 <!--引入struts2的标签  -->
 3 <%@ taglib prefix="s" uri="/struts-tags"%>
 4 <body>
 5     <p>
 6         <a href="<s:url action=\'hello\'/>">Hello World</a>
 7     </p>
 8 
 9     <!--struts2的取值标签  value="<s:property value="msg" />"输入正确的被保留 -->
10     <form action="hello.action">
11         信息:<input type="text" name="msg" value="<s:property value="msg" />" />
12         <s:property value="fieldErrors[\'msg\'][0]" />
13         <br> <input type="submit" value="提交">
14     </form>
15 
16     <!--验证通过后显示  -->
17     <h2>
18         <s:property value="msg" />
19     </h2>
20 </body>
21 </html>

3. 验证:在浏览器输入地址http://localhost:8080/TestStruts2/

3.1 首次进入页面

3.2  什么都不输入,点击提交按钮

3.3 输入内容再点击提交按钮

 

以上是关于struts2系列:struts2参数传递错误struts2的输入错误验证的主要内容,如果未能解决你的问题,请参考以下文章

传递集合参数以及SpringMVC和Struts2的区别

struts2怎么向jsp传递参数

Struts2:getText,其中没有填充多个参数

如何在 Struts2 中提交表单的 URL 中传递参数

struts2简单入门-参数传递的三种方式

struts2如何实现弹出action返回的错误信息。