用于f:param的JSF转换器

kar*_*kpl 9 jsf el

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

          <h:link outcome="/page" value="#{name}">
            <f:param name="name" value="#{name}"/>
          </h:link>
Run Code Online (Sandbox Code Playgroud)

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

Bal*_*usC 16

A Converter意图String在输入字段中从提交的请求参数值转换为复杂对象,反之亦然.但是,它<f:param>只是纯输出,它将始终调用toString()该值.它不支持Converter.

您最干净,最好的选择是创建一个自定义EL功能,这样您最终会像:

<f:param name="name" value="#{util:prettyUrl(name)}"/>
Run Code Online (Sandbox Code Playgroud)

更新: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>
Run Code Online (Sandbox Code Playgroud)

另见展示.

  • 将`o:param`标签添加到他的omnifaces库中,效果非常好. (2认同)