【问题标题】:FacesComponent with no set called没有调用集合的 FacesComponent
【发布时间】:2014-01-23 22:48:23
【问题描述】:

这是我的 FacesComponent 类:

@FacesComponent("ExibicaoChecklistComponent")
public class ExibicaoChecklistComponent extends UINamingContainer {

    private ListaChecklistWrapper checklist;
    private String altura;

    public ListaChecklistWrapper getChecklist() {
        return checklist;
    }

    public void setChecklist(ListaChecklistWrapper checklist) {
        this.checklist = checklist;
    }

    public String getAltura() {
        return altura;
    }

    public void setAltura(String altura) {
        this.altura = altura;
    }
}

和xhtml

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:cc="http://java.sun.com/jsf/composite"
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:pretty="http://ocpsoft.com/prettyfaces"
  xmlns:ui="http://java.sun.com/jsf/facelets">
<cc:interface componentType="ExibicaoChecklistComponent">
    <cc:attribute name="altura" default="300px" type="java.lang.String" />
    <cc:attribute name="checklist" required="true" />
</cc:interface>
<cc:implementation>
    Altura: #{cc.altura}
    Checklist: #{cc.checklist.nome}
</cc:implementation>

最后是用法:

<checando:exibicaoChecklist altura="200px" checklist="#{CheckBean.checklists[0]}"  />

setAltura 方法被调用,值为 200px,但 setChecklist(ListaChecklistWrapper checklist) 未被调用,并且组件内部的 checklist 属性始终为 null。

如果我在&lt;checando:exibi... 标签之外执行#{CheckBean.checklists[0].nome},它就可以工作。所以,这个对象不是空的……它只是缺少对 set 方法的调用。

我有什么遗漏的吗?

Mojarra 2.1.13 (20120907-1514) 和 java 版本“1.7.0_25”。

谢谢。

【问题讨论】:

  • 我猜,将nome 直接作为参数输入到组件中会再次起作用吗? (类似于setChecklistNome(String nome)。如果是这样,提供与java.lang.String 不同的直接参数可能会遇到挑战。您是否尝试将参数提供为cc.attrs.checklist,而不是将其直接写入UINamingContainer
  • 谢谢@L-Ray,将其作为答案发布,以便我检查您的解决方案是否正确。
  • 赞成票也将不胜感激。 :-)

标签: java jsf jsf-2 mojarra


【解决方案1】:

我猜,将名称直接作为参数输入到组件中会再次起作用吗? (类似于 setChecklistNome(String nome)。

如果是这样,提供与 java.lang.String 不同的直接参数可能会遇到挑战。您是否尝试将参数指定为cc.attrs.checklist,而不是将其直接写入UINamingContainer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-25
    • 2012-02-06
    • 1970-01-01
    • 2013-10-13
    • 1970-01-01
    相关资源
    最近更新 更多