Chinaunix首页 | 论坛 | 博客
  • 博客访问: 969972
  • 博文数量: 168
  • 博客积分: 3853
  • 博客等级: 中校
  • 技术积分: 1854
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-15 23:50
文章分类

全部博文(168)

文章存档

2014年(12)

2013年(46)

2012年(60)

2011年(11)

2010年(1)

2009年(17)

2008年(21)

我的朋友

分类: Java

2012-06-18 22:37:10

1.标签取值方式一

    通过取值

    当Action的valueStack中有该属性的值时,只需直接使用该属性的名字即可;
    当Action的valueStack中没有该属性的值时,比如在session,application范围中的属性值时,需要加#或者#attr.;
    例子:
    假设某Action中有person成员变量,在application中存在company属性
    那么我们可以通过以下方法取值:
   
   
    //无法取到,因为company不在action的valueStack中
   

2.标签取值方式二

在任意的标签内使用%{}来取值

当Action的valueStack中有该属性的值时,只需直接使用该属性的名字即可;
当Action的valueStack中没有该属性的值时,比如在session,application范围中的属性值时,需要加#或者#attr.;
例子:
假设某Action中有person成员变量,在application中存在company属性
name="person.name" value="person.name" /> //错误,value会直接显示person.name字样
name="person.name" value="%{person.name}" />
name="person.company.name" value="%{#company.name}" />
name="person.company.name" value="%{#attr.company.name}" />

3.获取JSP页面的request,session,application中的属性

   在页面中可以这样获取:

${applicateionScope.counter}

${sessionScope.counter}

${requestScope.counter}

或者直接这样用:${属性} ${userBean.username}。userBean可以是request或session中的对象。

struts2中的Action代码中的内容为:

ActionContext ctx = ActionContext.getContext();

ctx.getApplication.put("counter",new Integer(5));

ctx.getSession.put("counter",new Integer(5));

ctx.put("counter",new Integer(5));

ctx.put就是直接设置request的值。

也可以使用以下方式获得request:

HttpServletRequest r = ServletActionContext.getRequest();

HttpServletResponse resp = ServletActionContext.getResponse();

struts2还提供了以下接口:

ServletContextAware:Action实现该接口,可以直接访问ServletContext。

ServletRequestAware:Action实现该接口,可以直接访问HttpServletRequest。

ServletResponseAware:Action实现该接口,可以直接访问HttpServletResponse。

阅读(1160) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~