Struts2学习笔记(二)
来源:互联网 发布:java crm源码下载 编辑:程序博客网 时间:2024/05/22 00:54
简单数据校验
首先我们在struts.xml中进行如下配置:
<action name="hello" class="com.bjsxt.struts2.user.action.MyAction"><result name="error">/error.jsp</result><result name="success">/success.jsp</result></action>
然后MyAction中的代码如下:
public class MyAction extends ActionSupport {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public String execute(){System.out.println(name);if(name == null||!name.equals("admin")){this.addFieldError(name, "name is error!");return ERROR;}return SUCCESS;}}
我们注意到在MyAction中的execute方法中添加了一个if语句来判断name是否等于admin,当不等于时出现name is error!字样,这就是一个简单的数据校验,其中addFieldError 记录map格式的内容 key=name value=name is error ! 后台用addFieldError记录,前台用<s:property value="fieldErrors">显示 因为fieldErrors与actionErrors 里的key会有重名现象,所以用<s:property value="errors">显示记录的所有内容,用error.name[ ]显示想要的内容。
具体代码如下:
<body> <s:fielderror fieldName="name" theme="simple"/> <s:property value="errors.a[0]"/> <s:debug/> </body>
其中theme将在后面讲到,要注意的是这里用到了struts的标签,所以要加上下面这样一句话:
<%@taglib uri="/struts-tags" prefix="s" %>
uri指定标签库的位置,prefix表示前缀,其中标签库位于struts的jar包下面的META-INF文件夹下,名字是struts-tags.tld
debug标签主要用来调试的,加上之后在页面中会显示如下一张图表:
它包括两部分,一个是Value Stack Contents和Stack Context,它们都是栈,首先在值栈中会把MyAction的属性都加进去,其中errors包括的fieldErrors和actionErrors,它是一个Map,图中它的key对应是a,value对应是name is error!,这也就解释了value="errors.a[0]",其中errors.a取到了对应name为a的value,其中value又是一个“数组”,所以要取数组的第一项就要加上[0],像这种表达式就是ognl表达式,这在后面会详细讲解。
- Struts2学习笔记(二)
- struts2学习笔记(二)
- Struts2学习笔记(二)
- Struts2学习笔记(二)
- struts2学习笔记(二)
- Struts2学习笔记(二)
- Struts2学习笔记(二)
- struts2学习笔记(二) 初识Struts2
- struts2学习笔记(二) 初识Struts2
- Struts2学习笔记二
- Struts2学习笔记(二)
- Struts2学习笔记(二)
- Struts2学习笔记二(数据验证)
- Struts2 基础学习笔记(二)
- struts2标签学习笔记二
- 传智播客struts2学习笔记(二)
- Struts2系统学习笔记二
- Struts2学习笔记二 国际化
- RTSP协议学习
- sql server 2008附加的数据库是只读的,如何修改
- C程序设计语言练习3-4
- 解决PowerDesigner 生成Sql2005-2012 找不到sysproperties表的问题
- 四极管:京东物流“后牌照”战略:8月底开放 或分拆
- Struts2学习笔记(二)
- 教你如何提高网速(3种)
- vc调用com组件,一般继承cwnd,可以这样获取组件中的接口,
- 怎样合并repeater中相同的行
- Quartz2D绘图
- 线程特有数据==线程内静态变量
- PowerManager.WakeLock电源管理
- 依赖注入框架Autofac的简单使用
- 关于too many connections问题产生原因的理解