用于f:param的JSF转换器

时间:2011-10-14 11:27:43

标签: jsf el

我正在使用动态创建的链接:

          <h:link outcome="/page" value="#{name}">
            <f:param name="name" value="#{name}"/>
          </h:link>

我想为f:param添加自定义转换器以从#{name}等中删除空格 但是f:param中没有转换器属性。

2 个答案:

答案 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 ...... ??

此致