posts - 247,  comments - 25,  trackbacks - 0
 

.Action中有一个static 方法,可以直接在页面中调用,通过@包名。类名@方法名

       获取public static final 属性名一样

       <s:property value=”@com.test.ognl.LoginAction@get()”/>

.Action中所有属性都会放在ValueStack中,可以不用任何符号直接访问

       <s:property value=”Action中属性名”/>

.如果属性为一个bean对象,可以在页面中直接访问bean的属性和方法

4.ValueStack:每一个Action(包含属性和方法)实例对象中都会拥有一个ValueStack对象;与Action的生命周期相同,在内存中的位置与parameters,reqeust,session.application 一样,只是ValueStack不用使#获取对象.一次请求(如Action(chain)共享一个值栈,ation都在valueStack中,也可直接往ValueStack中放一个对象

ActionContext.getContext().getValueStack().put(Obj)

.获取数组和List(为Action中一个属性)中某一个值:

<s:property value=”list[0]”/>

6.获取Set(Action中一个属性):

Set testSet = new HashSet();//Set中元素是没有顺序的,所以不能用下标取

<s:property value=”testSet”/>

7.获取MapAction中的一个属性):

Map map = new HashMap();

获取所有:<s:property value=”map”/>

获取某一个值:<s:property value=”map[‘m1’]”/>

8.集合类中都有一些伪属性:

如:Map,List,Set 中有的size, isEmpty

      List 中独有的 iterator 能够返回一个迭代器

     ap 中获取所有的键,所有的值: keys ,values

     Iteratornext ,hasNext

     Enumeration

9.JDK中类默认已经重写了toString()方法,而我们自定义的类中如果不重写这个方法,只能调用Object中的toString()方法,打印出getClass().getName() + '@' + Integer.toHexString(hashCode()),如下:com.test.vo.Student@00fcb
如果不想这么显示,则需要在Student类中得写toString()方法:
Public String toString(){ return “aaa”;}
10.我们利用toString()方法可以打印出所有对象,但有时候我们不想获取所有属性,只获取List中对象的部分属性,可以利用投影技术实现:
如下 获取userName属性值(即:从大集合中得到一个小集合):
<s:property value=”student.{userName}”/>

如果再想取出投影中某一个值:则<s:property value=”student.{student}[0]”/>

11.利用选择技术获取List中满足某些条件的对象 #

<s:property value=”student.{?#this.grade>=60}”/>

<s:property value=”student.{^#this.grade>=60}.{userName}”/>

<s:property value=”student.{#this.grade>=60}.{userName}[0]”/>

? 取出所有对象 返回字符串

^ 取出第一个对象,返回一个联表,可以取size

 $ 取出最后一个对象,

12. #的作用:

       内存中五大对象 parameters,request ,session,application ,attr中获取对象,要用#

        Parameters: <s:property value=” #parameters.userName”/>

        如果要使用URL传值,则<result type=”redirect”>/test.jsp</result>

13. %的作用:

%可以取出存放在ValueStack中的Action对象,并直接调用他的方法

如果我们的Action继承ActionSupport类,则可以%{getText(‘key’)}用这种方式取出国际化信息

14. $的作用:${}

       $可以在国际化资源文件中引用OGNL表达式

       $也可以在struts.xml配置文件中引用表达式

15.struts2中从一个Action1跳到另一个Action2(使用chain,则跳转后先从Action2的ValueStack中查找值,再从Action1 ValueStack中查找值

服务器端跳转:

       <action name=”testv1” class=”com.test.TestV1”>

              <result type=”chain”>

                     <param name=”actionName”>testv2</param>

              </result>

       </action>

客户端跳转:

       <action name=”testv2” class=”com.test.TestV2”>

              <result type=”redirectAction”>

                     <param name=”actionName”>testv2</param>

              </result>

       </action>

posted on 2009-07-14 16:38 林的 阅读(625) 评论(0)  编辑  收藏 所属分类: struts2

只有注册用户登录后才能发表评论。


网站导航:
 
<2009年7月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

想回家了,呵呵!

常用链接

留言簿(6)

随笔分类

随笔档案

文章分类

文章档案

相册

收藏夹

搜索

  •  

最新评论

阅读排行榜

评论排行榜