人们,我遇到以下问题:
我有一个 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中收到对象时,它没有更新的值,我在输入中输入了。有人可以告诉我这是否可能?
答案 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/
就是这样!