📄 orderimgtag.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 + -