JSF。转换 h :commandLink display 的值

标签 jsf jsf-2

我路过Status对象为 h:commandLink 值。所以页面上就显示出来了。问题是,显示的字符串是

packages.entity.Status@db2674c8

我为 Status 创建了转换器带注释

@FacesConverter(forClass = Status.class, value = "statusConverter")

但它不起作用。我尝试明确设置它:

<h:commandLink value="#{result.status}" action="/view">
    <f:converter converterId="statusConverter" />
</h:commandLink>

然后我得到一个错误:/search-form.xhtml @57,58 <f:converter> Parent not an instance of ValueHolder: javax.faces.component.html.HtmlCommandLink@53e387f3

这是真的,h:commandLink不是ValueHolder 。有没有办法转换 h:commandLink 的值?

最佳答案

有趣,我直觉地希望它在这里工作,但是 UICommand确实没有扩展 UIOutput (而 UIInput 则如此)。也许值得向 JSF 男孩提出增强请求。

您可以通过使用 <h:outputText> 显示它来解决此问题.

<h:commandLink action="/view">
    <h:outputText value="#{result.status}">
        <f:converter converterId="statusConverter" />
    </h:outputText>
</h:commandLink>

或者只是没有明确的 <f:converter>因为你已经有了 forClass=Status.class

<h:commandLink action="/view">
    <h:outputText value="#{result.status}" />
</h:commandLink>

关于JSF。转换 h :commandLink display 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6098279/

相关文章:

jsf - 将 ValueExpression 属性的原始表达式访问到 taglib 组件

css 选择器 java server faces 标签

jsf-2 - 使用ui时避免使用多个DOCTYPE和html标签 :include

java - Primefaces 在单行上显示列表

java - JSF 转换器导致 validator 被忽略

image - 如何在 h :commandLink value 中放置图像而不是文本

java - 自定义 facelet 函数是否脏?

jsf - p :button example doesn't read the parameter passed as in the example

jsf - 在 Primefaces 表行选择的基础上动态启用/禁用命令按钮

javascript - 设置静态资源的内容类型