当前位置: 首页 > 知识库问答 >
问题:

复合组件和具有(ENUM)转换器的SelectOneMenu

楚苏燕
2023-03-14
<cc:implementation>
    <h:panelGrid columns="2">
        <p:outputLabel for="#{cc.attrs.fieldId}" value="#{cc.attrs.fieldLabel}"/>
        <p:selectOneMenu id="#{cc.attrs.fieldId}" required="#{cc.attrs.required}" converter="#{cc.attrs.converter}" value="#{cc.attrs.targetValue}">
                <f:selectItem itemLabel="#{msg['label.selecione.item']}" itemValue="" />
                <f:selectItems value="#{cc.attrs.listValue}"/>
        </p:selectOneMenu>
    </h:panelGrid>          
</cc:implementation>

所以,问题是当我试图通过转换器!这是枚举转换器(使用@FacesConverter(value=“TipoCampoConverter”)注释扩展EnumConverter)

错误为:javax.el.elException:无法将类java.lang.String类型的tipoCampoConverter转换为接口javax.faces.convert.Converter

**编辑:

    <cc:attribute name="converter" required="true" type="javax.faces.convert.Converter"/>

共有1个答案

宇文嘉勋
2023-03-14

如果值为ValueExpression,则Converter属性默认需要Converter实例。类似于以下内容 。不幸的是,复合材料中这种不直观的行为是“设计”造成的。

您最好改用

<p:selectOneMenu ...>
    ...
    <f:converter converterId="#{cc.attrs.converter}" />
</p:selectOneMenu>

与具体问题无关,您根本不需要用于此特定用例的转换器。JSF已经有一个内置的枚举转换器。只有在将UISelectMany组件绑定到列表 而不是e[]时,才需要此转换器。

    null
 类似资料:
  • 葡萄牙语:java.lang.IllegalArgumentException jsf composite componente composto jsf com dataTable do primefaces tabela-padrao.xhtml 使用组件/Usando o组件 我有一个例外/Ocorreu esta Exceção! 葡萄牙人:Oque estou fazendo de er

  • 我想将web设计师用纯HTML编写的复杂div容器转换为React组件。此div容器具有React to manage的状态。我知道我可以将div转换为JSX,但这意味着设计师和我都要加倍努力。危险的是,Html不处理状态。我可以创建React的子类。组件,定义状态并在不使用JSX的情况下将状态值呈现到div容器中? 下面是div容器标记的一个片段:

  • 问题内容: 我有一个从包含重复密钥的数据库中获取的JSON字符串。我想通过将重复键的值组合到数组中来删除重复键。 例如 输入项 输出量 实际数据是一个可能嵌套的大文件。我不会提前知道有多少对。 我需要为此使用Java。org.json由于重复的键而引发异常,gson可以解析该字符串,但是每个重复的键都会覆盖最后一个。我需要保留所有数据。 如果可能的话,我想不编辑任何库代码就这样做 问题答案: 从今

  • 我做了一些测试,看看如何将combobox绑定到一些bean属性,但我得到了一个异常:“ConversionException:无法将值转换为字符串在..........”我的示例在使用组合框的indexedContainer时工作正常,但是在使用BeanItem容器时遇到了一些问题。我所拥有的:1。TestCountry,BeanItemContainer的简单java bean(为了简单起见,

  • 给定组件:https://www.primefaces.org/showcase/ui/input/oneMenu.xhtml 我的测试的完整来源是:https://github.com/dannymk/PrimefacesTest 无法使用转换器使组件与对象一起工作。不知道如何解决这个问题。 我会出现以下错误: 我改变什么似乎无关紧要,相信我,我已经尝试了很多转换器的实现,并且在视图中使用了