在文本中添加动态部分

时间:2013-05-29 06:10:46

标签: java jsp properties struts2 jsp-tags

当我尝试在我的文本中添加一些动态部分以供Struts 2中的<s:text>标记使用时,这些部分将被我定义的params替换。

以下是我在file.properties中编写句子的方法:

my_error=The event {0} doesn't exist

以下是我尝试显示它的方法:

<s:text name="my_error">
    <s:param>Event01</s:param>
</s:text>

但是在结果中,表达式{0}未被替换,并且我在日志中没有错误。怎么了?

3 个答案:

答案 0 :(得分:2)

我真的无法理解。我选择了这个example,所以我在我的jsp文件中有这个:

<s:text name="msg.error">
    <s:param >Event01</s:param>
</s:text>
<br />
<s:text name="name.msg.param" >
    <s:param >mkyong</s:param>
</s:text>

这在我的.properties中:

msg.error = This event doesn't exist: {0}
name.msg.param = This is a message from properties file - param : {0}

但结果是:

This event does not exist: {0}
This is a message from properties file - param : mkyong

我无法找到真正的区别。

答案 1 :(得分:1)

  

消息必须位于与其名称相同的资源包中   与之相关的行动。

     

如果在属性文件中找不到指定的消息,那么正文   标签将用作默认消息。

使用localization guide中的搜索顺序,为您使用的语言环境创建或放置更好描述的地方的资源包。

答案 2 :(得分:0)

我猜{0}是指应该作为参数传递给getText方法的列表的第一个索引。

现在当你使用s:text并传递param时,它应该是一个列表类型变量,包含第一个索引中值为“Event01”的元素。

尝试实现相同的功能。它可能有效:)