處理參數傳遞的jsp標簽

          一、定義標簽類

          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: 參數傳遞標簽</p>
          ?* <p>Description: 統一處理頁面間的參數傳遞</p>
          ?* @author Administrator
          ?*
          ?*/
          public class ddd extends TagSupport {
          ? private String paraNames = null;? //參數串,以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 ;
          ? }
          ?
          ? /**
          ?? * 處理參數傳遞
          ?? * 規則:
          ?? * 1,如果不能在request范圍內找到相應name的參數,設置值為WebConfig.NULL=""
          ?? * 2,如果atrribute,parameter中同時存在同名的參數,以attribute中為主
          ?? * 3,將所有jsp頁面所需的參數轉換為attribute保存,在jsp頁面中通過<bean:write name="attributeName" />調用
          ?? * 4,涉及處理的參數包括: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);
          ??? }
          ? }

          }
          相關類
          package com.taglib.pageparameter;

          public class WebConfig{
          ???public static final String SEPARATE=";";//前臺web參數間隔離符號
          ???public final static String NULL = "";? //頁面間參數傳遞,name為空時設置的缺省值
          }

          二、標簽定義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中加載標簽
          四、jsp頁面調用

          <%@ 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 閱讀(982) 評論(0)  編輯  收藏 所屬分類: java基礎

          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 阜阳市| 乌拉特前旗| 平山县| 溧水县| 林芝县| 巴马| 新竹县| 天镇县| 车致| 若羌县| 嘉禾县| 灌南县| 喀喇沁旗| 丹凤县| 巨野县| 哈尔滨市| 剑河县| 吴江市| 古蔺县| 苍南县| 长顺县| 元朗区| 福州市| 揭西县| 南开区| 北票市| 沅江市| 德庆县| 壤塘县| 亚东县| 贵州省| 塔城市| 天津市| 太仆寺旗| 古交市| 太保市| 兴文县| 郎溪县| 霍邱县| 印江| 贵港市|