为什么我不能使用标签:h:outputFormat的属性?

时间:2010-07-21 11:01:48

标签: jsf

在将应用程序从JSF 1.2移植到JSF 2.0.3(Mojarra)期间出现问题。我有以下代码:

<h:outputFormat value="#{m.t_if_you_forget_password}" escape="false">
   <f:param value="<a href=\"/restore_password.jsf\">" />
   <f:param value="</a>" />
</h:outputFormat>

并收到错误:

Error Traced[line: 22] The value of attribute "value" associated with an element type "null" must not contain the '<' character. 

如何解决?为什么JSF(facelets?)拒绝它? &lt;有什么问题?和&gt;在f:param值?

BTW,如果可以提供帮助:我使用的是GlassFish 3.0.1

提前致谢!

3 个答案:

答案 0 :(得分:7)

您在属性的值中使用了xml特殊字符:

<

错误说你不能这样做,这是正确的。如果这些字符不属于文档的xml代码,则应使用这些字符的声明。如果是上面的标志,请用

替换它们
&lt; 

可在此处找到更多信息:http://www.devx.com/tips/Tip/14068

PS:同时将所有>替换为&gt;

答案 1 :(得分:1)

而是将链接元素放在消息本身中并参数化链接href。

Blah blah <a href="{0}">blah blah</a> blah blah

<f:param value="restore_password.jsf">

答案 2 :(得分:1)

你需要替换&lt;和&gt;里面f:param值,而不是f:param本身之前和之后。