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

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

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

    posts - 431,  comments - 344,  trackbacks - 0
    肖菁
    軟件工程師

    [文章摘要] Struts tiles中提供了基于模版的頁面組裝框架,然而模版中需要包含.do文件的內容時,我們遇到了麻煩,本文中作者給出了一種簡單的方式來解決這個問題。

    [關鍵詞] Struts Tiles

    1  問題描述

    我們在Web應用中使用Struts Tiles時,如果被組裝的內容是.do的內容,比如下面的例子,將會出現錯誤信息。

    實際例子:<insert:put attribute=" /companyView.do?action=before_new">

    錯誤信息:ServletException in '/companyView.do?action=before_new': 應答已經提交。

    2  問題原因分析

    tiles 使用了 JSP 的 jsp:include 技術實現頁面組裝,只能適用于 jsp 頁面,無法用于 .do 這樣的情況。

    找到出錯的地方:

    TilesUtilImpl.java 的 doInclude(String uri, PageContext pageContext)

    2.1  doInclude 方法源代碼

    public void doInclude(String uri, PageContext pageContext)

    throws IOException, ServletException {

    pageContext.include(uri);

    }

    3  問題解決

    3.1  修改 doInclude 方法

    public void doInclude(String uri, PageContext pageContext)

    throws IOException, ServletException {

    if (uri.indexOf(".jsp") > 0)

    pageContext.include(uri);

    else if (uri.indexOf(".do") > 0)

    pageContext.getOut().write(getPageContent(uri, pageContext));

    }

    3.2 給 TilesUtilImpl 增加一個新的方法getPageContent,獲取 .do 文件的內容用于顯示

    private String getPageContent(String uri, PageContext pageContext) {

    String result = "";

    HttpServletRequest request = (HttpServletRequest) pageContext .getRequest();

    String contextPath = request.getContextPath();

    String serverIP = request.getServerName();

    String serverPort = String.valueOf(request.getServerPort());

    String uriTmp = "http://";

    if (serverPort.equals("80"))

    uriTmp = uriTmp + serverIP;

    else

    uriTmp = uriTmp + serverIP + ":" + serverPort;

    uriTmp = uriTmp + contextPath;

    if (uri.startsWith("/"))

    uriTmp += uri;

    else

    uriTmp += "/" + uri;

    try {

    URL url = new URL(uriTmp);

    HttpURLConnection conn = (HttpURLConnection) url.openConnection();

    BufferedReader reader = new BufferedReader(new InputStreamReader(

    conn.getInputStream()));

    String line = null;

    while ((line = reader.readLine()) != null) {

    result += line;

    }

    conn.disconnect();

    reader.close();

    } catch (Exception e) {

    e.printStackTrace();

    }

    return result;

    }
    posted on 2007-01-26 15:04 周銳 閱讀(877) 評論(3)  編輯  收藏 所屬分類: Struts
    主站蜘蛛池模板: 免费观看黄网站在线播放| 污视频网站免费在线观看| 日韩人妻一区二区三区免费| 国产精品亚洲一区二区三区在线| 亚洲熟妇AV乱码在线观看| 动漫黄网站免费永久在线观看| ass亚洲**毛茸茸pics| 亚洲国产模特在线播放| 久久亚洲免费视频| 国产一二三四区乱码免费| 国产亚洲精品福利在线无卡一| 久久亚洲精品无码| 亚洲欧美日韩自偷自拍| 三年片免费高清版| 亚洲成a人片在线观看中文动漫| 无码国产精品一区二区免费16| 在线观看无码的免费网站| 亚洲AV无码国产丝袜在线观看 | 精品久久8x国产免费观看| 亚洲国产天堂久久综合| 国产精品无码免费专区午夜| 亚洲va久久久噜噜噜久久 | 91视频国产免费| 亚洲av无码一区二区三区天堂| 亚洲av成人一区二区三区在线观看 | 无码av免费一区二区三区试看| 亚洲bt加勒比一区二区| 国产h视频在线观看网站免费| 亚洲宅男天堂在线观看无病毒| 苍井空亚洲精品AA片在线播放| 中文字幕亚洲综合久久男男 | 国产成人免费高清激情明星| 亚洲熟妇无码AV不卡在线播放| 亚洲免费日韩无码系列 | 精品国产亚洲AV麻豆| 亚洲三区在线观看无套内射| 日本妇人成熟免费中文字幕| 免费看美女午夜大片| 亚洲视频一区在线观看| 69视频在线观看免费| 国产亚洲午夜精品|