struts2.x的ActionContext,ValueStack和常用标签介绍

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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值