definitiontag.java

来自「一个简约的个人网上书店的源码」· Java 代码 · 共 61 行

JAVA
61
字号

package mytaglib;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.TagSupport;
import java.util.*;

public class DefinitionTag extends TagSupport {
   private         String definitionName = null;
   private         String screenId;

   public DefinitionTag() {
      super();
   }
   public void setName(String name) {
      this.definitionName = name;
   }
   public void setScreenId(String screenId) {
      this.screenId = screenId;
   }
   public int doStartTag() {
      HashMap screens = null;

      screens = (HashMap) pageContext.getAttribute("screens", pageContext.APPLICATION_SCOPE);
      if (screens == null)
      	pageContext.setAttribute("screens", new HashMap(), pageContext.APPLICATION_SCOPE);
      return EVAL_BODY_INCLUDE;
   }
   public int doEndTag()throws JspTagException {
      try {
         Definition definition = new Definition();
         HashMap screens = null;
         ArrayList parameters = null;
         TagSupport screen = null;

         screens = (HashMap) pageContext.getAttribute("screens", pageContext.APPLICATION_SCOPE);
         if (screens != null) {
            parameters = (ArrayList) screens.get(screenId);
          }

          Iterator	ir = null;

         if (parameters != null)
            ir = parameters.iterator();

         while ((ir != null) && ir.hasNext())
            definition.setParam((Parameter) ir.next());

         // put the definition in the page context
         pageContext.setAttribute(definitionName, definition);
      } catch (Exception ex) {
         ex.printStackTrace();
      }
      return EVAL_PAGE;
   }
   public void release() {
      definitionName = null;
      screenId = null;
      super.release();
   }
}

⌨️ 快捷键说明

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