У меня есть следующий фрагмент кода с простым h:outputText
, указывающим на int
и p:commandLink
для установки значения:
<h:form id="f1">
<h:outputText id="text" value="#{testBean.index}"/>
<p:commandLink actionListener="#{testBean.test}" update="text">
<f:setPropertyActionListener target="#{testBean.index}" value="5" />
<h:graphicImage url="/images.png"/>
</p:commandLink>
</h:form>
Управляемый компонент выглядит следующим образом:
@javax.faces.bean.ManagedBean @ViewScoped
public class TestBean implements Serializable{
private int index; // getter/setter
@PostConstruct public void init() {
index = 0;log.log(Level.WARNING, "@PostConstruct");}
public void test(ActionEvent ae){
log.log(Level.WARNING, "Index: "+index);}
}
Бин составлен правильно, и после первого щелчка по изображению h:ouputText
обновляется до 5 .Но в моем сообщении журнала я вижу только Index: 0
во время первого щелчка по изображению.
Это что-то похожее на Jsf обновляет значение модели старым значением , но у меня есть JSF @ManagedBean
аннотация.