0 0

使用junit运行freemarker找不到模板20

我们是jsp项目,使用spring装配freemarker,在跑项目的时候正常,但是在跑testcase的时候报找不到模板


配置文件如下
    <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
        <property name="templateLoaderPath" value="/WEB-INF/templates/" /> <!-- 配置模板加载路径 -->
           <property name="freemarkerSettings"><!-- 设置FreeMarker环境属性-->
            <props>
                 <prop key="template_update_delay">1</prop> <!-- 刷新模板的周期,单位为秒 -->
                 <!--<prop key="classic_compatible">true</prop>-->  <!-- 此属性可以防止模板解析空值时的错误 -->
                 <prop key="default_encoding">UTF-8</prop><!--模板的编码格式 -->      
                   <prop key="locale">zh_CN</prop><!-- 本地化设置--> 
                   <prop key="url_escaping_charset">UTF-8</prop>
                   <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
                   <prop key="date_format">yyyy-MM-dd</prop>
                   <prop key="time_format">HH:mm:ss</prop> 
                   <prop key="number_format">0.######</prop> 
                   <prop key="boolean_format">true,false</prop> 
                   <!--<prop key="auto_import">"/spring.ftl" as spring</prop> 
                   <prop key="whitespace_stripping">true</prop> 
                   <prop key="tag_syntax">auto_detect</prop>  --> 
            </props>
           </property>
    </bean>
项目是使用myeclipse向导创建的Web项目
配置文件的路径为 /WebRoot/WEB-INF/templates/page/index.ftl
获得template的java代码如下
Template t = freemarkerConfig.getConfiguration().getTemplate("/WEB-INF/templates/page/index.ftl");
顺便说一下,我还尝试过
Template t = freemarkerConfig.getConfiguration().getTemplate("/WebRoot/WEB-INF/templates/page/index.ftl");
Template t = freemarkerConfig.getConfiguration().getTemplate("/templates/page/index.ftl");
Template t = freemarkerConfig.getConfiguration().getTemplate("D:/myproject/WebRoot/WEB-INF/templates/page/index.ftl");


再顺便说一下,我已经诅咒过spring得freemarker插件一万遍了,也没有啥用。

任何帮助或建议都不胜感激。

问题补充:
fmjsjx 写道
从工程角度讲,testcase推荐使用test的resources,使用另一个专门配置测试环境的spring配置文件,而非使用主目录里的spring配置。
在spring配置文件的路径推荐使用classpath,就是这样写:
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
    <property name="templateLoaderPath" value="classpath:/templates" />
    ...
</bean>

这样在java代码里的相对路径就是classpath下的templates目录了(一般放在resources里)。
之后只要用相对路径获取template就行了。

fmjsjx 写道
从工程角度讲,testcase推荐使用test的resources,使用另一个专门配置测试环境的spring配置文件,而非使用主目录里的spring配置。
在spring配置文件的路径推荐使用classpath,就是这样写:
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
    <property name="templateLoaderPath" value="classpath:/templates" />
    ...
</bean>

这样在java代码里的相对路径就是classpath下的templates目录了(一般放在resources里)。
之后只要用相对路径获取template就行了。



是的,使用clapass是ok的,但是这里有一个情况,目录结构已经定了。配置文件时放在WEB-INF下的。这个我是没有权利改变的。有什么变通的方法么?
2011年10月31日 17:31

3个答案 按时间排序 按投票排序

0 0

采纳的答案

引用

是的,使用clapass是ok的,但是这里有一个情况,目录结构已经定了。配置文件时放在WEB-INF下的。这个我是没有权利改变的。有什么变通的方法么?

没让你改变目录结构啊……
你不就只是用JUNIT跑个testcase么?
直接在src/test/resources下建个templates目录,把/WEB-INF/templates下的文件啊文件夹什么的都拷贝一份过去不就结了?

2011年11月01日 11:31
0 0
0 0

从工程角度讲,testcase推荐使用test的resources,使用另一个专门配置测试环境的spring配置文件,而非使用主目录里的spring配置。
在spring配置文件的路径推荐使用classpath,就是这样写:

<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
    <property name="templateLoaderPath" value="classpath:/templates" />
    ...
</bean>

这样在java代码里的相对路径就是classpath下的templates目录了(一般放在resources里)。
之后只要用相对路径获取template就行了。

2011年11月01日 10:23

