鐵手劍譜

          上善若水
          數(shù)據(jù)加載中……
          Struts秘籍之第2段:第3.7式: 動(dòng)態(tài)產(chǎn)生JavaScript

          第3.7式. 動(dòng)態(tài)產(chǎn)生JavaScript

          問題

          你想要根據(jù)從應(yīng)用模型獲得的數(shù)據(jù)動(dòng)態(tài)產(chǎn)生JavaScript。

          動(dòng)作要領(lǐng)

          使用Struts 標(biāo)簽在你想要包含在HTML中的JavaScript 代碼中渲染數(shù)據(jù):

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

          </script>

           

          動(dòng)作變化

          上述方案產(chǎn)生了一個(gè)JavaScript 函數(shù),彈出一個(gè)消息框,消息文本為"Hello, name!" name的值是使用bean:write標(biāo)簽產(chǎn)生的。此方案展示了使用Struts 標(biāo)簽創(chuàng)建JavaScript 和它們創(chuàng)建HTML一樣的容易。

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

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

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

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

          這里的例子僅僅列出了很簡(jiǎn)單的使用場(chǎng)景。如果要訪問的模型數(shù)據(jù)需要使用復(fù)雜的JavaScript數(shù)據(jù)結(jié)構(gòu),比如,數(shù)組,你可以使用迭代標(biāo)簽,比如logic:iterate和c:forEach來組裝這些結(jié)構(gòu)。

          相關(guān)動(dòng)作

          下一動(dòng)3.8或會(huì)使用迭代標(biāo)簽來產(chǎn)生客戶端的JavaScript 數(shù)組。

          posted on 2005-06-07 12:32 鐵手 閱讀(3881) 評(píng)論(3)  編輯  收藏 所屬分類: JavaStruts系列企業(yè)架構(gòu)框架

          評(píng)論

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

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

          # re: Struts秘籍之第2段:第3.7式: 動(dòng)態(tài)產(chǎn)生JavaScript 2006-07-31 10:41 笨笨猴

          鐵手兄,謝謝了。。。。。。

          # re: Struts秘籍之第2段:第3.7式: 動(dòng)態(tài)產(chǎn)生JavaScript 2007-07-05 09:50 Laosan

          純爺們~~!
          主站蜘蛛池模板: 嘉义县| 潮安县| 广宗县| 崇礼县| 原阳县| 兴仁县| 民乐县| 乃东县| 黄骅市| 长阳| 涞源县| 长白| 宁阳县| 舟山市| 呼伦贝尔市| 孟津县| 馆陶县| 舞钢市| 环江| 阳朔县| 城市| 樟树市| 开远市| 平顺县| 怀集县| 都兰县| 新昌县| 高密市| 上思县| 大关县| 巴里| 沁阳市| 富民县| 昆明市| 陆良县| 上蔡县| 乐平市| 青阳县| 洪泽县| 喀什市| 濮阳县|