JSF 1.2表值作为a4j命令按钮的id

时间:2016-09-20 15:04:47

标签: jsf richfaces jsf-1.2 richfaces-modal

我有

<h:column headerClass="details_header">
    <h:panelGroup rendered="#{foo.checkIffooIsAvailable(table.YooId)}">
        <h:form>
            <h:inputHidden id="hiddenYooboo" value="#{table.YooId}" 
                binding="#{foo.hiddenInputValue}"/>
            <a4j:commandButton styleClass="quickYooButton fooButton"
                value="#{textElement.getText('foo')}" reRender="fooPanel" 
                action="#{foo.getFullfooAmount()}">
                <rich:componentControl for="fooPanel" event="oncomplete" 
                    operation="show" />
            </a4j:commandButton>
        </h:form>
    </h:panelGroup>
</h:column>

后端

private Integer boo;
private BigDecimal partialfoo;
public List<Integer> fooTableYoos = new ArrayList<Integer>();
public UIInput hiddenInputValue;    

public Boolean checkIffooIsAvailable(Integer tableboo) {
    Iterator<Integer> iter = fooTableYoos.iterator();
    while (iter.hasNext()) {
        if (iter.next().compareTo(tableboo) == 0) {
            return true;
        } else {
            return false;
        }
    }
    return false;
}

public BigDecimal getFullfooAmount() {
    BigDecimal fooAmount = null;
    try {
        fooAmount = new BigDecimal(100);
        setFullfoo(fooAmount);
    } catch (Exception e) {
        log.error("getFullfooAmount()", e);
    }
    return fooAmount;
}
    public UIInput getHiddenInputValue() {
    return hiddenInputValue;
}

public void setHiddenInputValue(UIInput hiddenInputValue) {
    this.hiddenInputValue = hiddenInputValue;
}

问题是当我点击commandButton时出现错误:

  

无法实例化Seam组件:table。

我需要渲染表检查boo是否在列表中以及何时为真实渲染按钮。然后,当我有按钮时,我需要检查我点击了什么ID,并通过此ID重新加载数据打开模态。没有名为table的组件。 Couse它只是dataTable的东西。 h:CommandButton有效,但是第二次关闭后的模态,不会重新加载模态数据。

1 个答案:

答案 0 :(得分:1)

解决方案是将dataTable的类型更改为rich:dataTable