package com.crmprj.util;
import java.io.IOException;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
import com.crmprj.entity.PageResult;
import com.crmprj.struts.form.BaseForm;
public class PageUtil extends TagSupport {
private String formName = null;
public String getFormName() {
return formName;
}
public void setFormName(String formName) {
this.formName = formName;
}
@Override
public int doEndTag() throws JspException {
ServletRequest request = this.pageContext.getRequest();
HttpSession session = this.pageContext.getSession();
JspWriter out = this.pageContext.getOut();
if(null != formName && !"".equals(formName))
{
Object actionForm =request .getAttribute(formName);
if(null == actionForm)
{
actionForm =session .getAttribute(formName);
}
BaseForm baseForm = (BaseForm)actionForm;
PageResult pageResult = baseForm.getPageResult();
StringBuffer pageMsg = new StringBuffer();
pageMsg.append("<br><div style='width:90%;text-align: center; '>");
pageMsg.append("共"+pageResult.getRecordCount()+"条记录 每页显示<input style='text-align: center; ' name='pageResult.pageSize' value='"+pageResult.getPageSize()+"'size='3' />条 第<input style='text-align: center; ' name='pageResult.pageNo' value='"+pageResult.getPageNo()+"' size='3' />页 / 共"+pageResult.getPageCount()+"页 ");
pageMsg.append("<a href='javascript:page_first();'>第一页</a>" +
" <a href='javascript:page_pre();'>上一页</a> " +
"<a href='javascript:page_next();'>下一页</a>" +
" <a href='javascript:page_last();'>最后一页</a> " +
"<input type='button' onClick='javascript:page_go();' title='搜索' value='GO' style='cursor:hand;'>");
pageMsg.append("</div><br>");
pageMsg.append("<div style='width:800px;text-align: left; '>");
pageMsg.append("<script>");
pageMsg.append("function page_go(){ " +
"page_validate(); " +
"document.forms[0].submit(); }");
pageMsg.append("function page_first(){ " +
"document.forms[0].elements['pageResult.pageNo'].value = 1; " +
"document.forms[0].submit();}");
pageMsg.append("function page_pre(){ " +
"var pageNo = document.forms[0].elements['pageResult.pageNo'].value; " +
"document.forms[0].elements['pageResult.pageNo'].value = parseInt(pageNo) - 1;" +
"page_validate();" +
"document.forms[0].submit();}");
pageMsg.append("function page_next(){ " +
"var pageNo = document.forms[0].elements['pageResult.pageNo'].value; " +
"document.forms[0].elements['pageResult.pageNo'].value = parseInt(pageNo) + 1; " +
"page_validate();" +
"document.forms[0].submit();" +
"}");
pageMsg.append("function page_last(){ " +
"document.forms[0].elements['pageResult.pageNo'].value = "+pageResult.getPageCount()+"; " +
"document.forms[0].submit();" +
"}");
pageMsg.append("function page_validate(){ " +
"var pageTotal = "+pageResult.getPageCount()+";" +
"var pageNo = document.forms[0].elements['pageResult.pageNo'].value; " +
"if (pageNo<1)pageNo=1; " +
"if (pageNo>pageTotal)pageNo=pageTotal; " +
"document.forms[0].elements['pageResult.pageNo'].value = pageNo; " +
"var recTotal = "+pageResult.getRecordCount()+"; " +
"var pageSize = document.forms[0].elements['pageResult.pageSize'].value; " +
"if (pageSize<1)pageSize=10; " +
"if(pageSize>recTotal)pageSize=recTotal; " +
"document.forms[0].elements['pageResult.pageSize'].value = pageSize; " +"}");
pageMsg.append("</script>");
pageMsg.append("</div>");
try {
out.write(pageMsg.toString());
out.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return EVAL_PAGE;
}
}