【问题标题】:JSF selectOneMenu value renders unexpected outputJSF selectOneMenu 值呈现意外输出
【发布时间】:2016-03-25 14:27:32
【问题描述】:

我正在使用 jsf 组件 selectOneMenu 但我在检查 html 输出时得到这个随机值 8e6a2a06-91dd-84a9-88b8-c2403de5d17d

JSF:

 <h:selectOneMenu id="idSelect" 
                            value="#{bean.SelectValue}">
                            <f:selectItems value="#{bean.list()}" var="prts"
                            itemLabel="#{prts.libelle}" itemValue="#{prts.code}" />

                        </h:selectOneMenu>  

【问题讨论】:

  • @BalusC 谢谢你的回答,我刚刚在我的浏览器中查看了源代码,它生成了随机值,所以 javascript 它是正确的,但我怎样才能获得真正的价值??
  • JSF 只是展示您的 #{prts.code} 包含的任何内容。它不会操纵它,除非有一个你没有告诉任何事情的隐式转换器。因此,您需要在 JSF 之前退后一步,检查您的模型以及与 #{part.code} 表示的模型类型相关联的任何隐式转换器。
  • @BalusC 非常感谢您的帮助,我有一个转换器,我告诉过我任何事情,所以当我移除该转换器时,现在一切正常

标签: jsf


【解决方案1】:

当有隐式或显式 ConverteritemValue 后面的类型关联时,就会发生这种情况。隐式转换器的一个示例是@FacesConverter(forClass=String.class)。它可以在String.class 类型的任何模型值上运行。显式转换器是您通过输入组件的converter 属性指定的转换器,但这在您迄今为止发布的代码 sn-p 中不可见(除非您在没有实际测试的情况下过度简化了 sn-p)。

至少,生成的值可以识别为UUID.randomUUID().toString() 的结果,因此如果您在代码库中搜索该行代码,您会找到可疑的转换器。也许它是一种“generic entity converter”,您可以在 Internet 上的多个地方找到它,但实际上您最好不要使用它。

【讨论】:

  • 非常正确,我的 selectOneMenu 中有一个明确的转换器 这就是为什么我得到一个意外的输出值
猜你喜欢
  • 2014-03-26
  • 1970-01-01
  • 1970-01-01
  • 2021-03-03
  • 1970-01-01
  • 2019-06-15
  • 1970-01-01
  • 1970-01-01
  • 2011-10-10
相关资源
最近更新 更多