strust知识之四
来源:互联网 发布:中国航天软件评测中心 编辑:程序博客网 时间:2024/06/10 15:16
ValueStack对象
概述:
Action类通过属性可以获得所有相关的值,如请求参数属性值等。要获得这些参数值,我们要做的唯一一件事就是在Action类中声明与参数同名的属性,在Struts2调用Action类的Action方法(默认是execute方法)之前,就会为相应的Action属性赋值。要完成这个功能,有很大程度上,Struts2要依赖于ValueStack对象。这个对象贯穿整个Action的生命周期,每个Action类的对象实例会拥有一个ValueStack对象。
也就是说:
value对象是进行参数传递的工具
并且伴随action整个生命周期
包括两部分:
1、放在根元素中
这里的特点有:
1》通过在action的值对象中找到它
2》可以放普通数据
3》访问可以不带#
下面上代码:
ValueStack valueStack = ActionContext.getContext().getValueStack(); CompoundRoot root = valueStack.getRoot();User user=new User();root.push(user);2.放在非根元素 Actionntext.getContext().getContextMap().put("request","request域对象的数据"); ActionContext.getContext().getSession().put("session","我是Session域对象的数据"); ActionContext.getContext().getApplication().put("application","Application域对象的数据");
返回的jsp页面
<!--struts常用的标签--><s:form name="sName" id="sNamId" theme="simple" action="/login"><s:textfield id="userName" value="" label="用户名"></s:textfield> <s:textfield id="userPwd" value="" label="密码" ></s:textfield> <!--提交的标签--> <s:submit value="提交"></s:submit> </s:form> <!--收集错误信息的标签--> <s:fielderror></s:fielderror> <!--收集指定的错误信息--> <s:fielderror name="user.userName"></s:fielderror> <!--页面的调试--> <s:debug></s:debug> <!--struts取值的标签--> 下面是根元素的数据的取值方式: <s:property value="userName"/> 非根元素的取值方式 访问request域可以不带request.session,application是存在{}对象中的,request是直接存的值 <s:property value="#name"/> <s:property value="#session.name"/> <s:property value="#application.nam"/>
struts2的数据校验方式
1、前端通过js校验
2、服务端进行校验
实际上这是控制器的功能
代码的方式
方式一、校验所有的方法
创建一个action继承actionSupport
重写validate方法
校验逻辑写在里面
方式二、校验置顶方法
如要校验register这个方法
只需添加一个validate+register的方法
public void validateRegister() { 校验逻辑... super.validate();
服务端校验之二、
在xml文件中校验
全局验证
适合于要校验的东西较多的情况
在/com/opensymphony/xwork2/validator/validators/default.xml这个目录下找到服务器为我们提供校验文件
1、这个文件必须位于要校验的action同目录,文件名必须是action名-validation.xml
2、需要服务器的配置头
3、要验证字段的书写方式
区分为type=”requiredstring”配置不同
<field name="user.userName"><field-validator type="requiredstring"><message>用户名为空</message>
局部验证
文件名改为
Action类名-Action对象-validation.xml
模型驱动
功能如下:
数据回显
防止表单重复提交
1、实例化这个对象(实体)
2、继承ModelDriven<实体类名>
数据回显功能实现:
ValueStack valueStack = ActionContext.getContext().getValueStack();
valueStack.push(实体对象);
这样数据就回显到jsp表单页面了,防止表单表单重复提交的方式还有更改数据提交方式转发为重定向
- strust知识之四
- C/C++小知识总结之四
- Tornado框架知识系列之四
- Flask框架知识系列之四
- [jQuery知识]jQuery之知识四-DOM和CSS操作
- [jQuery知识]jQuery之知识四-DOM和CSS操作
- strust 日记
- strust namespace
- strust入门
- strust小结
- strust数据处理
- Strust小结
- Vlan知识之四:VLAN的汇聚链接
- BMP格式知识之四:BMP文件详解
- Java知识总结---MVC模式解析之MyBatis(四)
- Java知识整理(四)之SE.正则表达式
- PHP购物网站开发之四:零碎知识
- 知识管理软件之四 图文编辑--任性动图
- SpringBoot打包成WAR使用外置TOMCAT启动
- LLVM每日谈之二十四 Google的ClangMR
- Rabbitmq命令行
- 软键盘把导航栏给托起来的解决办法
- 关于建图
- strust知识之四
- Python拓展包:Numpy,pandas...常用函数
- 这6个问题,可以帮你省80%的无用功
- 数据结构:栈的顺序存储(二)
- xcode 回车enter 之后会自动缩进Tab
- Linux添加自定义命令
- IMWeb训练营-VUE-ToDoApp
- 1. ThreadPoolExecutor的一个常用的构造方法
- 关于mybatis的jdbcType和javaType的使用场景问题