我正在使用动态创建的链接:
<h:link outcome="/page" value="#{name}">
<f:param name="name" value="#{name}"/>
</h:link>
我想为f:param添加自定义转换器以从#{name}等中删除空格 但是f:param中没有转换器属性。
答案 0 :(得分:16)
Converter
有意在提交的String
请求参数值转换为复杂对象,反之亦然。但是,<f:param>
仅为纯输出,并且始终会在值上调用toString()
。它不支持Converter
。
您最干净,最好的选择是创建一个custom EL function,这样您最终会像:
<f:param name="name" value="#{util:prettyUrl(name)}"/>
更新:自1.4版(2013年3月)以来,JSF实用程序库OmniFaces已成为<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。
答案 1 :(得分:1)
如果你这样做会怎么样?
<f:param name="name" value="#{name.replace(' ', '')}" />
这不起作用吗?
或者你想要所有&lt; f:param ...... ??
此致