最近在学习velocity。搞了个简单的mvc,然后打成war包发布,然后我的tomcat是不解压war包的,也就是说在webapps文件夹里面,war包不解压成文件夹格式。
然后运行我的webapp的时候,报错了,报找不到我的velocity资源文件,找了下网上的资料,发现我的velocity的ResourceLoader配置的是FileResourceLoader,这种resourceLoader是读文件目录的,也就是说,不解压war的话,那就是读取不到资源,如果tomcat设置了不解压war,那就会报错,如果是解压的war包,那就没问题。
如果是直接以不解压的war包进行发布的话,需要用另外一个resourceLoader, 也就是org.apache.velocity.tools.view.WebappResourceLoader
但这个resourceLoader需要配置servletContext,刚开始我运行的项目的时候,总是报没有设置servletContex,于是我反编译了下spring-webmvc.jar,发现spring2.0版本的jar的VelocityConfigurer是没有继承ServletContextAware这个接口的,我在网上也找了下资料,也说只有spring 2.5.6后面的版本才有,于是我现在
2.5.6的jar试了下,嗯,确实OK了
我的velocity的配置:
<!-- Velocity配置 -->
<bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="configLocation" value="/WEB-INF/classes/web/velocity.properties"/>
</bean>
<bean id="velocityViewResolver" class="org.springframework.web.servlet.view.velocity.VelocityLayoutViewResolver">
<property name="layoutUrl" value="layout/innerLayout.vm"/>
<property name="order" value="1"/>
<property name="cache" value="true"/>
<property name="prefix" value=""/>
<property name="suffix" value=".vm"/>
<property name="dateToolAttribute" value="dateTool"/>
<property name="numberToolAttribute" value="numberTool"/>
<property name="exposeSpringMacroHelpers" value="true"/>
<property name="requestContextAttribute" value="requestContext"/>
<property name="contentType">
<value>text/html;charset=UTF-8</value>
</property>
<!--工具配置文件位置
<property name="toolboxConfigLocation">
<value>/WEB-INF/toolbox.xml</value>
</property>
-->
</bean>
<!-- Velocity配置 -->
---------------------------------------------------------------------------------------------
velocity.properties
input.encoding=UTF-8
output.encoding=UTF-8
#resource.loader=file
#file.resource.loader.class=org.apache.velocity.runtime.resource.loader.FileResourceLoader
#webapp.resource.loader.cache=false
resource.loader=webapp
webapp.resource.loader.class=org.apache.velocity.tools.view.WebappResourceLoader
webapp.resource.loader.path=/WEB-INF/velocity/
webapp.resource.loader.cache=false
velocimacro.library=macros/pageNavigationDetail.vm,macros/pageNavigation.vm,macros/errorMacro.vm
directive.parse.max.depth=5
velocimacro.permissions.allow.inline=true
velocimacro.permissions.allow.inline.to.replace.global=false
velocimacro.permissions.allow.inline.local.scope=true
velocimacro.context.localscope=true
相关jar包见附件
相关推荐
在IT行业中,构建高效、可维护的Web应用是至关重要的,而Maven、Spring MVC、Velocity和MyBatis是实现这一目标的四个关键组件。本文将深入探讨如何使用这些技术来搭建一个完整的Web应用程序。 首先,Maven是Apache...
SSM(Spring、SpringMVC、MyBatis)是一个经典的Java web开发框架组合,而Velocity则是常见的模板引擎,常用于视图层的渲染。在这个项目中,“ssm+velocity增删改分页(含数据库)”是针对初学者的一个实践教程,...
在这个系统中,Maven作为项目管理和构建工具,Velocity用于模板引擎生成动态网页,Spring MVC作为模型-视图-控制器框架,iBatis作为数据持久层解决方案,而MySQL则作为关系型数据库存储数据。 【Maven】是Apache...
部署到服务器通常涉及将项目打包成WAR或EAR文件,然后上传到应用服务器如Tomcat、Jetty等,或者通过Jenkins等持续集成工具自动部署。 【标签】"springMVC"和"myBatis"进一步明确了项目的核心技术。SpringMVC是...
9. **部署和测试**:将项目打包成war文件,部署到Tomcat服务器,通过浏览器访问验证SSH整合是否成功。 在实际开发中,SSH框架的整合还可以涉及安全控制(如Spring Security)、模板引擎(如FreeMarker或Velocity)...
### SSM框架——详细整合教程(Spring+SpringMVC+MyBatis) #### 1、基本概念 **1.1、Spring** Spring 是一个开源框架,最初由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的...
Spring MVC支持多种视图技术,如JSP、FreeMarker、Velocity等。 - **Controller**:控制器,处理用户请求,调用业务逻辑,并将结果返回给视图。 - **HandlerMapping**:处理器映射器,根据请求URL找到对应的...
- **Thymeleaf 或者 Velocity**:Spring Boot 支持多种模板引擎,如 Thymeleaf 和 Velocity,它们可以方便地将后端数据渲染成 HTML 页面。 ### 5. 数据访问 - **JPA 和 Hibernate**:Spring Boot 支持 JPA(Java ...
《2019精通Spring Boot 42讲》是一份深度学习Java开发框架Spring Boot的教程,涵盖了Spring Boot的核心概念、实战技巧以及最佳实践。在Java开发领域,Spring Boot以其简洁、快速的特性,已经成为现代企业级应用开发...
在 Spring Boot 中,默认并不支持 JSP,因为它的默认视图解析器是 Thymeleaf、Freemarker 或者 Velocity 等模板引擎,而不是传统的 JSP。但是,通过一些配置,我们可以让 Spring Boot 项目支持 JSP。 首先,要理解...
开发完成后,新闻发布系统会被打包成WAR文件部署在Web服务器或应用服务器上,如Tomcat、Jetty或WildFly。 以上就是Java新闻发布系统涉及到的核心技术和知识点,每个方面都有深入研究的空间,为构建高效、稳定、可...
Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,由Apache软件基金会维护。《Struts in Action》这本书是Struts框架的权威指南,它深入介绍了如何使用Struts来构建实际的Web应用。...
关闭Spring MVC DispatcherServlet vii. 65.7. 关闭默认的MVC配置 Spring Boot参考指南 7 viii. 65.8. 自定义ViewResolvers v. 66. 日志 i. 66.1. 配置Logback ii. 66.2. 配置Log4j i. 66.2.1. 使用YAML或JSON配置...
12. **Docker化部署**:SpringBoot应用可以被打包成可执行的JAR或WAR文件,非常适合Docker化部署,文档中可能会介绍如何编写Dockerfile和使用Docker Compose。 通过“尚硅谷SpringBoot教学文档”,你可以全面掌握...
10. **持续集成与部署**:Spring Boot的应用可以打包成可执行的JAR或WAR文件,方便通过Docker等容器技术进行自动化部署。 这个酒店管理系统项目可能包含了上述各个层面的代码示例和配置文件,通过学习和实践,...
Struts in Action源码分析 Struts是Java Web开发中的一款经典MVC框架,它极大地简化了...同时,这也有助于开发者更好地适应其他MVC框架,如Spring MVC或Play Framework,因为它们的核心思想和架构都有一定的相似性。
10. **Docker 包装**: Spring Boot 应用可以轻松地打包成可执行的 JAR 或 WAR 文件,并且可以被 Docker 容器化,便于部署和扩展。 在 `test.sql` 文件中,可能包含了初始化数据库的数据或脚本,这对于设置 Spring ...
【毕业设计新闻发布项目】是一个基于SSH(Struts2、Spring、Hibernate)框架的Web应用程序,旨在为用户提供一个发布和管理新闻的平台。SSH是Java Web开发中的经典组合,它能够有效地实现MVC(模型-视图-控制器)设计...