我使用的是动态创建的链接:JSF转换器:PARAM
<h:link outcome="/page" value="#{name}">
<f:param name="name" value="#{name}"/>
</h:link>
我想将自定义转换器F:参数去从#(名称)等 删除空格但没有转换器属性在f:param。
我使用的是动态创建的链接:JSF转换器:PARAM
<h:link outcome="/page" value="#{name}">
<f:param name="name" value="#{name}"/>
</h:link>
我想将自定义转换器F:参数去从#(名称)等 删除空格但没有转换器属性在f:param。
甲Converter
被intented从提交String
请求参数值转换成复杂的对象,反之亦然在输入字段。然而,<f:param>
仅为纯输出,它始终会在该值上调用toString()
。它不支持Converter
。
你干净,最好的办法是建立一个custom EL function,使你最终落得这样的:
<f:param name="name" value="#{util:prettyUrl(name)}"/>
更新:JSF的工具库OmniFaces具有自1.4版本(2013年3月)一个<o:param>
组件,它扩展了<f:param>
,支持一个完整的JSF转换器,就像你在<h:outputText converter>
中使用的一样。
<h:link outcome="/page" value="#{name}">
<o:param name="name" value="#{name}" converter="somePrettyURLConverter" />
</h:link>
另请参阅showcase。
我有同样的问题,我不是很满意这样的解决方案。在接收站点上使用'f:viewParam'来使用转换器检索Object。因此,使用'f:param'也可以直接使用转换器。由于该逻辑已经在转换器中实现。现在这个逻辑也出现在视图中,如果我改变参数,也许从名称到ID我不得不改变转换器和网站。自定义el函数将是一种解决方法,至少如果初始转换器也会使用它。 – djmj
将'o:param'标签添加到他的omnifaces库中,它工作得很好。 – djmj