`

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

 
阅读更多

   在项目中使用到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="sx" uri="/struts-dojo-tags"%><sx:head />

当然,若要使用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配套的模板文件中去找。这样才能找得到自己需要的模板文件进行渲染。呵呵,经历了痛苦的探索之后,终于明白了个中原理。


分享到:
评论
3 楼 MAYDAY_2014 2012-12-14  
楼主对struts2认识挺深入啊
2 楼 MAYDAY_2014 2012-12-14  
果然!
1 楼 dowell_liu 2012-06-18  
想问一下版主,我也出现这样的问题,怎么解决了,你似乎没给出解决方案

相关推荐

    struts2-dojo-plugin-2.2.1.jar

    Struts2-dojo-plugin-2.2.1.jar 是一个针对Apache Struts2框架的扩展插件,主要用于增强Struts2应用的用户界面交互性,特别是通过集成Dojo JavaScript库来提供丰富的AJAX功能和用户体验。这个插件是Struts2与Dojo ...

    struts2-dojo-plugin-2.3.15.3.jar.zip

    Struts2 Dojo Plugin是Apache Struts框架的一个扩展,它为开发者提供了丰富的AJAX功能,以便在基于Struts2的应用程序中实现动态、交互式的用户界面。这个版本号"2.3.15.3"表明这是一个较旧的版本,但仍然在许多现有...

    struts2-core-2.3.15.3.jar

    Apache Struts Copyright 2000-2011 The Apache Software Foundation This product includes software developed by The Apache Software Foundation (http://www.apache.org/). Dojo (http://dojotoolkit.org/). ...

    struts2+dojo实现例子

    在这个例子中,可能使用了Dojo的`dojoContentPane`或者`dijit.form.Form`等组件,配合`dojo.connect`或`dojo.on`监听用户交互事件,然后使用`xhr`方法与后台Struts2 Action进行通信。 Struts2与Dojo的集成通常涉及...

    struts-2.3.15.3-apps.zip

    Apache Struts Copyright 2000-2011 The Apache Software Foundation This product includes software developed by The Apache Software Foundation (http://www.apache.org/). Dojo (http://dojotoolkit.org/). ...

    struts-2.1.8.1-src.zip

    Apache Struts Copyright 2000-2007 The Apache Software Foundation This product includes software developed by The Apache Software Foundation (http://www.apache.org/). Dojo (http://dojotoolkit.org/). ...

    struts2-dojo-plugin-2.1.8.jar

    struts2-dojo 跨域时解决拒绝访问的问题

    dojo/js/css 压缩打包工具 - 桌面版

    使用方便,无需安装配置, 下载置入dojo源码下的任意目录即可一键完成打包压缩. 该工具可自动分析HTML文件生成打包方案,自动排除没有用到的js文件,可将dojo压缩到数百K大小. 自带支持高亮、代码提示的profile编辑器,...

    struts2-dojo-plugin-2.3.4 jar

    struts2-dojo-plugin-2.3.4 jar 日期控件的jar包 需要的自行下载

    自己编写的一个struts2.1 基于dojo的ajax标签的即时验证小程序

    Struts2提供了`s:a`(Action)和`s:url`(URL)标签,它们可以与Dojo的Ajax功能结合使用。例如,我们可以通过`struts-dojo-plugin`启用Dojo标签库,并使用`s:dojo`标签来初始化Dojo环境。然后,我们可以利用`dijit....

    struts2-dojo-plugin-2.2.3.1.zip_key_可用struts的ajax支持插件

    例如,通过Struts2的ACTION标签和Dojo的dojo.data.ItemFileWriteStore,可以轻松地创建一个远程数据驱动的下拉列表。此外,还可以利用Dojo的dojo.connect方法结合Struts2的ActionContext,实现异步调用服务器端方法...

    struts-2.5.13-docs

    Apache Struts Copyright 2000-2011 The Apache Software Foundation This product includes software developed by The Apache Software Foundation (http://www.apache.org/). Dojo (http://dojotoolkit.org/). ...

    Apress.Pro.Ajax.and.Java.Frameworks.Jul.2006.HAPPY.NEW.YEAR.rar

    此外,书中的内容可能还包括了Ajax库的使用,如jQuery、Prototype、Dojo或Ext JS等。这些库简化了JavaScript的开发,提供了丰富的Ajax功能,包括事件处理、动画效果和数据操作等。例如,jQuery的$.ajax()方法可以...

    struts2-dojo-plugin-2.3.16

    Struts2的使用中出现的版本不符合或者缺少struts2-dojo-plugin-2.3.16的问题,大家可以下载使用。

    struts2-dojo-plugin

    struts2-dojo-plugin-2.1.0的jar包,可以再struts中使用dojo......

    Struts 2.2.1的Ajax整合jQuery 1.4和Dojo 2.0框架的编程示例

    3、打开浏览器在地址栏输入:http://localhost:8080/Struts2Ajax/login.jsp后回车 4、如果一切正常,那么你会看“测试Ajax”按钮和Struts2的tabbedpanel标签 说明:Struts2天生成Spring整合的,所在“整容”之后,...

    dojo Ajax

    2. **dojo.io.bind**: 这是dojo早期版本中用于处理Ajax请求的方法,虽然在新的dojo版本中已被xhr接口取代,但理解其工作原理有助于理解dojo的进化过程。`dojo.io.bind`允许开发者定义请求参数、处理函数以及数据绑定...

    struts2.3.4必备包+dojo_ajax包

    在Dojo_AJAX包中,包含了Dojo的Ajax模块,如dojo.xhr、dojo.request等,这些模块用于实现异步通信,使得页面能够在不刷新的情况下与服务器进行数据交换,提升用户体验。 Dojo的dojo/on模块则用于事件处理,可以监听...

Global site tag (gtag.js) - Google Analytics