溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

freemarker怎么在Spring MVC中使用

發(fā)布時間:2021-03-24 16:05:51 來源:億速云 閱讀:185 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關(guān) freemarker怎么在Spring MVC中使用,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

1、什么是Spring MVC?

Spring MVC是一種基于Java的實現(xiàn)了Web MVC設(shè)計模式的請求驅(qū)動類型的輕量級Web框架,即使用了MVC架構(gòu)模式的思想,將Web層進(jìn)行職責(zé)解耦,基于請求驅(qū)動指的就是使用請求-響應(yīng)模型,SpringMVC框架的目的就是幫助我們簡化開發(fā)。

Spring MVC 實現(xiàn)了即用的 MVC 的核心概念。它為控制器和處理程序提供了大量與此模式相關(guān)的功能。并且當(dāng)向 MVC 添加反轉(zhuǎn)控制(Inversion of Control,IoC)時,它使應(yīng)用程序高度解耦,提供了通過簡單的配置更改即可動態(tài)更改組件的靈活性。Spring MVC 提供了完全控制應(yīng)用程序的各個方面的力量。Spring 的 Web MVC 模塊是圍繞 DispatcherServlet 而設(shè)計的。DispatcherServlet 給處理程序分派請求,執(zhí)行視圖解析,并且處理語言環(huán)境和主題解析,并且還為上傳文件提供支持。

Spring MVC屬于Spring Frame Work的后續(xù)產(chǎn)品,已經(jīng)融合在Spring Web Flow里面。Spring框架最初由Rod Johnson撰寫,并于2003年6月根據(jù)Apache 2.0許可證首次發(fā)布。

Spring MVC框架提供了MVC(模型 - 視圖 - 控制器)架構(gòu)和用于開發(fā)靈活和松散耦合的Web應(yīng)用程序的組件。 MVC模式導(dǎo)致應(yīng)用程序的不同方面(輸入邏輯,業(yè)務(wù)邏輯和UI邏輯)分離,同時提供這些元素之間的松散耦合。

模型(Model)封裝了應(yīng)用程序數(shù)據(jù),通常它們將由POJO類組成。視圖(View)負(fù)責(zé)渲染模型數(shù)據(jù),一般來說它生成客戶端瀏覽器可以解釋HTML輸出。控制器(Controller)負(fù)責(zé)處理用戶請求并構(gòu)建適當(dāng)?shù)哪P?,并將其傳遞給視圖進(jìn)行渲染。

參考:SpringMVC中文官網(wǎng):SpringMVC中文官網(wǎng)

2、什么是Freemarker

FreeMarker是一個用Java語言編寫的模板引擎,它基于模板來生成文本輸出。FreeMarker與Web容器無關(guān),即在Web運行時,它并不知道Servlet或HTTP。它不僅可以用作表現(xiàn)層的實現(xiàn)技術(shù),而且還可以用于生成XML,JSP或Java 等。
目前企業(yè)中:主要用Freemarker做靜態(tài)頁面或是頁面展示

3、Freemarker的使用方法

把freemarker的jar包添加到工程中,Maven工程添加依賴

<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.23</version>
</dependency>

springMVC-servlet.xml文件內(nèi)容:

<bean id="viewResolver" 
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> 
<property name="cache" value="true" /> 
<property name="prefix" value="" /> 
<property name="suffix" value=".ftl" /> 
<property name="contentType" value="text/html;charset=UTF-8"></property> 
<property name="requestContextAttribute" value="request" /> 
<property name="exposeSpringMacroHelpers" value="true" /> 
<property name="exposeRequestAttributes" value="true" /> 
<property name="exposeSessionAttributes" value="true" /> 
</bean>

applicationContext.xml文件內(nèi)容:

<!-- freemarker的配置 -->
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/page/" />
    <!--上下文地址的獲取-->
<property name="freemarkerVariables">
<map>
<entry key="base" value="#{servletContext.contextPath}" />
</map>
</property>
<property name="defaultEncoding" value="utf-8" />
<property name="freemarkerSettings">
<props>
<prop key="template_update_delay">10</prop>
<prop key="locale">zh_CN</prop>
<prop key="datetime_format">yyyy-MM-dd</prop><!-- 時間格式化 -->
<prop key="date_format">yyyy-MM-dd</prop>
<prop key="number_format">#.##</prop>
</props>
</property>
</bean>

模板文件示例,ftl文件,freemarker.ftl

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>${title}</title>
</head>
<body>
${content}
</body>
</html>

Controler示例,通過ModelAndView引用一個模板,使用的時候名字不帶后綴

@Controller
@RequestMapping("/index/")
public class FreeMarkerController 
{
private Logger LOGGER = LoggerFactory.getLogger(FreeMarkerController.class);

//批量更新DQC數(shù)據(jù)用的
@RequestMapping(value = "test", produces = "text/plain;charset=UTF-8",
method = RequestMethod.GET)
public ModelAndView freeMarkerTest() 
{
ModelAndView mv = new ModelAndView("freemarker");
mv.addObject("title", "Spring MVC And Freemarker");
mv.addObject("content", " Hello world , This is my first spring mvc ! ");
return mv;
}
}

以上就是 freemarker怎么在Spring MVC中使用,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI