使用ajax4jsf来处理JSF table

使用ajax4jsf来处理JSF table

 

下面是一个使用ajax风格的JSF table,有ajax来出来table的翻页和插入删除.

 

JSP Page Coding

 

 

<!--Data Table:-->

 

<h:dataTable id="cityList" value="#{cityBean.cities}" var="clist" rows="10"
first="#{cityBean.offset}" border="2" width="200px" rules="all">
<h:column>
<h:outputText value="#{clist}" />
</h:column>
</h:dataTable>

<!--AJAX-based Pagination Links-->

<h:panelGroup style="display:block">
<a4j:commandLink value="Previous.. " action="#{cityBean.prevAction}"
reRender="cityList"></a4j:commandLink>
<a4j:commandLink value=" Next.." action="#{cityBean.nextAction}"
reRender="cityList"></a4j:commandLink>
</h:panelGroup>

<!--AJAX-based Add/Remove Buttons-->

<h:panelGroup style="display:block">
<a4j:commandButton value="Add Town" action="#{cityBean.addTown}"
reRender="cityList,statusmessage"></a4j:commandButton>
<a4j:commandButton value="Delete Town" action="#{cityBean.deleteTown}"
reRender="cityList,statusmessage"></a4j:commandButton>
</h:panelGroup>

 

data bable每次将从cityBean的list中取10条数据显示. a4j:CommandLinks 中的 Next and PrevAction 来处理页面导航. Add and DeleteTown  actions来处理列出的内容.

 

Java Code

 

 

...
public void prevAction(){
if (getOffset() > 9){
setOffset(getOffset() - 10);
}
}

 

public void nextAction(){
if (getOffset() < getCities().size() - 9){
setOffset(getOffset() + 10);
}
}
public void addTown() {
if (!this.cities.contains(cityName)){
this.cities.add(cityName);
Collections.sort(cities);
this.statusMessage = "The Town Succesfully Added, Table Was Sorted";
}else{
this.statusMessage = "This Town Is Already In Table";
}
}

public void deleteTown(){
if (cities.contains(this.cityName)){
this.cities.remove(this.cityName);
this.statusMessage = "The Town Succesfully Removed";
}else{
this.statusMessage = "Town Does Not Exist";
}
}
...

 

所以,你可以实现一个可以排序,更新的ajax mode的table,而不用写任何js代码.仅仅记得当调用完action时要从新渲染table就可以了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值