更新列表中的对象

时间:2013-10-24 18:28:35

标签: jsf

人们,我遇到以下问题:

我有一个 A 对象,其中有一个对象列表 B

但是列表B中的对象数量是固定的(等于12,是一年中具有月份和值的对象)

public class A{
    private Map<Integer, B> itens;         

    //gets e sets
}

public class B{
    private BigDecimal valor;
    private Date mes;  

    //gets e sets
}

我有以下问题:

  

如何使用JSF访问此属性值?

我尝试过以下方法:

<h:outputLabel value="#{msg['label.mes.janeiro']}:" />
<h:inputText id="janeiro" styleClass="input-large money"
    value="#{levantamentoBean.itemCrud.itens[0].valor}">
</h:inputText>

 <h:outputLabel value="#{msg['label.mes.janeiro']}:" />
 <h:inputText id="janeiro" styleClass="input-large money"
        value="#{levantamentoBean.itemCrud.itens[0].valor}">
        <f:convertNumber pattern="#,##0.00" minFractionDigits="2" />
 </h:inputText>

当我在Bean中收到对象时,它没有更新的值,我在输入中输入了。有人可以告诉我这是否可能?

2 个答案:

答案 0 :(得分:1)

<h:inputText id="janeiro" styleClass="input-large money" 
        value="#{levantamentoBean.itemCrud.itens[0].valor}">
    <f:converter converterId="javax.faces.BigDecimal"/>
</h:inputText>

如果您需要模式转换,请参阅https://community.jboss.org/message/483357#483357

答案 1 :(得分:1)

我的问题解决了这个问题:

<h:commandLink value="Save" actionListener="#{myBean.saveItem}">                                
    <f:ajax onevent="handleOutcome" execute="@all" 
             render=":formulario:table values descriptionNeed" />
</h:commandLink>

我将execute="@all"放入<h:commandLink>,将All component identifiers发送到服务器。

参考文献:

http://docs.oracle.com/javaee/6/tutorial/doc/gkabr.html

What is <f:ajax execute="@all"> really supposed to do? It POSTs only the enclosing form

https://community.jboss.org/message/563111

http://www.mkyong.com/jsf2/jsf-2-0-ajax-hello-world-example/

就是这样!