日期:2014-05-17  浏览次数:20766 次

struts2 ognl表达式jsp取值问题
<s:form action="/test/upLoad_test.do" method="post" enctype="multipart/form-data">
<s:hidden id="testId" name="testId" value="------------"></s:hidden>
<s:file name="upload" label="输入要上传的文件名" />
<s:submit value="上传" />
</s:form>

比如在action中已经设置 attribute testId的值为2 .

那么在 jsp中怎么通过struts2的标签获取这个值

<s:hidden id="testId" name="testId" value="表达是怎么输出???"></s:hidden>

是不是struts2的标签不能嵌套??

------解决方案--------------------
<s:hidden id="testId" name="testId" value="testId"></s:hidden>

或者
<input type=hidden id=testId value=<s:property value="testId"/>

struts2标签内部不能签其它标签。
------解决方案--------------------
sturts标签的value有些是object,有些是String的,对于String可以用百分号强制使用object的
<s:hidden id="testId" name="testId" value="%{testId}"></s:hidden>

------解决方案--------------------
“#”主要有三种用途:

1. 访问OGNL上下文和Action上下文,#相当于ActionContext.getContext();
2. 用于过滤和投影(projecting)集合,如books.{?#this.price<100}; 
3. 构造Map,如#{'foo1':'bar1', 'foo2':'bar2'}。 

“%”符号的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。“$”有两个主要的用途
1. 用于在国际化资源文件中,引用OGNL表达式,例子请参考《在Struts 2.0中国际化(i18n)您的应用程序》 
2. 在Struts 2配置文件中,引用OGNL表达式