• 在struts2中整合ajax时出现Template /template/ajax/head.ftl not found错误时的处理方法


    Struts2 Ajax出现错误“Template /template/ajax/head.ftl not found”  

    2013-02-08 18:26:27|  分类: 默认分类|字号 订阅

     
     

    在核心包的目录:struts2-core-2.1.8.1 emplate下查看有哪些主题theme可用:

    我的如图:

    故而,用theme="ajax"肯定出错,因为根本就没有"ajax"这个主题文件存在。

    其中,css_xhtml、simple、xhtml中的文件格式为.ftl,这是视图FreeMarker默认的模板文件名后缀。

    xhtml是默认的主题。

    -------------------------------------------------------------

    archive文件中的子文件为:

    其中,ajax、simple、xhtml中的文件格式为.vm,这是视图velocity默认的模板文件名后缀。

    总的来说,要注意自己用的是哪种视图jsp、freeMarker or velocity,不同视图对应的格式不一样的。

    ·····························································································································································

     

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

  • 相关阅读:
    ThreadLocal分析学习
    探究.NET的bin引用程序集运行机制看.NET程序集部署原理
    ASP.NET网页代码模型分析
    JBPM与设计模式之职责链模式
    根据webform页面大小的变化动态调整控件的大小
    jbpm binding类深入解析
    JBPM与软件架构模式之命令模式
    JBPM对象主键生成机制
    主键思维定势导致的惨案
    电脑安装windows server 2008 导致磁盘分区消失解决方法
  • 原文地址:https://www.cnblogs.com/moonfans/p/3216153.html
Copyright © 2020-2023  润新知