еще раз сочетание PrimeFaces и GAE приводит меня в бешенство. Внутри p:dataTable
Я хочу щелкнуть изображение, вызвать метод bean и установить параметр. Вызывается метод, но параметр не работает. Вот упрощенный пример (без стола):Google App Engine: f: setPropertyActionListener с p: ajax
<h:form id="f1">
<h:outputText id="text" value="#{testBean.index}"/>
<h:graphicImage url="/images/cut.png">
<p:ajax event="click" process="@this" update="text"
actionListener="#{testBean.test}" >
<f:setPropertyActionListener target="#{testBean.index}" value="5" />
</p:ajax>
</h:graphicImage>
</h:form>
Мои TestBean
выглядит следующим образом:
@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);}
}
В журналах я вижу один @PostConstruct
и после нажатия на изображение всегда Index: 0
Обновление Проблема обновления стоимости может обсуждаться здесь JSF GAE: Value Update Problem in managed bean method
Уточнение: ' поддерживается только для родительских компонентов, реализующих« ActionSource ». '' не делает. Однако интересная деталь заключается в том, что при использовании '' вместо '' исключение генерируется именно этим сообщением. Например, '' может быть заменен на требуемый ''. Функция ' будет работать одинаково хорошо, а не' 'внутри'
'. – BalusC
@BalusC, я не знал об этом и узнал что-то новое, но если вы посмотрите внимательно, вы увидите, что ' на самом деле находится внутри тега' ', отступ ввинчивается. Это хорошая информация. –
'' 'не может быть дочерним элементом другого' '. Он будет просто родителем самого «UIComponent». –
BalusC