页面模板的标记封装

原创 2006年06月19日 00:06:00

package component.tags;

 

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
import java.util.Vector;
/**
 * <p>页面模板的标记封装</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: </p>
 * @author
 * @version 1.0
 */

public class TemplateSelectTag extends TagSupport{

  //TagLib 属性
   private String mtemplatetype;   //备用 "page"--页面模板  "plugin"--插件模板
   private String mtemplateid;     // 当前选中的nodeid
   private String mselectname;     // select 列表框的名称
   private String mhasdisable;     // 是否禁止选择
   private String mupnodeid;

  // 属性初始化
  public void settemplatetype(String value)
  {
    this.mtemplatetype = value;
  }
  public void settemplateid(String value)
  {
     this.mtemplateid = value;
  }
  public void setselectname(String value)
  {
     this.mselectname = value;
  }

  public void sethasdisable(String value)
  {
     this.mhasdisable = value;
  }
  public void setupnodeid(String value)
  {
    this.mupnodeid = value;
  }

 // 处理标记
 public int doStartTag() throws JspException
 {

   String strReturnSelect="";
   try
   {
     //是否设置为Disable
     if(mhasdisable.equals("true"))
     {
       strReturnSelect="<select name='" + mselectname +"' disabled>/n";
     }
     else
     {
       strReturnSelect="<select name='" + mselectname +"'>/n";
     }
     if(mtemplatetype.equals("page"))
     {
        strReturnSelect += getPageOption();
     }
     if(mtemplatetype.equals("plugin"))
     {
       strReturnSelect += getPluginOption();
     }
     strReturnSelect+="</select>/n";
     pageContext.getOut().print(strReturnSelect);

   }
   catch(java.io.IOException ex)
   {
     throw new JspException(ex.getMessage());
   }
   return SKIP_BODY;
 }

  private String getPageOption()
  {
      // 从数据库加载
      String strReturnSelect="";
      TemplateManager mgr = (TemplateManager)RequestHelper.getBean("templateManager",this.pageContext.getServletContext());
      try
      {
         Vector vpage = new Vector();
         vpage = mgr.loadPageTemplate();
         for(int i=0;i<vpage.size();i++)
         {
            PageTemplate obj = (PageTemplate)vpage.get(i);
            if(mtemplateid.equals(obj.pageid))
            {
              strReturnSelect += "<option value='" + obj.pageid + "' selected>" +
                        obj.name + "</option>/n";
             }
            else
            {
              strReturnSelect += "<option value='" + obj.pageid + "'>" + obj.name +
                    "</option>/n";
            }
         }
      }
      catch(Exception e)
      {
         System.out.print("取页面模板错误:"+e.getMessage());
      }
      return strReturnSelect;
  }

  private String getPluginOption()
  {
    // 从数据库加载
     Node node=new Node();
     node.setNODEID(mupnodeid);
     DbConnection con=null;
     DataAccess da=new DataAccess();
     String strReturnSelect="";
     TemplateManager mgr = (TemplateManager)RequestHelper.getBean("templateManager",this.pageContext.getServletContext());
     String siteId="";
     try
     {
        con = RequestHelper.getConnection(this.pageContext.getServletContext());
        da.select(con,new String[]{"NODEID"},node) ;
        siteId=node.getFULLNAME();
        siteId=siteId.substring(1);
        siteId=siteId.substring(0,siteId.indexOf("/"));
        //System.out.println(siteId);

        Vector vplugin = new Vector();
        vplugin = mgr.loadPlugin();
        String fullName="";
        for(int i=0;i<vplugin.size();i++)
        {
           PubPlugin obj = (PubPlugin)vplugin.get(i);
           //@todo siteid ="4" 作为公共组件判断条件需要修改
           if(siteId.equals(obj.SITEID)||obj.SITEID.equals("4"))
           {
             if (mtemplateid.equals(obj.PLUGINID)) {
               strReturnSelect += "<option value='" + obj.PLUGINID + "' selected>" +
                   obj.PLUGINNAME + "</option>/n";
             }
             else {
               strReturnSelect += "<option value='" + obj.PLUGINID + "'>" +
                   obj.PLUGINNAME +
                   "</option>/n";
             }
           }
        }

     }
     catch(Exception e)
     {
        System.out.print("取插件库错误:"+e.getMessage());
     }
     finally
     {
       con.close();
     }
     return strReturnSelect;
  }
}

POJ 3667 Hotel 线段树lazy标记 (模板~~)

线段树lazy标记
  • neighthorn
  • neighthorn
  • 2016年08月04日 08:55
  • 430

[模板] - 线段树 - Lazy标记 - 单点/区间更新 - 模板

线段树 - Lazy标记 - 单点/区间更新 - 模板目录: 前言 在这篇文章的代码中用到的宏定义 Lazy标记 区间更新 单点更新 模板 例题 1. 前言:  线段树我花了整整两天的时间去啃,进度很...
  • xs18952904
  • xs18952904
  • 2017年05月26日 09:38
  • 193

前端开发---微信小程序中的页面代码中的模板的封装

最近在进行微信小程序中的页面开发,其实在c++或者说是js中都会出现这种情况,就是相同的代码会反复出现,这就是进行一定的封装,封装的好处就是可以是程序中在于减少一定的代码量,并且可是使代码结构更加清晰...
  • luohe1234
  • luohe1234
  • 2017年09月21日 09:57
  • 705

线段树lazy标记1血题

第一个写对的线段树
  • kevin66654
  • kevin66654
  • 2016年04月19日 23:33
  • 302

常用js模板代码-模块化

本例采用面向对象的方式进行封装库函数,对常用的表单验证、注册登录功能进行一些简单的封装。...
  • u013243347
  • u013243347
  • 2016年08月24日 15:03
  • 943

MPLS 标记分配方法

MPLS体系结构中,标记是自动分配的,通过运行标记分配协议 LDP 和相关的增强性能的协议如 CR-LDP、RSVP 和用于 RSVP 的 LSP隧道等来实现的。标记分配的方法和原则分节说明如下: ...
  • KISSMonX
  • KISSMonX
  • 2013年05月30日 16:59
  • 1446

线段树模板 (poj 3468)延迟标记

参考了胡浩大牛的代码风格。#include #define lson l,m,rt
  • Balloons2012
  • Balloons2012
  • 2012年08月18日 11:20
  • 1051

AngularJS提供多种模板加载

AngularJS提供多种模板加载方案。 最基础的为通过预先声明路径的方式,通过Ajax获取。使用诸如gulp-html2js构建工具,将HTML模板转化为js文件使用。使用script标签引入...
  • nanjingshida
  • nanjingshida
  • 2017年05月04日 22:27
  • 486

NEFU 1111 线段树区间更新+懒惰标记

点击打开链接 题意:中文题目不解释思路:就是简单的区间更新,可以在网上看看别人对于懒惰标记的解释,这里不多说了#include #include #include #include #inc...
  • Dan__ge
  • Dan__ge
  • 2016年03月16日 13:42
  • 747

react模板

react模板
  • qq_32584661
  • qq_32584661
  • 2017年05月06日 10:55
  • 347
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:页面模板的标记封装
举报原因:
原因补充:

(最多只允许输入30个字)