所以我有
<p:ajax event="tabChange" listener="#{refriedBean.onTabChange}" />
Run Code Online (Sandbox Code Playgroud)
但我想传递tabChange事件和存储在页面上的额外值
public void onTabChange(TabChangeEvent event, Object obj)
Run Code Online (Sandbox Code Playgroud)
怎么会这样做呢?
这是场景(简化):
有一个bean(称之为mrBean)与成员和适当的getter/setter:
private List<String> rootContext;
public void addContextItem() {
rootContext.add("");
}
Run Code Online (Sandbox Code Playgroud)
JSF代码:
<h:form id="a_form">
<ui:repeat value="#{mrBean.stringList}" var="stringItem">
<h:inputText value="#{stringItem}" />
</ui:repeat>
<h:commandButton value="Add" action="#{mrBean.addContextItem}">
<f:ajax render="@form" execute="@form"></f:ajax>
</h:commandButton>
</h:form>
Run Code Online (Sandbox Code Playgroud)
问题是,当单击"添加"按钮时,不会执行<h:inputText/>在表示字符串中的值中输入的值stringList.
实际上,从不调用mrBean.stringListsetter(setStringList(List<String> stringList)).
知道为什么吗?
一些信息 - 我在Tomcat 6上使用MyFaces JSF 2.0.
我有一个简单的问题,但我无法找到正确的答案.
我渲染一个非常复杂的数据表:
<p:dataTable var="label" value="#{labelsManager.labelsList}" rowKey="#{label.cod}" editable="true"
rowsPerPageTemplate="5,10,15,30" paginator="true" paginatorPosition="bottom" rows="30"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rendered="#{not empty labelsManager.labelsList}" scrollable="true" scrollHeight="300" id="labelsList" sortMode="multiple"
selection="#{labelsManager.selectedLabelsForDelete}">
<p:ajax event="rowEdit" listener="#{labelsManager.onRowEdit}" />
...some code...
</dataTable>
Run Code Online (Sandbox Code Playgroud)
和方法
public void onRowEdit(RowEditEvent event) {
... here I want to get the index on the current row...
}
Run Code Online (Sandbox Code Playgroud)
当我想编辑一行时,我还想获得将被编辑的当前行的索引.我搜索了很多,但我看不出如何从RowEditEvent中提取id.
我还尝试将行的索引作为属性发送但没有成功.有任何想法吗?谢谢!