處理參數傳遞的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 閱讀(981) 評論(0)  編輯  收藏 所屬分類: java基礎

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

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 长沙市| 丰城市| 大关县| 北流市| 根河市| 高安市| 庆阳市| 南华县| 罗田县| 巨野县| 抚顺县| 砚山县| 寻乌县| 张家川| 周口市| 龙江县| 扶绥县| 河津市| 吉隆县| 讷河市| 赤水市| 内丘县| 翁源县| 香格里拉县| 沙田区| 浦江县| 江门市| 射洪县| 金昌市| 聂荣县| 达尔| 台湾省| 伊通| 丰宁| 四川省| 湖南省| 榆社县| 前郭尔| 景东| 长沙县| 英吉沙县|