Sparta Yew

               簡約、職業、恒久
          隨筆 - 15, 文章 - 1, 評論 - 276, 引用 - 0
          數據加載中……

          Struts2的dojo使用與/template/ajax/head.ftl not found.

              sparta-紫杉  2010-6-3 8:05   

              在項目中使用到Struts2的dojo時,出現java.io.FileNotFoundException: Template /template/ajax/head.ftl not found. 有時出現.../text.ftl not found. 錯誤。

              分析一下:
              從strtus2.1.x開始,Struts2團隊將dojo從核心包里面提取出來,成為一個struts2的插件struts2-dojo-plugin-*.jar,因此在jsp頁面上,若要使用dojo的話,必須引入如下標簽庫:<%@taglib prefix="ss" uri="/struts-dojo-tags"%/>。當然,若要使用Struts2的標簽庫,還需引入<%@taglib prefix="s" uri="/struts-tags"%/>標簽庫。
                  
              另外,Struts2的標簽(無論是dojo或非dojo)均需要freeMarker模板文件*.ftl進行渲染和解釋以生成Html頁面,dojo或非dojo的標簽庫均配備一套自己的模板文件庫,在jsp頁面里,struts2根據各標簽的theme來查找自己配置的相應模板文件*.ftl,若theme設置不對,則struts2就會從相應路徑中找不到需要的ftl文件,就會報錯../*.ftl not found. 
                 
              當在jsp頁面內,標簽的主題(theme)若設置不正確,則會找不到相應的ftl文件。 比如下面代碼:

                  <s:form method="post" validate="true" theme="xhtml">
                      <s:textfield label="Name" name="name" />
                      <s:password label="Password" name="password" />
                      <s:textfield label="Age" name="age" />
                      <ss:submit />
                  </s:form>
               
              上述的theme定為xhtml,若是修改為theme="ajax",則在運行時jsp頁面將不會被解析,提示.../text.ftl not found。 這是因為在struts2的核心包中沒有template/ajax/text.ftl文件。

              jsp文件中使用的標簽是dojo的,就會根據theme的設置到與dojo配置的模板文件中去找,使用的標簽為struts2的,就到與struts2配套的模板文件中去找。這樣才能找得到自己需要的模板文件進行渲染。呵呵,經歷了痛苦的探索之后,終于明白了個中原理。



                      -東營 sparta-紫杉 原創,轉載請注明出處 :)
                      http://www.aygfsteel.com/SpartaYew/
                      SpartaYew@163.com
           
                      
          QQ:22086526

          posted on 2011-05-19 14:32 sparta-紫杉 閱讀(4889) 評論(0)  編輯  收藏 所屬分類: SSH2

          主站蜘蛛池模板: 尉犁县| 阜平县| 湘乡市| 汉阴县| 和平县| 富锦市| 广饶县| 布尔津县| 九江县| 门源| 大洼县| 锡林郭勒盟| 孙吴县| 娄烦县| 固阳县| 临清市| 衢州市| 莲花县| 中阳县| 清涧县| 井研县| 清丰县| 平舆县| 万安县| 邯郸县| 达孜县| 泰安市| 图木舒克市| 两当县| 景德镇市| 绥化市| 佛山市| 新源县| 东乡县| 泾阳县| 清河县| 临江市| 邻水| 长武县| 额尔古纳市| 香格里拉县|