package com.zb.servlet;
import
java.io.IOException;
import
java.util.Iterator;
import
java.util.List;
import
javax.servlet.
jsp.JspException;
import
javax.servlet.
jsp.tagext.SimpleTagSupport;
import org.hibernate.Session;
import com.zb.hibernate.entity.Testuser;
import com.zb.hibernate.util.HibernateSessionFactory;
public class Tag extends SimpleTagSupport{
private String id="";
private String userName="";
private int page=1;
private int pageSize=1;
public void doTag() throws JspException,IOException{
getJspContext().getOut().write("Find UserId: "+id+" ok");
String un=getUserName();
getJspContext().setAttribute("username", "UserName:"+un);
getJspContext().setAttribute("userid", "UserId:"+id);
getJspContext().setAttribute("pagelink", getPageLink());
Iterator it=getUserList().iterator();
while(it.hasNext())
{
Testuser tu=(Testuser)it.next();
getJspContext().setAttribute("user", tu);
getJspBody().invoke(null);
}
}
public void setId(String id) {
this.id = id;
}
public void setUserName(String userName) {
this.userName = userName;
}
public List getUserList()
{
List it=null;
int start=(page-1)*pageSize;
Session session=HibernateSessionFactory.getSession();
String hql="from Testuser t order by t.id desc";
it=session.createQuery(hql).setFirstResult(start).setMaxResults(pageSize).list();
return it;
}
public String getUserName()
{
Iterator it=null;
String uname="No result!";
Session session=HibernateSessionFactory.getSession();
String hql="from Testuser t where t.id="+id+" order by t.id desc";
it=session.createQuery(hql).list().iterator();
if(it.hasNext())
{
Testuser tu=(Testuser)it.next();
uname=tu.getUsername();
}
return uname;
}
public void setPage(int page) {
if(page==0)
{
this.page = 1;
}else
{
this.page = page;
}
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public String getPageLink()
{
String hql="select count(*) from Testuser";
String plink="";
Session session=HibernateSessionFactory.getSession();
int recordCount=((Number)session.createQuery(hql).uniqueResult()).intValue();
int pageCount=(recordCount+pageSize-1)/pageSize;
for(int i=1;i<=pageCount;i++)
{
plink=plink+"<a href=testusertld.
jsp?page="+i+">"+i+"</a>"+" ";
}
return plink;
}
}