braint8  
日历
<2025年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789
统计
  • 随笔 - 0
  • 文章 - 15
  • 评论 - 16
  • 引用 - 0

导航

留言簿(2)

文章分类(15)

文章档案(15)

搜索

  •  

积分与排名

  • 积分 - 17455
  • 排名 - 1882

最新评论

 

8 Struts2 获取 request,session,application 与前台交互

Map request = (Map)ActionContext.getContext().get( "request" );

Map session = (Map)ActionContext.getContext().getSession();

Map application = (Map)ActionContext.getContext().getApplication();

②使用 IOC 依赖注入

基本只用到 session

首先: Action implements SessionAware

成员变量: private Map<String, Object> session ;

实现接口方法:   

public void setSession(Map<String, Object> session) {

       // TODO Auto-generated method stub

       this . session = session;

    }

把获取的 session 交给 struts2 来创建

 

9 .分模块配置文件

Struts.xml 文件中使用 <include file=”a.xml”/>

xml 文件中配置各自模块的 action 信息,多人开发, include 多个,避免版本冲突!

 

10 OGNL 表达式

①可针对对象来在 jsp 页面上调用对象的方法,比 el 表达式高级 (el 只能调对象的属性值如: user.username),ognl 可以使用 user.toString()

②可访问当前 action 里的普通方法 , 如: UserAction 里方法 test();jsp 页面访问

<s:property value=”test()” />

③可访问其他类的静态属性和方法:

访问静态属性:

< s:property value = "@com.braint.struts2.util.TestUtil@STR" />< br >

访问静态方法:

< s:property value = "@com.braint.struts2.util.TestUtil@test()" />< br >

静态方法的访问, struts.xml 配置里需设置

< constant name = "struts.ognl.allowStaticMethodAccess" value = "true" />

④可创建类的实例:

< s:property value = "@new com.braint.struts2.util.TestUtil()" />< br >

⑤访问集合:

结合访问对象与访问对象里的方法一样,可以通过访问 list,set map 和获取集合里的值;

如:

<s:property value=”userList[0].name” />

效果同上 <s:property value=”userList.{name}[0]” />

单独 userList.{name} 效果是获取 userList 里的所有 name 属性的一个集合

<s:property value=”userList.size()” />

⑥更强大的过滤集合:

<s:property value=”userList.{?#this.name==’admin’}.name” />

userList.{?#this.name==’admin’} 表示遍历 userList ,返回 name 值为 admin 的对象

userList.{^#this.name==’admin’} 过滤后返回的对象里的第一个 ,^ 表示开头

userList.{$#this.name==’admin’} 过滤后返回的对象里的最后一个 ,$ 表示结尾

<s:property value=”userList[0].name == null” /> 空返回 flase; 非空 true

11 Struts2 标签

http://struts.apache.org/2.1.8/docs/tag-reference.html 在线标签文档

if,else if,else

iterator

list:

    < s:iterator value = "{1, 2, 3}" var = "test" >

       < s:property value = "#test" /> |

    </ s:iterator >

    < s:iterator value = "userList" var = "user" >

       < s:property value = "#user.name" /> |

    </ s:iterator >

注意点: value 里取的 userList 必需在 action 里有成员变量且有 set,get 方法

Map: list 类似

< s:iterator value = "#{1:’a’, 2:’b’, 3:’c’}" var = "test" >

       < s:property value = "#test.key" /> #test.value

    </ s:iterator >

注意点: map 声明必须在 {} 前加 # ,与 list 的区别

posted on 2009-11-15 20:09 情晚风 阅读(170) 评论(0)  编辑  收藏 所属分类: 初学Struts2

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


网站导航:
 
 
Copyright © 情晚风 Powered by: 博客园 模板提供:沪江博客