У меня есть страница JSP, на которой пользователю необходимо разрешить редактировать данные из столбца и, когда форма отправлена, обновить соответствующую таблицу в базе данных.Число строк в этой таблице является переменной.
Для редактируемого информационного поля у меня есть следующий фрагмент кода (назовем его Блок A ) на странице JSP:
<h:inputText value="#{myBackingBean.theFieldValue}" >
<a4j:support event="onchange" actionListener="#{myBackingBean.theActionListener}" action="#{myBackingBean.theAction}"/>
</h:inputText>
Следующий фрагмент кода (назовем его Блок B ) взят из базового компонента:
public String theAction() {
String outcome = null;
System.out.println("the action method was invoked");
return outcome;
}
public void theActionListener(ActionEvent actionEvent) {
System.out.println("the action listener method was invoked");
}
Как вы можете видеть, каждый раз, когда вызываются эти методы, которые выводятся на консольвыходные данные.
Моя проблема: Когда я помещаю Блок A внутрь следующего блока ( один компонент inputText в форме):
<h:form id="myForm">
(...)
here I put Block A
(...)
</h:form>
Блок B вызывается без проблем.Но если вместо этого я помещу Блок A в компонент rich: dataTable, как мне нужно ( несколько компонентов inputText в форме), чтобы сохранить значение inputText каждой строки в базе данных (вот где мне нужно вызвать методы action и / или actionListener):
<h:form id="myForm">
<rich:dataTable id="myDataTable" value="#{myBackingBean.myObjectList}" var="item" binding="#{myBackingBean.myObjectHtmlDataTable}" rendered="#{!empty myBackingBean.myObjectList}" rows="20">
(...)
<rich:column>
here I put Block A
</rich:column>
(...)
</rich:dataTable>
</h:form>
в этом случае Block B никогда не достигается.
I'mпри работе с JSF 1.2 и RichFaces 3.3.3 все необходимые компоненты и правила навигации настроены правильно.Все необходимые геттеры и сеттеры находятся в соответствующих классах.
Пожалуйста, не могли бы вы дать мне несколько советов, чтобы мой код работал правильно?Заранее спасибо.