博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts2的dojo使用与/template/ajax/head.ftl not found
阅读量:5866 次
发布时间:2019-06-19

本文共 1138 字,大约阅读时间需要 3 分钟。

hot3.png

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

转载于:https://my.oschina.net/bluesroot/blog/222560

你可能感兴趣的文章
Windows Server 2016-管理站点复制(二)
查看>>
推荐几款常用在线代码转换工具
查看>>
浅谈Redis服务的集中监控
查看>>
平台类网站为非星级酒店带来营销新机遇
查看>>
SIEM期待实时安全分析
查看>>
详解Spring Security进阶身份认证之UserDetailsService(附源码)
查看>>
那些年,你所经历的运维
查看>>
OSSIM安装镜像及源代码下载地址大全
查看>>
CentOS5.8 x86_64系统手动释放内存
查看>>
JAVA新人常犯错误集锦
查看>>
【Hibernate框架开发之二】采用@Entity、@Id直接映射实体类
查看>>
Linux运维比较实用的工具
查看>>
可穿戴设备,什么形式不重要
查看>>
[C# 网络编程系列]专题六:UDP编程
查看>>
基于IP-PBX的VoIP系统解决方案
查看>>
Nginx嵌入Lua语言实现redis的高性能http接口
查看>>
OCS2007R2升级LyncSrv2013 PART5:迁移用户
查看>>
关于ansible的playbook模板和facts的后续文档
查看>>
【虚拟化实战】网络设计之五IP Storage
查看>>
Service Manager R2管理服务器安装
查看>>