将 <f:param> 标签替换为 JSTL <c:set> 标签和 javax.faces.view.facelets.TagException
Replacing the <f:param> tag with the JSTL <c:set> tag & the javax.faces.view.facelets.TagException
我正在尝试构建书中给出的问题。
作者提到:
有时,JSTL <c:set>
标签可以解决 JSF <f:param>
标签不能解决的问题。大概,你知道我们可以使用<f:param>
标签给<ui:include>
标签传递参数,如下代码所示:
<ui:include src="rafa.xhtml">
<f:param name="rafa" value="Rafael Nadal Page"/>,
</ui:include>
好吧,这个方法触发了一个问题!现在,Rafael Nadal Page 值将通过 EL 在包含页面中可用,#{rafa}
,但在包含页面的托管 bean 的构造函数中将不可用!
<c:set>
标签是时候挽救局面了;因此,代码将更改为以下内容:
<ui:include src="rafa.xhtml">
<c:set var="rafa" value="Rafael Nadal Page" scope="request"/>,
</ui:include>
当我使用 <c:set>
时,它与 #{rafa}
、
的可用性完美配合
而在 <f:param>
的情况下,它给了我这样一个例外:
而作者提到该值将通过 EL 在包含的页面中可用,#{rafa}
。我不是在谈论 bean 的 constructor
中的值,而是针对包含的页面。他到底是什么意思?
这只是书中的一个不幸的错字。它真的应该是 <ui:param>
而不是 <f:param>
。
<ui:include src="rafa.xhtml">
<ui:param name="rafa" value="Rafael Nadal Page"/>,
</ui:include>
<f:param>
的目的是在<h:xxxLink>
和<h:xxxButton>
组件的outcome中添加HTTP请求参数,并在<h:outputFormat>
中参数化消息格式。 <ui:param>
旨在将 Facelet 上下文参数传递给 <ui:include>
、<ui:decorate>
和 <ui:define>
。
我已经通知作者了。
另请参阅:
- JSTL in JSF2 Facelets... makes sense? 提及
<c:set>
与 <ui:param>
我正在尝试构建书中给出的问题。
作者提到:
有时,JSTL <c:set>
标签可以解决 JSF <f:param>
标签不能解决的问题。大概,你知道我们可以使用<f:param>
标签给<ui:include>
标签传递参数,如下代码所示:
<ui:include src="rafa.xhtml">
<f:param name="rafa" value="Rafael Nadal Page"/>,
</ui:include>
好吧,这个方法触发了一个问题!现在,Rafael Nadal Page 值将通过 EL 在包含页面中可用,#{rafa}
,但在包含页面的托管 bean 的构造函数中将不可用!
<c:set>
标签是时候挽救局面了;因此,代码将更改为以下内容:
<ui:include src="rafa.xhtml">
<c:set var="rafa" value="Rafael Nadal Page" scope="request"/>,
</ui:include>
当我使用 <c:set>
时,它与 #{rafa}
、
而在 <f:param>
的情况下,它给了我这样一个例外:
#{rafa}
。我不是在谈论 bean 的 constructor
中的值,而是针对包含的页面。他到底是什么意思?
这只是书中的一个不幸的错字。它真的应该是 <ui:param>
而不是 <f:param>
。
<ui:include src="rafa.xhtml">
<ui:param name="rafa" value="Rafael Nadal Page"/>,
</ui:include>
<f:param>
的目的是在<h:xxxLink>
和<h:xxxButton>
组件的outcome中添加HTTP请求参数,并在<h:outputFormat>
中参数化消息格式。 <ui:param>
旨在将 Facelet 上下文参数传递给 <ui:include>
、<ui:decorate>
和 <ui:define>
。
我已经通知作者了。
另请参阅:
- JSTL in JSF2 Facelets... makes sense? 提及
<c:set>
与<ui:param>