在struts2中整合ajax时出现Template /template/ajax/head.ftl not found错误时的处理方法
在核心包的目录:struts2-core-2.1.8.1\template下查看有哪些主题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配套的模板文件中去找。这样才能找得到自己需要的模板文件进行渲染。呵呵,经历了痛苦的探索之后,终于明白了个中原理。
在struts2中整合ajax时出现Template /template/ajax/head.ftl not found错误时的处理方法的更多相关文章
- Struts2中实现Web项目的初始化工作
Struts2中实现Web项目的初始化工作 注:通常web系统在启动时需要做一些初始化的工作,比如初始化系统全局变量,加载自定义配置文件,启动定时任务等. 一.在Struts中实现系统的初始化工作 ...
- struts2中ajax的使用
前面写过原生js实现ajax的博客,但是用起来不是太方便,jquery对原生的js进行了很好的封装,使用起来也更简单:但是在项目中使用了struts2,处理ajax却又不同,花了几天时间研究,终于解决 ...
- ASP.NET MVC3 中整合 NHibernate3.3、Spring.NET2.0 时 Session 关闭问题
一.问题描述 在向ASP.NET MVC中整合NHibernate.Spring.NET后,如下管理员与角色关系: 类public class Admin { public virtual strin ...
- struts2中Ajax校验
Ajax(Asynchronous JavaScript and Xml),整合了JavaScript,XML,CSS,DOM,Ajax引擎(XMLHttpRequest). JavaScript语言 ...
- struts2中的常量
struts2中的常量: 在:struts2-core-2.1.8.1\org\apache\struts2\default.properties 文件里 <!-- 配制i18n国际化--> ...
- Struts2中有关struts-default.xml,struts.xml,struts.properties文件详解
1) struts-default.xml 这个文件是struts2框架默认加载的配置文件.它定义struts2一些核心的bean和拦截器. <?xml version="1.0&qu ...
- struts2中各个jar包作用
Struts2.3.4 所需的Jar包及介绍 Jar包的分类 jar包名称 jar包版本 jar包 文件名 jar包 的作用 jar包内包含的主要包路径及主要类 依赖的自有jar包名称 依赖的第三方j ...
- struts2中的jar包
核心包: (后面数字是版本号,不同struts2版本,数字可能不一样.) struts2-core-2.1.8.1 struts2的核心jar包,不可缺少的 xwork-core-2.1.6 xwor ...
- 简单理解Struts2中拦截器与过滤器的区别及执行顺序
简单理解Struts2中拦截器与过滤器的区别及执行顺序 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标 ...
随机推荐
- ThInkPHP中的常量
除了常规变量的输出外,模板引擎还支持系统变量和系统常量.以及系统特殊变量的输出.它们的输出不需要事先赋值给某个模板变量.系统变量的输出必须以$Think.打头,并且仍然可以支持使用函数.常用的系统变量 ...
- Android开发环境的搭建之(四)虚拟设备AVD的基本配置
配置Android系统语言包为中文简体.点击导航栏左数第二个“菜单”图标 选择“System settings”. 选择“Language & Input” 选择“Language” 选择“中 ...
- 判断mysqli函数里的sql语句是否有错和影响行数
<?php $mysqli=@new mysqli("localhost", "root", "123456", "xsph ...
- return 和 echo 的小坑
在写项目的时候,有好几次遇到过同样的问题,控制器里面返回的json在前台无显示,利用console.log()总是显示这样的现象 数据库操作成功,却没有返回值. 原因是在控制器返回的使用使用了 ret ...
- Python学习路径和个人增值(整合版)
PS:内容来源于网络 一.简介 Python是一种面向对象.直译式计算机程序设计语言,由Guido van Rossum于1989年底发明.由于他简单.易学.免费开源.可移植性.可扩展 ...
- 学习使用Free RTOS ,移植最新的STM32 v3.5固件库
最近拿到了一块万利的EK-STM32F的学习板,打算先用它来熟悉下STM32的编程环境,不过在这过程中和一个同事聊的时候觉得如果只调用STM32的库写程序,可能在芯片资源的利用上面可能就会差一点,在这 ...
- Android开发之发送邮件功能的实现(源代码分享)
Android开发中可能会碰到如何发送邮件的困扰,之前我也查了相关的文档,博友们也分享了不少的发送邮件的办法,总共有3种把,我仔细阅读了下,发现有的讲的太过复杂跟麻烦,不够清晰,我今天就来分享下我认为 ...
- aix knowlgdgecenter
http://www-01.ibm.com/support/knowledgecenter/ssw_aix_53/com.ibm.aix.install/doc/insgdrf/HT_insgdrf_ ...
- linux svn服务器普通passwd和sasl2配置
朋友昨天问我一个问题,他公司使用的vpn连接的svn,使用svn管理软件进行svn update是可行的,使用命令行svn update出错,svn status可行. 思路1: 刚开始我关注的焦点都 ...
- 在asp.net中如何实现伪静态页 [转]
我在这里就不过多讨论静态页.伪静态页.动态页的长短利弊了.只是单纯的讲解如何在asp.net中如何实现伪静态页,以帮助有这方面有需求的朋友,快速解决boss派下来的任务.(拿奖金的时候,记得有我一份功 ...