<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Denis's Java Library

    The only documentation is the code itself

    自定義標簽獲取struts中action的全部路徑(原創)

          由于項目里面由需要一個form可以提交多個action(本來可以用 dispatch值來實現,后來考慮到要使用validator框架驗證)。后來考慮的方案為使用js來控制form的流向,例如
          
    form.action='/bookstore/checkId.do'

    不過新的問題來了!如何能不用hardcode而拿到我要的action的實際路徑呢?比如我定義的struts-config文件里面的action是 
    path="/checkId"
    但是實際解釋后的path是:
    action='/bookstore/checkId.do'
    前 綴和后面的后綴.do都是根據你的項目部署的路徑和你在web.xml中配置的mapping的后綴有關系,如果我把內容寫死到jsp中那以后我要是想把 checkId.do改成checkId.action那就要更改jsp,由于struts本來提供的幾個taglib里面的

    <html:form action="/checkId" >

    綜合了一下決定還是自己寫個taglib來實現,其實只需要照著struts 中的 FormTag.java 文件依葫蘆畫瓢就可以了,一下為本人的代碼部分

    StrutsActionCustomTag.java
    package com.denis.framework.common.taglib.strutsActionExt;

    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.tagext.TagSupport;

    import org.apache.struts.taglib.TagUtils;

    public class StrutsActionCustomTag extends TagSupport {

        
    protected String actionName = null;
        
        
    public String getActionName() {
            
    return actionName;
        }


        
    public void setActionName(String actionName) {
            
    this.actionName = actionName;
        }


        
    public int doStartTag() throws JspException {

            StringBuffer results 
    = new StringBuffer();
            HttpServletResponse response 
    =
                (HttpServletResponse) 
    this.pageContext.getResponse();
            
            results.append(response.encodeURL( TagUtils.getInstance().getActionMappingURL( 
    this.actionName , this.pageContext)) );

            TagUtils.getInstance().write(pageContext, results.toString());

            
    return (EVAL_BODY_INCLUDE);
        }


        
    public void release() {
            
    super.release();
            
    this.actionName = null ;

        }

    }


    tld定義部分

    framework-struts.tld
    <?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
    <taglib>

    <tlibversion>1.0</tlibversion>
    <jspversion>1.1</jspversion>
    <shortname>framework</shortname>
    <uri>http://www.denisFramework.org/Framework-Tag</uri>
    <tag>
    <name>getActionUrl</name>
    <tagclass>com.denis.framework.common.taglib.strutsActionExt.StrutsActionCustomTag</tagclass>
    <bodycontent>empty</bodycontent>
    <attribute>
    <name>actionName</name>
    <required>true</required>
    <rtexprvalue>true</rtexprvalue>
    </attribute>
    </tag>

    </taglib>


    ok ! 直接在jsp中如下使用即可取到action的真正路徑

     
    <%@ page language="java"%>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%> 
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
    <%@ taglib uri="/WEB-INF/framework-struts.tld" prefix="framework" %>
     
    <html> 
        
    <head>
            
    <title>JSP for loginForm form</title>
        
    </head>
        
    <body>
            
    <framework:getActionUrl actionName="login" />
            
    <html:form action="/login">
                name : 
    <html:text property="name"/><html:errors property="name"/><br/>
                password : 
    <html:password property="password"/><html:errors property="password"/><br/>
                
    <html:submit/><html:cancel/>
            
    </html:form>
        
    </body>
    </html>


    大家要是有更好的解決方法希望能指正!謝謝!

    posted on 2005-11-10 13:24 DenisLing 閱讀(1134) 評論(0)  編輯  收藏 所屬分類: struts


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: mm1313亚洲精品国产| 国产网站免费观看| 久久精品国产精品亚洲色婷婷| 一级A毛片免费观看久久精品| 国产最新凸凹视频免费| 粉色视频成年免费人15次| 免费播放特黄特色毛片| 免费福利资源站在线视频| 国产国拍亚洲精品福利 | 亚洲乱码国产一区三区| 中国性猛交xxxxx免费看| 国产亚洲婷婷香蕉久久精品| 黄色网站软件app在线观看免费| 国产成人精品日本亚洲| 久久国产乱子伦免费精品| 91嫩草亚洲精品| 日本午夜免费福利视频| 一级毛片在播放免费| 日本红怡院亚洲红怡院最新| 99蜜桃在线观看免费视频网站| 亚洲免费电影网站| 日韩一区二区三区免费体验| 四虎影视永久在线精品免费| 亚洲精品卡2卡3卡4卡5卡区| 亚洲免费网站在线观看| 亚洲色偷偷色噜噜狠狠99网| 亚洲精品成人在线| 99视频在线免费| 在线观看亚洲免费视频| 日本红怡院亚洲红怡院最新| 国产人在线成免费视频| 黄色大片免费网站| 亚洲一区二区三区四区在线观看| 91嫩草国产在线观看免费| 免费中文字幕视频| 亚洲精品成人久久| 五月天婷亚洲天综合网精品偷| a级毛片毛片免费观看永久| jlzzjlzz亚洲jzjzjz| 亚洲日韩人妻第一页| **aaaaa毛片免费同男同女|