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

📄 orderimgtag.java

📁 OBPM是一个开源
💻 JAVA
字号:
package cn.myapps.base.web.tag;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;

import cn.myapps.util.sequence.Sequence;

/**
 * The page tag for sorting in list page.
 */
public class OrderImgTag extends TagSupport {

	private String field;

	private String sid;

	private String css;

	private static int SORT_NONE = 0;

	private static int SORT_ASC = 1;

	private static int SORT_DESC = 2;

	/**
	 * @param field
	 *            The field
	 */
	public void setField(String field) {
		this.field = field;
	}

	public int doStartTag() throws JspException {
		StringBuffer html = new StringBuffer();

		try {
			sid = Sequence.getSequence();
		} catch (Exception ex) {
			throw new JspException(ex.getMessage());
		}

		html.append("<a id='order" + sid + "' style='cursor:hand' ");
		if (css != null && css.trim().length() > 0)
			html.append("class=" + css);
		html.append(">");

		try {
			pageContext.getOut().print(html.toString());
		} catch (Exception ex) {
			ex.printStackTrace();
		}

		return EVAL_BODY_INCLUDE;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see javax.servlet.jsp.tagext.Tag#doEndTag()
	 */
	public int doEndTag() throws JspException {
		StringBuffer html = new StringBuffer();

		HttpServletRequest request = null;
		if (pageContext.getRequest() instanceof HttpServletRequest) {
			request = (HttpServletRequest) pageContext.getRequest();
		}

		html.append("</a>");

		int sort = getSort();

		if (sort == SORT_ASC) {
			if (request != null) {
				html.append("<img src='" + request.getContextPath()
						+ "/resource/images/up.gif' >");
			} else {
				html.append("(A)");
			}
		}

		if (sort == SORT_DESC) {
			if (request != null) {
				html.append("<img src='" + request.getContextPath()
						+ "/resource/images/down.gif' >");
			} else {
				html.append("(D)");
			}
		}

		
		html.append("<input id='orderby" + sid
				+ "' type='hidden' name='_orderby1' value='" + getCurrentOrder()
				+ "'>");
		html.append("<input type='hidden' id='_orderby' name='_orderby' value='" + getCurrentOrder()+ "'/>");
		html.append("<script>document.all('order" + sid
				+ "').onclick=new Function(\"document.all('orderby" + sid
				+ "').value=\'" + getNextOrder()
				+ "\';if(document.all('_orderby').length>=1){document.all('_orderby')[0].value=\'"+getNextOrder()+"\';}else{document.all('_orderby').value=\'"+getNextOrder()+"\';};document.forms[0].submit();\")</script>");
		
		try {
			pageContext.getOut().print(html.toString());
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return EVAL_PAGE;
	}

	/**
	 * Get the sort Type.
	 * 
	 * @return The sort Type.
	 */
	private int getSort() {
		HttpServletRequest request = (HttpServletRequest) pageContext
				.getRequest();

		String[] orderbys = request.getParameterValues("_orderby1");
		int sort = SORT_NONE;

		for (int i = 0; orderbys != null && i < orderbys.length; i++) {
			String orderby = orderbys[i];
			if (orderby == null || orderby.equals(""))
				continue;

			if (orderby.trim().equalsIgnoreCase(field)) {
				sort = SORT_ASC;
			} else if (orderby.trim().equalsIgnoreCase(field + " desc")) {
				sort = SORT_DESC;
			}
		}
		return sort;
	}

	/**
	 * Get the current order.
	 * 
	 * @return The current order.
	 */
	private String getCurrentOrder() {
		int sort = getSort();
		String order = "";

		if (sort == SORT_NONE)
			order = "";

		if (sort == SORT_ASC)
			order = field;

		if (sort == SORT_DESC)
			order = field + " desc";

		return order;
	}

	/**
	 * Get the next order
	 * 
	 * @return The next order.
	 */
	private String getNextOrder() {
		int sort = getSort();
		String order = "";

		if (sort == SORT_NONE)
			order = field;

		if (sort == SORT_ASC)
			order = field + " desc";

		if (sort == SORT_DESC)
			order = "";

		return order;
	}

	public String getCss() {
		return css;
	}

	public void setCss(String css) {
		this.css = css;
	}

}

⌨️ 快捷键说明

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