我正在"国际化"我的应用程序的过程中,这是基于SEAM 2/JSF 1.2
有一件事让我很恼火,那就是在消息包中有HTML标记,如果可能的话,我想避免这种情况,比如我有以下HTML
<p>Click <span class="link" id="trigCl">here</span> to register your account.</p>
我想把它分解成以下几个部分:
<h:outputFormat escape="false" value="#{messages['registerAccountText']}">
<f:param value="<span class='link' id='trigCl'>#{messages['here']}</span>" />
</h:outputFormat>
包含以下bundle条目:
registerAccountText=Click {0} to register your account.
但正如你所猜到的,我得到了以下内容…
The value of attribute "value" associated with an element type "f:param" must not contain the '<' character.
是否有a)一种方法来解决这个问题,或者b)一种更好的方法来处理这个问题(不涉及完全重写标记)?
刚刚从无处不在的BalusC中遇到了类似问题的答案,它演示了一种转义f:param
中的HTML的方法。<h:outputFormat escape="false" value="#{messages['registerAccountText']}">
<f:param value="<span class='link' id='trigCl'>#{messages['here']}</span>" />
</h:outputFormat>
不完全是最干净的解决方案但在我升级到JSF 2.0之前,它将不得不做