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

  • 相关阅读:
    SD卡 家族的发展
    onenand小结 及 与nor 和nand 的区别
    PHP程序开发范例学习之表单――获取文本框的值
    Smarty 模板初体验
    symfony object route class: sfDoctrineRoute
    数据结构&算法(PHP描述) 简单选择排序 simple selection sort
    FLEAPHP操作两个数据库
    让Nginx支持ThinkPHP的URL重写和PATHINFO
    Apache中限制和允许特定IP访问(转载)
    php记录日志
  • 原文地址:https://www.cnblogs.com/moonfans/p/3216153.html
Copyright © 2011-2022 走看看