标签取值方式一
通过<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