我想我需要使用<s: property>
inside <s:text>
,但这当然是不可能的。
情况如下:我有一个 .jsp 需要显示不同数量的操作消息。通常,您会在您的 java 类中添加这些操作消息,如下所示:
action.addActionMessage("this is a string");
action.addActionMessage("this is another string");
但是,我不喜欢在 java 类中硬编码我的消息,我想在属性文件中定义它,如下所示:
Java:
action.addActionMessage("menu.message1");
action.addActionMessage("menu.message2");
Properties:
menu.message1 = this is a string
menu.message2 = this is another string
当然,java action 类不能进入属性文件,只有一个struts标签可以。所以一个我的 .jsp 包含这个:
<s:if test="hasActionMessages()">
<s:iterator value="actionMessages">
<div class="loginErrorMessage">
<s:text name="<s:property>"/>
</div>
</s:iterator>
</s:if>
我使用这个迭代构造,所以我可以控制消息的布局。<s:property/>
应该返回 actionmessage 本身,我选择它等于属性文件中条目的键。如果这种嵌套真的有效,我们会得到:
<s:text name="<s:property/>"/>
==> <s:text name="menu.message1"/>
==> this is a string
我可以使用 OGNL 来解决这个问题吗?我尝试了一些 %{} 和 ${} 的东西,但我不知道 value/var 的名称来获取 valuestack 的消息字符串?
谢谢!