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

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

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

    JAVA

    人生若只如初見,何事秋風(fēng)悲畫扇。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      50 隨筆 :: 25 文章 :: 157 評論 :: 0 Trackbacks

    JSP頁面里面的內(nèi)容往往是動態(tài)顯示,當(dāng)然也一般是從DB中按需取出來的了!
    在顯示過程也許會碰到這樣的問題:

    我們通過后臺操作將一些文字(通知什么的)傳到DB中,其中難免會分段,分行什么的.可是我們從DB中取出來直接在JSP頁面顯示時出來的卻是從頭到尾的一片文字!!!

    解決方法:
    首先應(yīng)將在DB中的相關(guān)顯示文字取出來的時候進(jìn)行一個轉(zhuǎn)換,比如說把里面的回車,換行,空格什么的轉(zhuǎn)換成HTML能識別的標(biāo)記.也許以下代碼正是我們需要的:


    public class CheckData extends Object {


        
    /** *//** *//** *//**
         * CheckData 構(gòu)造器
         *
         * 
    @param
         * 
    @return

         
    */


        
    public CheckData() {}


        
    /** *//** *//** *//**
         * 字符串替換,將 source 中的 oldString 全部換成 newString
         *
         * 
    @param source 源字符串
         * 
    @param oldString 老的字符串
         * 
    @param newString 新的字符串
         * 
    @return 替換后的字符串
         
    */

        
    public static String Replace(String source, String oldString, String newString) {
            StringBuffer output 
    = new StringBuffer();

            
    int lengthOfSource = source.length();   // 源字符串長度
            int lengthOfOld = oldString.length();   // 老字符串長度

            
    int posStart = 0;   // 開始搜索位置
            int pos;            // 搜索到老字符串的位置

            
    while ((pos = source.indexOf(oldString, posStart)) >= 0{
                output.append(source.substring(posStart, pos));

                output.append(newString);
                posStart 
    = pos + lengthOfOld;
            }


            
    if (posStart < lengthOfSource) {
                output.append(source.substring(posStart));
            }


            
    return output.toString();
        }


        
    /** *//**//*
        public static String ReplaceIgnoreCase(String source, String oldString, String newString) {
        }
        
    */


        
    /** *//** *//** *//**
         * 將字符串格式化成 HTML 代碼輸出
         * 只轉(zhuǎn)換特殊字符,適合于 HTML 中的表單區(qū)域
         *
         * 
    @param str 要格式化的字符串
         * 
    @return 格式化后的字符串
         
    */

        
    public static String toHtmlInput(String str) {
            
    if (str == null)    return null;

            String html 
    = new String(str);

            html 
    = Replace(html, "&""&amp;");
            html 
    = Replace(html, "<""&lt;");
            html 
    = Replace(html, ">""&gt;");

            
    return html;
        }


        
    /** *//** *//** *//**
         * 將字符串格式化成 HTML 代碼輸出
         * 除普通特殊字符外,還對空格、制表符和換行進(jìn)行轉(zhuǎn)換,
         * 以將內(nèi)容格式化輸出,
         * 適合于 HTML 中的顯示輸出
         *
         * 
    @param str 要格式化的字符串
         * 
    @return 格式化后的字符串
         
    */

        
    public static String toHtml(String str) {
            
    if (str == null)    return null;

            String html 
    = new String(str);

            html 
    = toHtmlInput(html);
            html 
    = Replace(html, "\r\n""\n");
            html 
    = Replace(html, "\n""<br>\n");
            html 
    = Replace(html, "\t""    ");
            html 
    = Replace(html, "  "" &nbsp;");

            
    return html;
        }


    }



    好啦,現(xiàn)在你可以直接通過類調(diào)用相應(yīng)的方法(比如說toHtml)后,就成了HTML能識別的格式了.如你在DB中的內(nèi)容可能如下:

    "lilin and you do it "
    也許轉(zhuǎn)換后成了
    "lilin and you do it<br> "

    接下來也許我們會很自然地想到用JS(innerTHML,document.write()等等來處理)來將其輸出到JSP中.然而結(jié)果卻往往不是我們想要的,原因是你在DB中的數(shù)據(jù)不符合JS的語法,因為在JS中要求所有的輸出語句均在同一行中,否則就會出現(xiàn)"未結(jié)束的字符串常量"的錯誤.而我們轉(zhuǎn)換后的僅僅是把DB中數(shù)據(jù)用HTML標(biāo)識符來替代,比如說若有一行空白,那么很可能對應(yīng)的就是一個"<BR>"符號,但是這個符號依然會占一行...(大概是這個意思)

    我在JSP頁面中,直接將它們out出來的(想一下servlet是怎么直接顯示布面內(nèi)容的^_^,雖然我一向?qū)ervlet這樣的行為比較反感)!不管我們轉(zhuǎn)換后的字符串中有多少行,全部把它放到out中就可以了!惟一的缺陷是又要在JSP中多一個"<%=%>"符號.

    不知道各位有什么別的好方法沒有?

    posted on 2006-03-15 12:50 Jkallen 閱讀(7967) 評論(7)  編輯  收藏 所屬分類: JEE學(xué)習(xí)AJAX

    評論

    # re: 格式化JSP頁面 2006-03-15 16:11 zgli
    推薦 FCKEditor  回復(fù)  更多評論
      

    # re: 格式化JSP頁面 2006-03-15 17:44 lizongbo
    你的toHtml的效率低的簡直不是一般的低,

    建議你去看看tomcat的例子:

    apache-tomcat-5.5.15\webapps\servlets-examples\WEB-INF\classes\util\HTMLFilter.java

      回復(fù)  更多評論
      

    # re: 格式化JSP頁面 2006-03-16 08:30 Jkallen
    apache的那個程序確實要好不少!

    倒是沒注意到tomcat里有這樣的東西...
    謝謝lizongbo  回復(fù)  更多評論
      

    # re: 格式化JSP頁面 2006-03-17 22:19 holyfield
    寫得不錯,謝謝。  回復(fù)  更多評論
      

    # re: 格式化JSP頁面 2006-06-02 17:17 pc
    http://www.kpwang.com/jsp_java/200647174812.htm jsp+tomcat+mysqlsevletjavabean配置全過程

    http://www.kpwang.com/jsp_java/20064692816.htm jsp中使用xmlhttp進(jìn)行數(shù)據(jù)交互

    http://www.kpwang.com/jsp_java/20064691542.htm jsp文件操作大全  回復(fù)  更多評論
      

    # re: 格式化JSP頁面[未登錄] 2007-09-04 18:35 RatKing
    我在JSP中使用JSTL的<c:out>標(biāo)簽向頁面輸出內(nèi)容,已經(jīng)自動轉(zhuǎn)碼處理了,根本無需自己編程動手。  回復(fù)  更多評論
      

    # re: 格式化JSP頁面 2009-03-30 22:47 niname
    謝謝您,真好用!  回復(fù)  更多評論
      

    主站蜘蛛池模板: 香蕉视频在线观看免费国产婷婷| 国产成人精品日本亚洲专区6| 妞干网免费观看视频| 182tv免费视频在线观看| 亚洲欧美在线x视频| 亚洲人成777在线播放| 亚洲av无码成人黄网站在线观看| 亚洲福利精品一区二区三区 | 亚洲区不卡顿区在线观看| 成人性生交大片免费看午夜a | 香蕉视频在线观看亚洲| 亚洲?V乱码久久精品蜜桃| 日韩成人在线免费视频| 免费做爰猛烈吃奶摸视频在线观看| 日日麻批免费40分钟无码| 国产无遮挡又黄又爽免费网站| 深夜特黄a级毛片免费播放| 亚洲av无码日韩av无码网站冲| 亚洲国产成人精品激情| 亚洲毛片一级带毛片基地| 亚洲国产精品不卡在线电影| 亚洲AV无码一区二区三区系列| 国产美女亚洲精品久久久综合| 亚洲精品高清一二区久久| 免费国产人做人视频在线观看| 永久免费bbbbbb视频| 成熟女人特级毛片www免费| 久久WWW免费人成人片| 成熟女人特级毛片www免费| 成人毛片免费观看| 我想看一级毛片免费的| 最好免费观看韩国+日本| 日韩电影免费在线| 九月婷婷亚洲综合在线| 高清在线亚洲精品国产二区| 亚洲毛片网址在线观看中文字幕| 亚洲人成国产精品无码| 亚洲精品字幕在线观看| 亚洲国产成人久久精品动漫| 亚洲高清无在码在线电影不卡| 亚洲永久中文字幕在线|