處理參數(shù)傳遞的jsp標(biāo)簽

          一、定義標(biāo)簽類

          package com.taglib.pageparameter;

          import javax.servlet.ServletRequest;
          import javax.servlet.jsp.tagext.TagSupport;
          import javax.servlet.jsp.*;
          import javax.servlet.jsp.tagext.*;
          /**
          ?* <p>Title: 參數(shù)傳遞標(biāo)簽</p>
          ?* <p>Description: 統(tǒng)一處理頁(yè)面間的參數(shù)傳遞</p>
          ?* @author Administrator
          ?*
          ?*/
          public class ddd extends TagSupport {
          ? private String paraNames = null;? //參數(shù)串,以WebConfig.SEPARATE分隔

          ? public void setParaNames(String paraNames){
          ??? this.paraNames = paraNames ;
          ? }
          ? public String getParaNames(){
          ??? return this.paraNames;
          ? }

          ? public int doStartTag(){
          ?? if(this.paraNames==null)
          ??? return EVAL_BODY_INCLUDE;
          ??? String[] paras = this.paraNames.split(WebConfig.SEPARATE);???
          ??? this.transactPara(pageContext,paras);
          ??? return EVAL_BODY_INCLUDE ;
          ? }

          ? public int doEndTag(){
          ??? return EVAL_PAGE ;
          ? }
          ?
          ? /**
          ?? * 處理參數(shù)傳遞
          ?? * 規(guī)則:
          ?? * 1,如果不能在request范圍內(nèi)找到相應(yīng)name的參數(shù),設(shè)置值為WebConfig.NULL=""
          ?? * 2,如果atrribute,parameter中同時(shí)存在同名的參數(shù),以attribute中為主
          ?? * 3,將所有jsp頁(yè)面所需的參數(shù)轉(zhuǎn)換為attribute保存,在jsp頁(yè)面中通過<bean:write name="attributeName" />調(diào)用
          ?? * 4,涉及處理的參數(shù)包括:String[] args
          ?? * @param pageContext PageContext
          ?? * @param args String[]
          ?? */
          ? public void transactPara(PageContext pageContext,String[] args){
          ??? for (int i = args.length ; --i >= 0;) {
          ????? ServletRequest request = pageContext.getRequest() ;
          ????? Object attr=(String)request.getAttribute(args[i]);
          ????? String para=request.getParameter(args[i]);
          ????? if(attr==null)
          ??????? request.setAttribute(args[i], para==null?WebConfig.NULL:para);
          ??? }
          ? }

          }
          相關(guān)類
          package com.taglib.pageparameter;

          public class WebConfig{
          ???public static final String SEPARATE=";";//前臺(tái)web參數(shù)間隔離符號(hào)
          ???public final static String NULL = "";? //頁(yè)面間參數(shù)傳遞,name為空時(shí)設(shè)置的缺省值
          }

          二、標(biāo)簽定義tld文件
          PageParameter.tld

          <?xml version="1.0" encoding="ISO-8859-1" ?>
          <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
          "<taglib>
          ?<tlibversion>1.0</tlibversion>
          ?<jspversion>1.1</jspversion>
          ?<shortname>PageParameter</shortname>
          ?<info></info>

          ? <tag>
          ??? <name>ParameterTransact</name>
          ??? <tagclass>com.taglib.pageparameter.PageParameterTag</tagclass>
          ??? <bodycontent>empty</bodycontent>
          ??? <info></info>
          ? ?<attribute>
          ????? <name>paraNames</name>
          ????? <required>true</required>
          ????? <rtexprvalue>true</rtexprvalue>
          ?? </attribute>
          ?</tag>
          </taglib>

          三、在web.xml中加載標(biāo)簽
          四、jsp頁(yè)面調(diào)用

          <%@ page import="package com.taglib.pageparameter.WebConfig" %>
          <%@ taglib uri="/WEB-INF/Archive/PageParameter.tld" prefix="PageParameter" %>

          <PageParameter:ParameterTransact paraNames='<%="urlSQL"+WebConfig.SEPARATE+"page"%>'/>

          posted on 2006-08-29 13:24 hardson 閱讀(987) 評(píng)論(0)  編輯  收藏 所屬分類: java基礎(chǔ)

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 通榆县| 武穴市| 澄城县| 无棣县| 绥阳县| 苏尼特右旗| 独山县| 渝中区| 双峰县| 德惠市| 贡嘎县| 剑川县| 内丘县| 东源县| 藁城市| 嵊州市| 兴城市| 镇江市| 文水县| 韶山市| 宁明县| 神农架林区| 江川县| 汝州市| 弋阳县| 清徐县| 马龙县| 鄂托克前旗| 阳高县| 三台县| 德清县| 白银市| 荃湾区| 长丰县| 民丰县| 兴和县| 滁州市| 罗山县| 青铜峡市| 鹰潭市| 蒲江县|