如何在struts 2中的<s:text>中使用<s:property>标记

Tap*_*yay 5 jsp struts2

我可以在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");
Run Code Online (Sandbox Code Playgroud)

Map有Key/values为a String,实际上Map中存在的值是application.properties文件中存在的键请看下面
这是我的Application.properties文件

lbl.home.home                       = Home
lbl.home.adduser                    = Add User
lbl.home.mymodule                   = My Module 
lbl.home.chngPwd                    = Change Password 
Run Code Online (Sandbox Code Playgroud)

现在我想在我的jsp中迭代这个映射,并希望从属性文件中获取这些值,方法是将map的值作为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>
Run Code Online (Sandbox Code Playgroud)

现在的问题是,我能够看到,如果我找页面的源代码,一个标签和被称为在功能名称onclick(),但无法看到的文本标签.我错过了什么,请帮助我.
谢谢

ree*_*ees 9

它实际上比你正在尝试的更简单.由于text标签是Struts2标签,name属性支持OGNL表达式,因此不需要使用property标签来获取名称,只需要OGNL:

<a href="#" onclick="<s:property value="key"/>" ><s:text name="%{value}"/></a>
Run Code Online (Sandbox Code Playgroud)