java

位置:IT落伍者 >> java >> 浏览文章

struts2标签取值方式


发布日期:2019年04月06日
 
struts2标签取值方式
标签取值方式一

通过<s:property value= />取值

当Action的valueStack中有该属性的值时只需直接使用该属性的名字即可

当Action的valueStack中没有该属性的值时比如在sessionapplication范围中的属性值时需要加#或者#attr;

例子

假设某Action中有person成员变量在application中存在company属性

那么我们可以通过以下方法取值

<s:property value=personname />

<s:property value=#personname />

<s:property value=companyname /> //无法取到因为company不在action的valueStack中

<s:property value=#companyname />

标签取值方式二

在任意的<s:/>标签内使用%{}来取值

当Action的valueStack中有该属性的值时只需直接使用该属性的名字即可

当Action的valueStack中没有该属性的值时比如在sessionapplication范围中的属性值时需要加#或者#attr;

例子

假设某Action中有person成员变量在application中存在company属性

<s:textfield name=personname value=personname /> //错误value会直接显示personname字样

<s:textfield name=personname value=%{personname} />

<s:textfield name=panyname value=%{#companyname} />

<s:textfield name=panyname value=%{#panyname} />

获取JSP页面的requestsessionapplication中的属性

在页面中可以这样获取

<td>${aunter}</td>

<td>${unter}</td>

<td>${unter}</td>

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

struts中的Action代码中的内容为

ActionContext ctx = ActionContextgetContext()

ctxgetApplicationput(counternew Integer())

ctxgetSessionput(counternew Integer())

ctxput(counternew Integer())

ctxput就是直接设置request的值

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

HttpServletRequest r = ServletActionContextgetRequest()

HttpServletResponse resp = ServletActionContextgetResponse()

struts还提供了以下接口

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

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

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

上一篇:ant的一些偏门技巧

下一篇:在eclipse中如何用JDK的帮助文档