struts2--(3)--一些小的知识---简单数据验证信息回显问题
来源:互联网 发布:wkwebview 监听js方法 编辑:程序博客网 时间:2024/06/06 20:39
----struts2标签示例说明可参考网页:http://www.roseindia.net/struts/struts2/struts-2-tags.shtml
在struts2中,action在接受到用户提交的数据时,有时需要对其进行校验,检验成功或失败需要向用户
回显相关的信息,为了能够方便在jsp页面回显相关信息,action提供了一些方法,诸如:
addFieldError addActionError, addActionMessages等,前者主要是针对一些属性校验的问题,
后者是action本身的问题,最后一个一般是action正确的处理结果。如果使用这些方法添加了一信息,则这些
信息可以在jsp页面通过标签获取到,相关标签为:
actionerror, 它用来获取addActionError方法添加的内容
actionmessage,它用来获取addActionMessage方法添加的内容
fielderror, 它用来获取addFieldError方法添加的有关属性的内容
property,它是一个一般便签,主要是用来获取相关属性值。
比如,action校验属性例子:
import com.opensymphony.xwork2.ActionSupport;public class MyAction2 extends ActionSupport {private String name;private String password;public String add() {if(name == null || !name.equals("admin")) {this.addFieldError("name", "name is error");this.addFieldError("name", "name is too long");this.addFieldError("password", "password is wrong");this.addActionError("name is wrong ,action error");return SUCCESS;}else{this.addActionMessage("name is valid");return SUCCESS;}}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}
超链接jsp页面:
<a href="action/input!add?name='zhangsan'">点击</a>
success.jsp页面
<s:fielderror /><s:fielderror fieldName="name" theme="simple"/> <br /><s:actionmessage/><br /><s:property value="errors.name[0]"/><br /><s:property value="actionErrors[0]" /><br /><s:debug></s:debug>
error.jsp页面
<s:actionerror /><br />
需要说明的是<s:fielderror />要是没有指定fieldName,它将返回所有addFieldError方法添加的信息,而
添加了FiledName的话,将返回由addFieldError添加有关此属性的所有内容,如下:
<s:fielderror />返回结果如下:
.name is error
.name is too long
.password is wrong
<s:fielderror fieldName="name" theme="simple"/>返回结果如下:
.name is error
.name is too long
<s:actionmessage />返回由addActionMessage方法添加的内容
<s:actionerror />返回由addActionError方法添加的内容
值得说明的是,上面三个表签,其返回的值都是带有css格式的内容,而不是纯字符串内容。要获取到纯字符
串内容,需要使用到标签<s:property>标签。在说明property标签前,有一个内容需要先弄明白,上面通过三种add
方法添加的内容都是加入到哪里去了?struts2其实将上面的内容都加入到了一个叫做value stack容器里,它其实
是一个栈,它一般会将action的相关属性添加进去。如:
Value Stack Contents
下图是一个对上述值栈的一个相关属性的键值对示意图:
此栈中包含action的相关的texts, actionErrors, errors, fieldErrors, errorMessages, actionMessages及action定义的相关属性
,这里为name和password. 其中actionErrors值对应的类似一个数组,errors和fielderrors类似一个map.
这些值都可以通过<s:property>标签来获取,它需要借助ognl表达式,下面是其获取的示例:
<s:property value="errors.name[0]"/>
<s:property value="actionErrors[0]" /><br />
前者用来获取errors值(map集合)中的key为name的值(数组)中的第一个值。即name is error
后者是获取actionErrors值中的第一个值。
标签<s:debug></s:debug>是用来显示上述值栈的,只需要在jsp页面上添加此标签即可。
0 0
- struts2--(3)--一些小的知识---简单数据验证信息回显问题
- 验证信息小知识
- Struts2 简单的数据验证
- struts2--(3)--一些小的知识----访问web相关元素
- struts2中一些零碎的小知识
- 简单控件的一些小知识
- struts2简单数据验证
- struts2简单数据验证
- Struts2 简单数据验证
- struts2 简单数据验证
- struts2 简单数据验证
- 关于struts2的一些小问题
- struts2--(3)--一些小知识--默认action和include标签
- struts2的一些用法(四):部分数据验证
- 【信息安全】一些数论小知识
- 关于iframe的一些小问题(一些信息)
- 简单讲解一些linux的小知识吧
- Struts2的数据验证
- 003_015 Python 检查信用卡校验和
- Windows下配置Django+mod_wsgi+Apache环境
- ASP学习笔记2
- c c++中数据在内存的存储
- ubuntu虚拟机局域网访问mysql
- struts2--(3)--一些小的知识---简单数据验证信息回显问题
- 机试中一个投机取巧的方法(先声明一下,我不负任何责任哈)
- Mybatis 示例之 foreach (下)
- shell中判断驱动是否加载
- struts2--(3)--一些小的知识----访问web相关元素
- static_cast, dynamic_cast, reinterpret_cast, const_cast的区别
- Tomcat配置远程调试
- 分享几个机试题目
- 第二类Stirling数