⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pagerrenderer.java

📁 我自己写的一个大批量数据分页软件,和大家交流交流
💻 JAVA
字号:
package cn.org.ccs.ccse.pager;import java.io.IOException;import java.util.Map;import javax.faces.component.UIComponent;import javax.faces.component.UIData;import javax.faces.component.UIForm;import javax.faces.context.FacesContext;import javax.faces.context.ResponseWriter;import javax.faces.el.ValueBinding;import javax.faces.render.Renderer;public class PagerRenderer extends Renderer {	private int first;	private int itemcount;	public void encodeBegin(FacesContext context, UIComponent component)			throws IOException {		int leftspacing;		int centerspacing;		int rightspacing;		String id = component.getClientId(context);		UIComponent parent = component;		while (!(parent instanceof UIForm))			parent = parent.getParent();		String formId = parent.getClientId(context);		UIComponent comp = component;		while (!(comp instanceof UIData))			comp = comp.getParent();		comp = (UIData)comp;		ResponseWriter writer = context.getResponseWriter();		String imgFirst = (String) get(context, component, "imgFirst");		String imgNext = (String) get(context, component, "imgNext");		String imgLast = (String) get(context, component, "imgLast");		String imgBefore = (String) get(context, component, "imgBefore");		String imgFirstHidden = (String) get(context, component, "imgFirstHidden");		String imgNextHidden = (String) get(context, component, "imgNextHidden");		String imgLastHidden = (String) get(context, component, "imgLastHidden");		String imgBeforeHidden = (String) get(context, component, "imgBeforeHidden");		Integer itemcounts = (Integer) get(context, component, "itemcount");		if (itemcounts != null)			itemcount = Integer.valueOf(itemcounts);		else			itemcount = 0;		Integer leftspacings = (Integer) get(context, component, "leftspacing");		if (leftspacings != null)			leftspacing = Integer.valueOf(leftspacings);		else			leftspacing = 0;		Integer centerspacings = (Integer) get(context, component, "centerspacing");		if (centerspacings != null)			centerspacing = Integer.valueOf(centerspacings);		else			centerspacing = 0;		Integer rightspacings = (Integer) get(context, component, "rightspacing");		if (rightspacings != null)			rightspacing = Integer.valueOf(rightspacings);		else			rightspacing = 0;		Integer firsts = (Integer) get(context, component, "first");		if (firsts != null)			first = firsts.intValue();		else			first = 0;		Integer a = (Integer) get(context, component, "showpages");		int showpages;		if (a == null) {			showpages = 1;		} else {			showpages = a.intValue();		}		// find the component with the given ID		int current = first / showpages + 1;		if (showpages <= 0)			showpages = itemcount;		int pages = (itemcount - 1) / showpages + 1;		writer.startElement("table", component);		writer.startElement("tr", component);		writePage(writer, component, pages, current,showpages,leftspacing,centerspacing);		if (first == 0) {			if (imgFirstHidden != null)				writeLinkImgOver(writer, component, formId, id, "<", 						imgFirstHidden);			else				writeLinkOver(writer, component, formId, id, "<",						 "第一页");			if (imgBeforeHidden != null)				writeLinkImgOver(writer, component, formId, id, "<<",						imgBeforeHidden);			else				writeLinkOver(writer, component, formId, id, "<<",						 "上一页");		} else {			if (imgFirst != null)				writeLinkImg(writer, component, formId, id, "<", 						imgFirst);			else				writeLink(writer, component, formId, id, "<",						"第一页");			if (imgBefore != null)				writeLinkImg(writer, component, formId, id, "<<",						imgBefore);			else				writeLink(writer, component, formId, id, "<<", 						"上一页");		}		if (first + showpages >= itemcount) {			if (imgNextHidden != null)				writeLinkImgOver(writer, component, formId, id, ">>", 						imgNextHidden);			else				writeLinkOver(writer, component, formId, id, ">>",						 "下一页");			if (imgLastHidden != null)				writeLinkImgOver(writer, component, formId, id, ">",						imgLastHidden);			else				writeLinkOver(writer, component, formId, id, ">",						 "最后一页");		} else {			if (imgNext != null)				writeLinkImg(writer, component, formId, id, ">>",						imgNext);			else				writeLink(writer, component, formId, id, ">>",						"下一页");			if (imgLast != null)				writeLinkImg(writer, component, formId, id, ">", 						imgLast);			else				writeLink(writer, component, formId, id, ">",						"最后一页");		}		writeLinkSelect(writer, component, formId, id,				pages, showpages);		// hidden field to hold result		writeHiddenField(writer, component, id);		writer.startElement("td", component);		writer.writeAttribute("width", rightspacing+"px", null);		writer.endElement("td");		writer.endElement("tr");		writer.endElement("table");	}	private void writeLink(ResponseWriter writer, UIComponent component,			String formId, String id, String value, 			String text) throws IOException {		writer.startElement("td", null);		writer.writeAttribute("align", "right", null);		writer.writeAttribute("valign", "middle", null);		writer.writeAttribute("width", "80px", null);		writer.startElement("a", component);		writer.writeAttribute("href", "#", null);		writer.writeAttribute("onclick", onclickCode(formId, id, value), null);		writer.startElement("font", component);		writer.writeAttribute("size", "2", null);		writer.writeText(text, null);		writer.endElement("font");		writer.endElement("a");		writer.endElement("td");	}	private void writeLinkOver(ResponseWriter writer, UIComponent component,			String formId, String id, String value, 			String text) throws IOException {		writer.startElement("td", null);		writer.writeAttribute("width", "80px", null);		writer.writeAttribute("align", "right", null);		writer.writeAttribute("valign", "middle", null);		writer.startElement("font", component);		writer.writeAttribute("size", "2", null);		writer.writeText(text, null);		writer.endElement("font");		writer.endElement("td");	}	private void writeLinkImg(ResponseWriter writer, UIComponent component,			String formId, String id, String value,			String src) throws IOException {		writer.startElement("td", null);		writer.writeAttribute("align", "right", null);		writer.writeAttribute("width", "15px", null);		writer.writeText(" ", null);		writer.writeText(" ", null);		writer.startElement("a", component);		writer.writeAttribute("href", "#", null);		writer.writeAttribute("onclick", onclickCode(formId, id, value), null);		writer.startElement("img", null);		//writer.writeAttribute("onmouseout",			//	"event.srcElement.style.border=\"0px\"", null);		//writer.writeAttribute("onmouseover",			//	"event.srcElement.style.border=\"1px solid #777777\"", null);		writer.writeAttribute("border", "0", null);		writer.writeAttribute("src", src, null);		writer.endElement("a");		writer.endElement("td");	}	private void writeLinkImgOver(ResponseWriter writer, UIComponent component,			String formId, String id, String value,			String src) throws IOException {		writer.startElement("td", null);		writer.writeAttribute("align", "right", null);		writer.writeAttribute("width", "15px", null);		writer.startElement("img", null);		writer.writeAttribute("src", src, null);		writer.endElement("td");	}	private void writeLinkSelect(ResponseWriter writer, UIComponent component,			String formId, String id, int pages,			int showpages) throws IOException {		writer.startElement("td", component);		writer.writeAttribute("align", "right", null);		writer.startElement("select", component);		String value = "";		writer.writeAttribute("name", "selectName", null);		writer.writeAttribute("onchange", onclickSelectCode(formId, id, null),				"onchange");		for (int i = 1; i < pages + 1; i++) {			value = i + "";			writer.startElement("font", component);			writer.writeAttribute("size", 1, null);			writer.startElement("option", component);			writer.writeAttribute("value", value, null);			if ((first / showpages + 1) == i)				writer.writeAttribute("selected", "selected", null);						writer.writeText("第" + value + "页", null);						writer.endElement("option");			writer.endElement("font");		}		writer.endElement("select");		writer.endElement("td");	}	private String onclickCode(String formId, String id, String value) {		StringBuffer buffer = new StringBuffer();		buffer.append("document.forms['"+formId+"'].target='_self';");		buffer.append("document.forms[");		buffer.append("'");		buffer.append(formId);		buffer.append("'");		buffer.append("]['");		buffer.append(id);		buffer.append("'].value='");		buffer.append(value);		buffer.append("';");		buffer.append(" document.forms[");		buffer.append("'");		buffer.append(formId);		buffer.append("'");		buffer.append("].submit()");		buffer.append("; return false;");		return buffer.toString();	}	private String onclickSelectCode(String formId, String id, String value) {		StringBuffer buffer = new StringBuffer();		buffer.append("document.forms['"+formId+"'].target='_self';");		buffer.append("document.forms[");		buffer.append("'");		buffer.append(formId);		buffer.append("'");		buffer.append("]['");		buffer.append(id);		buffer.append("'].value=");		buffer.append("this.options[this.selectedIndex].value;");		buffer.append(" document.forms[");		buffer.append("'");		buffer.append(formId);		buffer.append("'");		buffer.append("].submit();");		buffer.append(" return false;");		return buffer.toString();	}	private void writeHiddenField(ResponseWriter writer, UIComponent component,			String id) throws IOException {		writer.startElement("td", component);		writer.startElement("input", component);		writer.writeAttribute("type", "hidden", null);		writer.writeAttribute("name", id, null);		writer.endElement("input");		writer.endElement("td");	}	private void writePage(ResponseWriter writer, UIComponent component,			int pagesize, int currentPage,int showpages,int leftspacing,int centerspacing) throws IOException {		writer.startElement("td", component);		writer.writeAttribute("width", leftspacing+"px", null);		writer.endElement("td");		writer.startElement("td", component);		writer.writeAttribute("width", "300px", null);		writer.writeAttribute("align", "left", null);		writer.writeAttribute("valign", "bottom", null);		writer.startElement("font", component);		writer.writeAttribute("size", "2", null);		writer.writeText("共" + pagesize + "页", null);		writer.writeText("        ",null);		writer.writeText("第" + currentPage + "页", null);		writer.writeText("           ",null);		writer.writeText("共"+itemcount+"条", null);		writer.writeText("     ", null);		writer.writeText("每页"+showpages+"条", null);		writer.endElement("font");		writer.endElement("td");		writer.startElement("td", component);		writer.writeAttribute("width", centerspacing+"px", null);		writer.endElement("td");	}	public void decode(FacesContext context, UIComponent component) {		String id = component.getClientId(context);		Map parameters = context.getExternalContext().getRequestParameterMap();		String response = (String) parameters.get(id);		Integer a = (Integer) get(context, component, "showpages");		int showpages = 0;		int pages=1;		if (a != null) {			showpages = a.intValue();		}		if (showpages <= 0)			showpages = itemcount;		if(showpages>0)			pages = (itemcount - 1) / showpages + 1;		if (response.equals("<"))			first = 0;		else if (response.equals(">"))			first = (pages - 1) * showpages;		else if (response.equals("<<"))			first = first - showpages;		else if (response.equals(">>"))			first = first + showpages;		else if(response==null||response.equals("")){					}		else {			int page = Integer.parseInt(response);			first = (page - 1) * showpages;		}		if (first + showpages > itemcount)			first = (pages - 1) * showpages;		if (first < 0)			first = 0;		ValueBinding vb = component.getValueBinding("first");		vb.setValue(context, first);	}	private static Object get(FacesContext context, UIComponent component,			String name) {		ValueBinding binding = component.getValueBinding(name);		if (binding != null)			return binding.getValue(context);		else			return component.getAttributes().get(name);	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -