谁能给我提供一个如何使用rich:orderingList控件的示例?我已经到了可以显示所需数据的地步,但是现在我实际上希望将修改后的顺序传播到服务器。在这个问题上我找不到任何东西。
<rich:orderingList value="#{countryHandler.data}" var="country">
<rich:column>
<f:facet name="header">
<h:outputText value="id"/>
</f:facet>
<h:outputText value="#{country.id}"/>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="code"/>
</f:facet>
<h:outputText value="#{country.code}"/>
</rich:column>
并且我的后备Bean具有定义的属性数据,该属性数据仅返回List 。
再说一遍:如何将更改后的对象顺序填充回服务器?
最佳答案
提交表单时,Seam将为您重新排序列表(#{countryHandler.data}),因此您现在应该可以访问了。我举了一个简单的例子来测试这一点。所有文件如下:
CountryHandler.java
@Name("countryHandler")
@Scope(ScopeType.CONVERSATION)
public class CountryHandler {
@In(create=true)
private CountryService countryService;
private List<Country> data;
public void loadCountries() {
this.data = this.countryService.getCountryList();
}
public List<Country> getData() {
return data;
}
public void setData(List<String> data) {
this.data = data;
}
public void submit() {
//check the list order here. You should find it's ordered...
}
}
States.xhtml
...snip...
<rich:orderingList value="#{countryHandler.data}" var="country">
<rich:column>
<f:facet name="header">
<h:outputText value="id"/>
</f:facet>
<h:outputText value="#{country.id}"/>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="code"/>
</f:facet>
<h:outputText value="#{country.code}"/>
</rich:column>
</rich:orderingList>
<h:commandButton action="#{countryHandler.submit()}" value="Submit" />
...snip...
States.page.xml
<page>
...snip...
<begin-conversation join="true"/>
<action execute="#{countryHandler.loadCountries()}"/>
...snip...
</page>
也可以看看: