鐵手劍譜

          上善若水
          數據加載中……
          Struts秘籍之第2段:第3.7式: 動態產生JavaScript

          第3.7式. 動態產生JavaScript

          問題

          你想要根據從應用模型獲得的數據動態產生JavaScript。

          動作要領

          使用Struts 標簽在你想要包含在HTML中的JavaScript 代碼中渲染數據:

          <script language="JavaScript">
              
          function showMessage(  ) {
                  alert( 
          "Hello, <bean:write name='myForm' property='name'/>!" );
              }

          </script>

           

          動作變化

          上述方案產生了一個JavaScript 函數,彈出一個消息框,消息文本為"Hello, name!" name的值是使用bean:write標簽產生的。此方案展示了使用Struts 標簽創建JavaScript 和它們創建HTML一樣的容易。

          JSTL也可以按這種方式使用。

          雖然這種方法很明顯,但是很奇怪很多人都在問這個問題。通常問題還可能是:"我如何才能從Struts中調用HTML中的JavaScript 函數?" 技術上講,你并不能從Struts調用一個HTML頁面中的JavaScript 函數。Struts 和JSP 技術都運行在服務器端。相反,JavaScript確是在客戶端的瀏覽器中處理的。但是,通過這里所述的動態產生JS的能力,基本上還是相當于所需的這個行為。

          這個方法的一個重要基礎是JSP的轉換過程。JSP 頁面由JSP 聲明,標準JSP 標簽 (比如jsp:useBean), 定制JSP 標簽(比如Struts 和JSTP 標簽), 運行是表達式,以及腳本小程序(scriptlets)組成。除此之外的其他東西都是模板文本(template text)。模板文本可以是任何不會被JSP轉換處理的內容。人們通常會認為模板文本就是HTML 標記,但是它其實是JavaScript 或者其他非JSP 處理的文本。JSP 翻譯器并不關心模板文本采用何種形式。因此,你可以象在HTML元素中產生文本一樣容易地在JavaScript 函數中產生文本。

          如果你使用JSP 來產生良構的(well-formed)XHTML, 那么動態JavaScript 模版文本必須使用jsp:text元素和CDATA section的方式結合來指定。具體信息參見Hans Bergsten的ONJava 文章:http://www.onjava.com/pub/a/onjava/2004/04/21/JSP2part3.html

          這里的例子僅僅列出了很簡單的使用場景。如果要訪問的模型數據需要使用復雜的JavaScript數據結構,比如,數組,你可以使用迭代標簽,比如logic:iterate和c:forEach來組裝這些結構。

          相關動作

          下一動3.8或會使用迭代標簽來產生客戶端的JavaScript 數組。

          posted on 2005-06-07 12:32 鐵手 閱讀(3890) 評論(3)  編輯  收藏 所屬分類: JavaStruts系列企業架構框架

          評論

          # Struts 秘籍(CookBook)[TrackBack] 2005-11-12 18:29 阿泠

          本系列源改編自O'Reily的Strus Cookbook
          [引用提示]阿泠引用了該文章, 地址: http://blog.donews.com/inclear/archive/2005/11/12/624363.aspx
            回復  更多評論    

          # re: Struts秘籍之第2段:第3.7式: 動態產生JavaScript 2006-07-31 10:41 笨笨猴

          鐵手兄,謝謝了。。。。。。
            回復  更多評論    

          # re: Struts秘籍之第2段:第3.7式: 動態產生JavaScript 2007-07-05 09:50 Laosan

          純爺們~~!
            回復  更多評論    
          主站蜘蛛池模板: 榆树市| 陵川县| 苗栗市| 安宁市| 玉田县| 株洲市| 舒城县| 颍上县| 扶沟县| 东辽县| 拜泉县| 应城市| 尉氏县| 古浪县| 海淀区| 凤台县| 丰城市| 牙克石市| 江门市| 南丹县| 莱芜市| 呼伦贝尔市| 汉寿县| 德兴市| 盐山县| 大荔县| 枝江市| 台安县| 南江县| 报价| 那坡县| 平山县| 定陶县| 屏边| 温州市| 保亭| 阳原县| 柘荣县| 霞浦县| 桂林市| 四会市|