калитка: ключи resourceproperty параметризации загружается с калиткой:сообщение


Мне нужно динамически изменять загруженные ключи через параметр. Представьте, что у вас есть 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:message ?!

Править

Хотя рендеринг текста в метке выглядит очень хорошо, как указано ниже, и вы можете установить escapemodelstring, было бы полезно иметь возможность такого рода параметризации в теге wicket:message, а не добавлять метку для каждого ключа.

Эта проблема может быть большая проблема с точки зрения того, что вы не хотите иметь какой-либо специфический код java в вашей разметке, как имена конкретных методов модели в keyparameter. Таким образом, возникла бы также необходимость в обобщении этой техники. есть идеи, как это совместить?

2 2

2 ответа:

Может быть, вы все еще можете использовать свой

new StringResourceModel( "property.to.load.${pageParam.suffix}", this, new Model(pageModel))));

С меткой, которая не ускользает от HTML-тегов вашего свойства

add(new Label("label", "<strong>my html property</strong>").setEscapeModelStrings(false));

Я нашел хорошую статью, в которой описывается, как настроить поведение тега калитки или реализовать свой собственный.