课程名称:Java工程师2022版
课程章节:SpringMVC入门与数据绑定
课程内容:
①SpringMVC整合FreeMarker:在pom.xml中引入依赖,启动FreeMarker模板引擎,最后配置FreeMarker
课程收获:
学习了在SpringMVC中整合FreeMarker的方法
1. 在pom.xml中引入依赖,启动FreeMarker模板引擎:
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>5.2.21.RELEASE</version>
</dependency>
2. 启动FreeMarker模板引擎:
<bean id="ViewResolver"class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<!-- 设置响应输出,并解决中文乱码 -->
<property name="contentType" value="text/html;charset=UTF-8"/><!-- 指定Freemarker模板文件扩展名 -->
<property name="suffix" value=".ftl"/>
</bean>
3. 配置FreeMarker(applicationContext.xml):
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<!--设置模板保存的目录-->
<property name="templateLoaderPath" value="/WEB-INF/ftl"/>
<!--其他模板引擎设置-->
<property name="freemarkerSettings">
<props>
<!--设置Freemarker脚本与数据渲染时使用的字符集-->
<prop key="defaultEncoding">UTF-8</prop>
</props>
</property>
</bean>
FreeMarker的使用:
为完成7.2节作业,使用SpringMVC与FreeMarker对数据进行展示,使用SpringJDBC从数据库中获取数据
<table cellpadding="10" border="1px solid red">
<tr style="color:purple; font-size: 18px" align="center" >
<td>编号</td>
<td>城市</td>
<td>价格</td>
<td>名称</td>
<td>到达日期</td>
<td>离开日期</td>
</tr>
<#list hotelList as hotel>
<tr>
<td>${hotel.getOrderNo()}</td>
<td>${hotel.getCity()}</td>
<td>${hotel.getPrice()}</td>
<td>${hotel.getHotelName()}</td>
<td>${hotel.getArriveDate()}</td>
<td>${hotel.getLeaveDate()}</td>
</tr>
</#list>
</table>
其中,关于FreeMarker对List进行遍历,要点如下:
1. 标签使用<#list> 与平时标签有异,在名字前需要加入’#’且识别大小写
2. 代码中“hotelList”为Controller中添加到ModelAndView对象中的列表
3. FreeMarker语法强调在#list标签中加入 as 关键字,而后面的hotel为hotelList中的每一个Hotel 类似 for(Hotel hotel : hotelList)
4. 使用EL表达式进行输出