?? inittag.java
字號:
package com.bitmechanic.listlib;import javax.servlet.jsp.PageContext;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.TagSupport;import javax.servlet.jsp.tagext.Tag;public class InitTag extends TagSupport { public static final String TAG_KEY = "listlib_tag_"; public static final String OFFSET_KEY = "listlib_offset"; private String _name, _class; private int _max; private ListContainer _lc; private ListCreator _creator; public static String getTagKey(String name) { return TAG_KEY + name; } public static InitTag getListTag(TagSupport child, PageContext ctx, String name) throws JspException { InitTag tag; if (name == null) { tag = (InitTag)findAncestorWithClass(child, InitTag.class); if (tag == null) { throw new JspException("No InitTag found on this page"); } } else { tag = (InitTag)ctx.getAttribute(getTagKey(name)); if (tag == null) { throw new JspException("No InitTag found with name: " + name); } } return tag; } public void setName(String name) { _name = name; } public void setClass(String clazz) { _class = clazz; } public void setListCreator(String creator) { _creator = (ListCreator)pageContext.getAttribute(creator); } public void setMax(int max) { _max = max; } public ListContainer getList() throws JspException { return _lc; } public int doStartTag() throws JspException { if (_creator == null) { try { Class c = Class.forName(_class); _creator = (ListCreator)c.newInstance(); } catch(Exception e) { throw new JspException("Unable to instantiate: " + _class, e); } } int offset = 0; String offsetStr = pageContext.getRequest().getParameter(OFFSET_KEY); if (offsetStr != null) { try { offset = Integer.parseInt(offsetStr); } catch(Exception e) { // squelch.. use starting offset by default. } } try { _lc = _creator.execute(pageContext, offset, _max); } catch(Exception e) { _creator = null; throw new JspException("Unable to load list: " + e.getMessage(),e); } _lc.setMax(_max); _lc.setOffset(offset); if (_name != null) { pageContext.setAttribute(getTagKey(_name), this); pageContext.setAttribute(_name, getList()); } _creator = null; return EVAL_BODY_INCLUDE; } public int doEndTag() throws JspException { return EVAL_PAGE; } public void release() { super.release(); _name = _class = null; _lc = null; _max = 20; _creator = null; }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -