我可以在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中迭代这个地图,并希望从属性文件中获取这些值,方法是将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>
现在问题是,我能够看到,如果我查找页面源, 标签和在onclick()
上调用的函数名称,但无法将文本视为标签。我错过了什么,请帮助我
感谢
答案 0 :(得分:9)
它实际上比你正在尝试的更简单。由于text标签是Struts2标签,name属性支持OGNL表达式,因此不需要使用property标签来获取名称,只需要OGNL:
<a href="#" onclick="<s:property value="key"/>" ><s:text name="%{value}"/></a>