相关推荐

    freemarker-2.3.14

    2. **数据模型**:在Freemarker中,数据模型是由Java对象构成的,这些对象被传递到模板中供其使用。这些对象可以是简单的值,如字符串、数字,也可以是复杂的Java集合,如列表、映射等。 3. **分离关注点**:...

    很轻的,Servlet + Freemarker 组合体,没有那么硬~

    9. **开发工具**:可能涉及到Eclipse、IntelliJ IDEA等IDE的使用,以及如何配置它们以支持Servlet和Freemarker的开发。 10. **测试与调试**:学习如何使用JUnit进行单元测试,以及在开发过程中如何利用浏览器开发者...

    BBS.rar_BBS java_BBS论坛_freemarker java_struts2 bbs_论坛

    **标题与描述解析** 标题"BBS.rar_BBS java_BBS论坛_freemarker ...最后,测试和部署也是项目开发不可或缺的部分,可能需要JUnit进行单元测试,Git进行版本控制,以及持续集成工具如Jenkins来自动化构建和部署流程。

    课设毕设springboot宠物咖啡馆平台的设计与实现-LW+源码可运行.zip

    - 使用Thymeleaf、Freemarker或Velocity等模板引擎进行视图层渲染。 - 定义RESTful API接口,理解HTTP请求方法(GET、POST、PUT、DELETE)和状态码。 - 数据库设计,包括表结构设计、关系建模以及SQL语句的编写。 - ...

    freemark学习笔记

    2. **性能优势**:由于FreeMarker模板在执行时不需要转换成Servlet,其运行速度通常比JSP更快。 在搭建FreeMarker环境时,虽然它本身很轻量级,基本不依赖第三方库,但在测试阶段,可能会引入如JUnit这样的测试框架...

    简历模板商城项目.zip

    总的来说,这个项目涵盖了Java后端开发的多个核心知识点,包括但不限于:Spring框架的应用、Web MVC模式的理解、MyBatis的使用、分布式服务的实现、模板引擎的运用以及数据库设计。对于初入IT行业的实习生来说,这样...

    一套基于模版的代码生成器

    这些信息将被插入到模板的相应位置,生成定制化的代码。 3. **Java生成器**:由于标签提到“java”,我们可以推断此代码生成器主要用于生成Java代码。在Java环境中,代码生成器可以用于创建Java类、接口、枚举、...

    课设毕设springboot大学生入学审核系统的设计与实现-LW+源码可运行.zip

    6. **Thymeleaf或FreeMarker**:如果项目使用了模板引擎,将学习如何渲染视图。 7. **Gradle或Maven**:项目构建工具的使用,管理和依赖的版本控制。 8. **Git**:版本控制系统的应用,追踪代码更改和协作开发。 9. ...

    strust2 jar包

    6. **插件支持**: Struts2有一个丰富的插件生态系统,如Tiles用于页面布局,Freemarker或Velocity用于模板引擎,以及Struts2 jQuery Plugin等增强前端交互性。 **Struts2的工具和辅助** 1. **IDE集成**: 开发者...

    SpringBoot高仿小米电子商城项目模板.rar

    《SpringBoot高仿小米电子商城项目模板》是一个基于Java技术和SpringBoot框架的电子商务平台模板,旨在为开发者提供一个快速构建类似小米商城应用的基础。这个模板包含了一系列关键功能和组件,可帮助开发人员节省...

    毕设-期末作业-基于SpringBoot+MyBatis前后端开发的博客网站.zip

    6. **模板引擎**: 可能会使用Thymeleaf、Freemarker或Mustache等模板引擎来渲染静态页面,使得动态数据能够和HTML模板结合,生成最终的网页。 7. **API设计**: RESTful API设计是现代Web服务的标准,本项目可能定义...

    基于java开发的BBS论坛系统源代码

    5. **模板引擎**:为了生成动态网页,可能会使用FreeMarker或JSP等模板引擎,将后端数据渲染成HTML页面。 6. **前端技术**:尽管主要关注Java后端,但前端部分同样重要。可能使用HTML、CSS和JavaScript进行页面布局...

    新闻文章凌云新闻系统(LyNews)v1.0-lynews.zip

    4. **模板引擎**:对于前端展示,LyNews可能使用了FreeMarker或Thymeleaf这样的模板引擎,这些工具允许开发者将静态HTML模板与动态数据结合,生成最终的网页内容。 5. **安全性**:作为一个新闻发布系统,LyNews...

    struts-2.1.8.1.rar

    Struts 2.1.8.1 是一个流行的Java Web应用程序框架,用于构建高效、可扩展和易于维护的Web应用。...不过需要注意的是,由于这是较旧的版本,可能不支持最新的特性和安全修复,建议在新项目中使用更新的Struts 2版本。

    Java 客户管理关系源码

    7. **模板引擎**:为了生成动态网页,系统可能使用Thymeleaf、FreeMarker或Velocity等模板引擎,将后端数据渲染到HTML页面上。 8. **日志记录**:为了方便问题排查和性能分析,系统通常会集成Log4j、Logback或...

    校友社交系统--论文.rar

    此外,项目可能还涉及到其他技术,例如使用Thymeleaf或FreeMarker作为模板引擎来生成动态网页,使用Maven或Gradle作为构建工具,以及使用Git进行版本控制。单元测试和集成测试也是项目开发中不可或缺的部分,可能...

    JavaWeb SpringBoot 房屋租赁系统 租房平台.zip

    6. **模板引擎**:可能使用Thymeleaf或Freemarker等模板引擎来渲染HTML页面,提供友好的用户体验。 7. **测试**:SpringBoot支持单元测试和集成测试,例如使用JUnit和Mockito进行代码验证。 8. **部署与持续集成**...

    springboot381银行客户管理系统代码--论文pf.zip

    6. **模板引擎或前后端分离**: 如果系统包含Web界面,可能会使用Thymeleaf或Freemarker等模板引擎。若采用前后端分离,前端可能使用React、Vue或Angular等JavaScript框架。 7. **测试与持续集成**: SpringBoot支持...

    java电商书城系统.zip

    系统可能使用Thymeleaf或Freemarker等模板引擎来渲染视图,便于动态生成HTML页面。 7. **前端技术**: 虽然主要讨论后端,但前端可能采用了Bootstrap、Vue.js或React等技术,提供友好的用户界面和交互体验。 8. ...

    struts2必备11个jar包

    这个"struts2必备11个jar包"集合是开发者在使用Struts2框架进行开发时不可或缺的组件。这11个jar包包含了框架的核心功能、依赖库以及插件,它们协同工作,确保了Struts2的正常运行和高效性能。 1. **struts2-core....

Global site tag (gtag.js) - Google Analytics