<a4j:form>
<rich:dataTable id="friendEvent" value="#{myFreshEvent.myFriendFreshEvent}" var="friendevent"
rows="20" headerClass="richtableheader" footerClass="tablefoot" rendered="#{not empty myFreshEvent.myFriendFreshEvent}" style="border:none;background-color:#f5f5f5;"
rowKeyVar="row" ajaxKeys="#{myFreshEvent.keysFriend}">
<rich:column style="font-size:14px;border:none;">
<rich:spacer width="20"/>
<h:graphicImage value="../css/pic/lan1.gif"/>
<a href="#{friendevent.url}">#{friendevent.friendid}:#{friendevent.content}</a>
<a4j:commandLink value="删除"
action="#{myFreshEvent.deleteMyFriendevent}" reRender="friendEvent">
<f:setPropertyActionListener value="#{friendevent}"
target="#{myFreshEvent.currentMyFriendeventItem}" />
<f:setPropertyActionListener value="#{row}"
target="#{myFreshEvent.currentMyFriendeventRow}" />
</a4j:commandLink>
</rich:column>
</rich:dataTable>
<rich:datascroller for="friendEvent" id="friendDS" align="left" rendered="#{friendeventList.resultList.size()>20}"></rich:datascroller>
</a4j:form>
package cn.peercoaching.session;
import javax.ejb.Remove;
import javax.ejb.Stateful;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.log.Log;
import org.jboss.seam.international.StatusMessages;
import java.util.*;
import cn.peercoaching.model.*;
/**
*
* @author lurim
*
*/
@Stateful
@Name("myFreshEvent")
public class MyFreshEventBean implements MyFreshEvent
{
@Logger private Log log;
@In StatusMessages statusMessages;
@PersistenceContext
EntityManager em;
private List<Myevent> myFreshEvent=new ArrayList<Myevent>();
private int currentMyeventRow;
private Myevent currentMyeventItem;
private Set<Integer> keys = new HashSet<Integer>();
public void myFreshEvent()
{
// implement your business logic here
log.info("myFreshEvent.myFreshEvent() action called");
statusMessages.add("myFreshEvent");
}
// add additional action methods
public List<Myevent> getMyFreshEvent() {
myFreshEvent=em.createQuery("select myevent from Myevent myevent order by createTime desc").getResultList();
return myFreshEvent;
}
public void setMyFreshEvent(List<Myevent> myFreshEvent) {
this.myFreshEvent = myFreshEvent;
}
public void deleteMyevent(){
myFreshEvent.remove(currentMyeventRow);
Myevent temp=em.find(Myevent.class, currentMyeventItem.getId());
em.remove(temp);
em.flush();
em.clear();
}
public int getCurrentMyeventRow() {
return currentMyeventRow;
}
public void setCurrentMyeventRow(int currentMyeventRow) {
this.currentMyeventRow = currentMyeventRow;
}
public Myevent getCurrentMyeventItem() {
return currentMyeventItem;
}
public void setCurrentMyeventItem(Myevent currentMyeventItem) {
this.currentMyeventItem = currentMyeventItem;
}
public Set<Integer> getKeys() {
return keys;
}
public void setKeys(Set<Integer> keys) {
this.keys = keys;
}
@Remove
public void destroy(){}
}
点击删除,同时删除结果集和数据库中的数值,并局部刷新页面
rowKeyVar="row" 传递行号,在结果中相当于ArrayList的位置定义
ajaxKeys="#{myFreshEvent.keysFriend}",传说是定位刷新位置,后台中加private Set<Integer> keys = new HashSet<Integer>();就可以了,目前还不知道实现机制
<f:setPropertyActionListener value="#{friendevent}"
target="#{myFreshEvent.currentMyFriendeventItem}" /> 将value绑定到target,传参的一种方式
<rich:dataTable id="friendEvent" value="#{myFreshEvent.myFriendFreshEvent}" var="friendevent"
rows="20" headerClass="richtableheader" footerClass="tablefoot" rendered="#{not empty myFreshEvent.myFriendFreshEvent}" style="border:none;background-color:#f5f5f5;"
rowKeyVar="row" ajaxKeys="#{myFreshEvent.keysFriend}">
<rich:column style="font-size:14px;border:none;">
<rich:spacer width="20"/>
<h:graphicImage value="../css/pic/lan1.gif"/>
<a href="#{friendevent.url}">#{friendevent.friendid}:#{friendevent.content}</a>
<a4j:commandLink value="删除"
action="#{myFreshEvent.deleteMyFriendevent}" reRender="friendEvent">
<f:setPropertyActionListener value="#{friendevent}"
target="#{myFreshEvent.currentMyFriendeventItem}" />
<f:setPropertyActionListener value="#{row}"
target="#{myFreshEvent.currentMyFriendeventRow}" />
</a4j:commandLink>
</rich:column>
</rich:dataTable>
<rich:datascroller for="friendEvent" id="friendDS" align="left" rendered="#{friendeventList.resultList.size()>20}"></rich:datascroller>
</a4j:form>
package cn.peercoaching.session;
import javax.ejb.Remove;
import javax.ejb.Stateful;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.log.Log;
import org.jboss.seam.international.StatusMessages;
import java.util.*;
import cn.peercoaching.model.*;
/**
*
* @author lurim
*
*/
@Stateful
@Name("myFreshEvent")
public class MyFreshEventBean implements MyFreshEvent
{
@Logger private Log log;
@In StatusMessages statusMessages;
@PersistenceContext
EntityManager em;
private List<Myevent> myFreshEvent=new ArrayList<Myevent>();
private int currentMyeventRow;
private Myevent currentMyeventItem;
private Set<Integer> keys = new HashSet<Integer>();
public void myFreshEvent()
{
// implement your business logic here
log.info("myFreshEvent.myFreshEvent() action called");
statusMessages.add("myFreshEvent");
}
// add additional action methods
public List<Myevent> getMyFreshEvent() {
myFreshEvent=em.createQuery("select myevent from Myevent myevent order by createTime desc").getResultList();
return myFreshEvent;
}
public void setMyFreshEvent(List<Myevent> myFreshEvent) {
this.myFreshEvent = myFreshEvent;
}
public void deleteMyevent(){
myFreshEvent.remove(currentMyeventRow);
Myevent temp=em.find(Myevent.class, currentMyeventItem.getId());
em.remove(temp);
em.flush();
em.clear();
}
public int getCurrentMyeventRow() {
return currentMyeventRow;
}
public void setCurrentMyeventRow(int currentMyeventRow) {
this.currentMyeventRow = currentMyeventRow;
}
public Myevent getCurrentMyeventItem() {
return currentMyeventItem;
}
public void setCurrentMyeventItem(Myevent currentMyeventItem) {
this.currentMyeventItem = currentMyeventItem;
}
public Set<Integer> getKeys() {
return keys;
}
public void setKeys(Set<Integer> keys) {
this.keys = keys;
}
@Remove
public void destroy(){}
}
点击删除,同时删除结果集和数据库中的数值,并局部刷新页面
rowKeyVar="row" 传递行号,在结果中相当于ArrayList的位置定义
ajaxKeys="#{myFreshEvent.keysFriend}",传说是定位刷新位置,后台中加private Set<Integer> keys = new HashSet<Integer>();就可以了,目前还不知道实现机制
<f:setPropertyActionListener value="#{friendevent}"
target="#{myFreshEvent.currentMyFriendeventItem}" /> 将value绑定到target,传参的一种方式