5

我可以在 Struts 2 的s:text标记中使用s:property标记吗?问题是,我的 Action 类中有一个Map

Map menuMap = new HashMap<String, String>();
menuMap.put("home()", "lbl.home.home");
menuMap.put("mymodule()", "lbl.home.mymodule");
menuMap.put("adduser()", "lbl.home.adduser");
menuMap.put("changepassword()", "lbl.home.chngPwd");

地图具有键/值作为String,实际上地图中存在的值是application.properties文件中存在的键,请参见下面
这是我的 Application.properties 文件

lbl.home.home                       = Home
lbl.home.adduser                    = Add User
lbl.home.mymodule                   = My Module 
lbl.home.chngPwd                    = Change Password 

现在我想在我的 jsp 中迭代这个映射,并希望从属性文件中获取这些值,方法是将映射的值作为 key 在 application.properties 文件中传递,并将它们显示为标签
,我能够获取密钥但不能能够显示属性文件中的值
这是我的 Jsp 代码:

<s:iterator value="menuMap">
 <tr>
   <td>
    <a href="#" onclick="<s:property value="key"/>" ><s:text name="<s:property value='value'/>"/></a>
   </td>
</tr>
</s:iterator>

现在的问题是我能够看到,如果我寻找页面源、标签和被调用但无法将文本视为标签的函数名称。onclick()我错过了什么吗,请帮助我。
谢谢

4

1 回答 1

9

它实际上比您尝试的要简单。由于text标签是Struts2标签,name属性支持OGNL表达式,所以不需要使用property标签来获取name,直接OGNL即可:

<a href="#" onclick="<s:property value="key"/>" ><s:text name="%{value}"/></a>
于 2012-07-11T03:04:29.180 回答