我需要通过参数动态更改加载的密钥。想象一下,你有2个属性,如
<entry key="property.to.load.somesuffix">value1</entry>
<entry key="property.to.load.anothersuffix">value2</entry>
基于页面类的模型的值加载这些可以实现,例如,使用stringresourcemodel,如
new StringResourceModel( "property.to.load.${pageParam.suffix}", this, new Model(pageModel))));
并将此资源模型添加到标签并呈现该标签中属性的加载值。但我需要像通常的html文本一样呈现属性值,因为它是通过使用wicket:message标记呈现的,例如
<wicket:message key="property.to.load.${pageParam.suffix}" />
这个,当然,不起作用。任何解决方案?也许覆盖wicket解释的内部功能:消息标签?!
修改
尽管Label中的文本呈现看起来非常好,如下所述,并且您可以设置escapemodelstring,但在wicket:message标签中进行这种参数化可能会有用,而不是添加一个每个键的标签。
从这个问题来看,这个问题可能是一个很大的问题,你不希望你的标记中有任何特定于Java代码的东西,比如密钥参数中的特定于模型的方法名称。因此,还需要对该技术进行概括。 任何想要实现的想法?
答案 0 :(得分:2)
可能你仍然可以使用你的
new StringResourceModel( "property.to.load.${pageParam.suffix}", this, new Model(pageModel))));
使用不会转义属性的HTML标记的Label
add(new Label("label", "<strong>my html property</strong>").setEscapeModelStrings(false));
答案 1 :(得分:0)
我发现了一个很好的article,它描述了如何自定义wicket标记的行为或实现自己的标记。