maven下的ssm项目
最开始报错因为缺少freemarker,后来在Pom.xml里面添加如下语句。
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>${freemarker.version}</version>
</dependency>
pom.xml页面不报错,但是有红叉
在pom.xml的Overview中看到错误提示:
java.lang.ClassNotFoundException: mons.fileupload.FileItemFactory
原来是我没有说明版本,于是添加下面加粗的版本。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<org.mybatis.version>3.2.3</org.mybatis.version>
<org.springframework.version>4.0.0.RELEASE</org.springframework.version>
<freemarker.version>2.3.20</freemarker.version>
</properties>
当然也可以直接在
<dependency>里面添加 <version>2.3.20</version>
梳理一下这个模板
FreeMarker是一款用java语言编写的模版引擎,它虽然不是web应用框架,但它很合适作为web应用框架的一个组件。
简单来说就是视图解析器的时候的一个模板。在application.xml的配置文件中
<!-- 开启springmvc对注解的支持 -->
<mvc:annotation-driven />
<!-- 自动扫描springmvc控制器组件 -->
<context:component-scan base-package="一般是controller的包" />
<!-- 配置freeMarker的模板路径 -->
<bean
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<!-- 配置freemarker的文件编码 -->
<property name="defaultEncoding" value="UTF-8" />
<!-- 配置freemarker寻找模板的路径 -->
<property name="templateLoaderPath" value=".ftl文件的路径" />
</bean>
<!-- freemarker视图解析器 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<!-- 是否在model自动把session中的attribute导入进去; -->
<property name="exposeSessionAttributes" value="true" />
<!-- 配置逻辑视图自动添加的后缀名 -->
<property name="suffix" value=".ftl" />
<!-- 配置视图的输出HTML的contentType -->
<property name="contentType" value="text/html;charset=UTF-8" />
</bean>
试图解析器属于基本的配置,而FreeMarker是他的一个配置。