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

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

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

    posts - 27,  comments - 14,  trackbacks - 0
    在Liferay里面,有很多內置的示例portlet,這為我們在EXT環境下做二次開發新的portlet提供很好的參考依據,其中CMS模塊里的日志文章portlet,功能尤為強大,可以通過配置Structure和Template可以很容易實現一些新聞或是其他內容版面,寫好基本的Structure、Template *.XSL文件,可以通過擴展,再復雜的頁面都可以通過配置模板實現,這為發布新聞信息提供了非常方便的解決方案。下面我將自己在項目中遇到的幾個問題簡單記錄一下:(好記性敵不過爛筆頭啊,哈哈,再說我的記性本來就不好~~)
    1、liferay4.3 final版本中新建結構、模板、文章過程中,編號似乎只能是自動生成,如果自己定義就報錯,不知道是不是我定義的編號不符合liferay的內部約束,沒仔細研究,這應該不是大問題,自動生成也沒什么不好。在以前的版本liferay4.2.2是可以自己定義編號的。

    2、在定義結構時,最好直接通過發射編輯寫XSL文件的方式來實現,如果是自己通過點擊增加行的方式,需要自己定義屬性名,這些屬性名在后面定義模板的時候需要用到,而且應該保持一致,所以通過定義XSL文件保持原sample(以前的文章中有提供下載)中提供的那些基本結構,可以避免在定義模板時引起不必要的麻煩。

    *3*、解決使用已經定義好的結構模板配置的文章出現亂碼的問題:
    在liferay4.2.2中利用提供的結構和模板定義,配置多種結構的文章都沒出現任何亂碼的問題,但將原來的那些基礎模板應用到4.3版本中,就出現了亂碼的問題,剛開始很不解,結構和模板都是原系統中摘取下來的,不可能出錯的啊?后來通過對比才知道,老版本的模板.XSL文件頭部沒有包含任何字符編碼文件,例如:
    <?xml version="1.0"?>

    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">  
      <xsl:output method="html" omit-xml-declaration="yes"/>  
      <xsl:template match="/"> 
        <xsl:variable name="link_value"> 
          <xsl:value-of disable-output-escaping="yes" select="root/dynamic-element[@name='textarea']/dynamic-content"/> 
        </xsl:variable>  
              <center>
              <a border="0"> 
                <xsl:attribute name="href"> 
                  <xsl:text>http://</xsl:text>
                  <xsl:value-of disable-output-escaping="yes" select="$link_value"/> 
                </xsl:attribute>  
              <img border="0"> 
                <xsl:attribute name="src"> 
                  <xsl:value-of disable-output-escaping="yes" select="root/dynamic-element[@name='image']/dynamic-content"/> 
                </xsl:attribute> 
              </img> 
              </a>
              </center>
    <br/>
      </xsl:template> 
    </xsl:stylesheet>
    他是在系統運行過程中,自適應系統瀏覽器的字符編碼方式,所以在原來版本都是正常的,但新版本中,模板的.XSL文件是如下初始定義的:
    <?xml version="1.0" encoding="UTF-8"?>

    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
      <xsl:output method="html" omit-xml-declaration="yes"/>
      <xsl:template match="/">
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tr>
            <td>
              <div style="float: right; position: relative; padding-left: 10px;">
                <img>
                  <xsl:attribute name="src">
                    <xsl:value-of disable-output-escaping="yes" select="root/dynamic-element[@name='image']/dynamic-content"/>
                  </xsl:attribute>
                </img>
              </div>
              <xsl:if test="root/dynamic-element[@name='textarea']/dynamic-content != ''">
                <xsl:value-of disable-output-escaping="yes" select="root/dynamic-element[@name='textarea']/dynamic-content"/>
              </xsl:if>
            </td>
          </tr>
          <tr>
            <td>
              <br/>
            </td>
          </tr>
        </table>
      </xsl:template>
    </xsl:stylesheet>
    它加入了encoding="UTF-8"的聲明,問題就在這里,當系統瀏覽器的編碼方式與此不同時,亂碼當然也就出來了,嘗試去掉encoding="UTF-8"的包含,再刷新原文章,問題仍然存在。再返回該模板.XSL文件檢查代碼,又嘗試在<xsl:output method="html" omit-xml-declaration="yes"/>加入encoding="gb2312",然后保存刷新,哇塞,亂碼不見了,問題得到解決。新的模板.XSL文件如下:
     1<?xml version="1.0" ?>
     2
     3<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
     4  <xsl:output method="html" omit-xml-declaration="yes" encoding="gb2312"/>
     5  <xsl:template match="/">
     6    <table cellpadding="0" cellspacing="0" border="0" width="100%">
     7      <tr>
     8        <td>
     9          <div style="float: right; position: relative; padding-left: 10px;">
    10            <img>
    11              <xsl:attribute name="src">
    12                <xsl:value-of disable-output-escaping="yes" select="root/dynamic-element[@name='image']/dynamic-content"/>
    13              </xsl:attribute>
    14            </img>
    15          </div>
    16          <xsl:if test="root/dynamic-element[@name='textarea']/dynamic-content != ''">
    17            <xsl:value-of disable-output-escaping="yes" select="root/dynamic-element[@name='textarea']/dynamic-content"/>
    18          </xsl:if>
    19        </td>
    20      </tr>
    21      <tr>
    22        <td>
    23          <br/>
    24        </td>
    25      </tr>
    26    </table>
    27  </xsl:template>
    28</xsl:stylesheet>

    由此問題引發思考:
    在編碼過程中,幾乎所有的亂碼問題都是因為字符編碼的設置問題,所以在遇到有亂碼的情況下,首先要想到的就是檢查編碼方式的設置,是否國際化?這可能是解決亂碼問題的特定的解決思路。當然我們也由此發現encoding="UTF-8"也不是萬能的,還是要實際問題實際解決。
    posted on 2007-07-13 11:19 Scott.Pan 閱讀(1089) 評論(0)  編輯  收藏 所屬分類: Liferay
    <2007年7月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日韩精品人妻系列无码专区免费| 日本zzzzwww大片免费| 亚洲VA中文字幕不卡无码| 114级毛片免费观看| 亚洲国产精品网站在线播放| 亚洲精品高清一二区久久| 全部免费毛片在线播放| 亚洲AV无码一区二区乱子仑| 精品亚洲永久免费精品| 青青草免费在线视频| 一区二区在线视频免费观看| 亚洲精彩视频在线观看| 亚洲国产人成精品| 91手机看片国产永久免费| 黄色一级毛片免费| 亚洲国产成人久久99精品| 亚洲精品视频在线看| 国产卡二卡三卡四卡免费网址| 国产精品免费αv视频| 亚洲精品456在线播放| 亚洲AⅤ无码一区二区三区在线 | 女人张开腿等男人桶免费视频| XXX2高清在线观看免费视频| 中文字幕亚洲情99在线| 亚洲AV永久无码区成人网站 | 亚洲高清专区日韩精品| 成人永久免费高清| 久久99国产乱子伦精品免费| caoporm超免费公开视频| 亚洲日产乱码一二三区别| 久久久久亚洲AV无码网站| 国产亚洲大尺度无码无码专线| 成人黄动漫画免费网站视频| 99热精品在线免费观看| 中文字幕av免费专区| 国产成人精品亚洲| 亚洲一卡2卡3卡4卡国产网站| 国产AV无码专区亚洲精品| 亚洲中文字幕丝袜制服一区| 手机看片久久国产免费| 岛国av无码免费无禁网站|