传智播客--struts2.x的ActionContext,ValueStack和常用标签介绍
来源:互联网 发布:windows一键还原 编辑:程序博客网 时间:2024/06/07 14:00
struts2学习一天了.张老师讲的太细太深了.呵呵,课也在网上直播了.听的真的好过瘾啊.果然是名不虚传啊.讲的那么深,对刚刚接触struts2接受起来还真得下点功夫啊.
1.ActionContext
封装Action所需的环境信息和数据
ActionContext提供了各种针对ValueStack关联的Context的便利操作方法:
put()方法和get()方法就是往该Context Map对象中添加数据和取数据。
getApplication() 得到application域中的所有attribute的map对象;
getSession()得到代表session域中的所有 attribute的map对象;
getParameters()得到代表所有请求参数的map对象;
getLocale()得到当前用户的Locale信息,是综合了session中保存的Locale与浏览器请求消息中的Locale的结果。
2.ValueStack
提供的方法管理内部的堆栈和关联的Context
setValue为ognl表达式寻址到的对象设置属性值。
findValue方法使用OGNL表达式获取结果。
findString方法对findValue方法获取的结果调用转换器转成字符串,如果该对象的类型没有相关转换器,则调用toString方法,并返回结果字符串。一个特殊之处:如果不用#前缀访问ValueStack Context中的对象,则该对象必须是String类型。
3.struts2.X中的一些常用标签
<s:property> 标签用于输出某个OGNL表达式的值,可以认为其内部使用的是ValueStack对象的findString方法。如果没有设置value属性,则输出 ValueStack栈顶的对象。
特例:如果采用不加#前缀的方式输出Context中的某个对象,这个对象必须是string类型。
<s:push> 标签用于将OGNL表达式的值压入栈顶。
<s:bean>标签用于实例化一个JavaBean对象,并将其压入栈顶。如果设置了 var属性,还会将实例化的对象存储进ValueStack关联的Context中。
<s:set>标签用于将某个值存入指定范围域中,通常用于将一个复杂的ognl表达式用一个简单的变量来进行引用。
scope属性:指定变量被放置的范围,该属性可以接受 application、session、request、 page或action。该属性的默认值为action,文档说即表示同时存储进request作用域和OGNL Context中,但实验结果是只存储进了OGNL Context中。
value属性:赋给变量的ognl表达式结果.如果没有设置该属性, 则将ValueStack栈顶的值赋给变量。
<s:if/elseif/else>等标签用于判断test属性中指定的ognl表达式的结果是否为true,为真则执行标签体重的内容。
<s:iterator>标签用于迭代一个OGNL集合,并逐一将迭代出来的元素压入栈顶和弹栈。
status属性:创建代表当前迭代状态的IteratorStatus对象,并指定将其存储进ValueStack Context中时的key。
4.<s:url>和<s:a>标签的四个好处
使用<s:url action=“” namespace=“”method=“”/>
不用关心web应用程序的路径和 Action映射的扩展名。
<s:url>中没有指定namespace属性时,将根据浏览器当前所访问的url地址来推测包名,并与action属性指定的内容一起生成最终的url地址。
可以自动附加jsessionid参数进行url重写。
可以对参数信息进行url编码。
备注:jstl中的<c:url>标准标签也有<s:url>标签的后两个作用。
直接使用<s:url />标签可以获得当前地址,只有使用includeParams属性会带上原来的请求参数。大型网站的链接地址总是要带上userid之类的信息。
5.国际化
配置全局的缺省国际化资源文件
在JSP页面中用<s:text name=“”>、<s:property value=“%{}”>
如果在资源包中没有找到某个key对应信息内容,将直接输出该key。
增加java包范围下的资源包,对于有多级包名的情况,package.properties文件放在哪一级包名下都是可以的。
在Action类的源代码中用ActionSupport类的getText方法获取国际化资源消息
用<s:i18n> 标签来明确指明从哪个资源包中获取信息。
在<s:text>标签和getText()方法中如何为占位符填充参数。
<s:param name=“名称不重要” value=“ognl expression”/>
<s:param>normal text</s:param>
- 传智播客--struts2.x的ActionContext,ValueStack和常用标签介绍
- struts2.x的ActionContext,ValueStack和常用标签介绍
- 传智播客--struts2.x的常量配置,动态方法调用,通配符,拦截器,ValueStack和标签
- 深入了解 struts2 的valueStack ActionContext
- struts2中的ActionContext 与 valueStack的区别
- Struts2 StackContext ValueStack ActionContext
- struts2.x的常量配置,动态方法调用,通配符,拦截器,ValueStack和标签
- ValueStack、OGNL和Struts2标签
- Struts2 ValueStack & ActionContext & OGNL 关系
- Struts2的valueStack与actionContext(contextMap)的取值
- Struts标签-OGNL-EL-ValueStack-ActionContext之间的区别
- struts2中几个核心的组件ActionContext、ValueStack、OGNL表达式
- 关于Struts2中的ValueStack,ActionContext,OgnlContext的理解之一:OGNL
- Struts2学习笔记04----ActionContext、ServletActionContext、ValueStack之间的关系
- 在Struts2中valuestack,stackContext,ActionContext.之间的关系
- struts2中几个核心的组件ActionContext、ValueStack、OGNL表达式
- 在Struts2中valuestack,stackContext,ActionContext.之间的关系
- Struts2的ValueStack(值栈)介绍
- java.awt.Choice类
- 【转】经典广告词
- Linux内核修炼之道 之 前言
- 破解linux中root密码(转)
- dysrc
- 传智播客--struts2.x的ActionContext,ValueStack和常用标签介绍
- qt之控件事件接收
- Symbian 程序UID信息
- c++ ABI
- Symbian 读取手机型号
- 让X264支持mp4文件格式
- Hibernate+Spring+Struts2整合开发中的一个分页显示方案
- java.awt.List类
- 修改chrome的安装目录(默认的竟然安装在documents and settings目录,google真不厚道)