为什么无法在请求中访问属性?

时间:2013-04-02 03:29:16

标签: struts2

我想访问请求中的某些属性,例如请求中的base属性, 以下是请求中值的一部分

 request    ...base=/ecs, stack=com.opensymphony.xwork2.ognl.OgnlValueStack@11c4b31}, __cleanup_recursion_counter=1, .freemarker.RequestParameters=freemarker.ext.servlet.HttpRequestParametersHashModel@1c00cb4 ...

我使用<s:debug /><s:property value="%{#request.base}" /> 访问base中的request属性,但我的jsp中没有显示任何内容。那为什么呢?

2 个答案:

答案 0 :(得分:3)

不确定为什么需要此功能,但只有base内的request位于.freemarker.TemplateModel ScopesHashModel内。所以你需要使用方法get从那里获取东西。

<s:property value="#request['.freemarker.TemplateModel'].get('base')" />

试试这个:

<s:property value="#request['javax.servlet.include.context_path']"/>

<强>更新

如果您只需要上下文路径,请使用<s:url>标记。

<s:url value="/"/>

答案 1 :(得分:-1)

如果您想访问以下请求参数

<s:property value="#parameters['base']"/>

如果您想访问请求的属性,那么以下应该可以正常工作

<s:property value="#request.base"/>

<s:property value="#request['base']" />