1. Создать объекты шаблона через строку и выполнить обработку интерполяции
импортировать freemarker.template.template; импортировать java.io.outputstreamwriter; Импорт java.io.stringReader; импортировать java.util.hashmap; импортировать java.util.map; /** * Самый простой пример Freemarker * * @author Leizhimin 11-11-17 10:32 AM */public Class Test2 {public static void main (string [] args) выбрасывает исключение {// Создание шаблона объекта Template T = new Template (null, new StrestReader ("usErname: $ {Пользователь}; $ {name} "), null); // Создать интерполированную карту карты карты = new hashmap (); map.put ("user", "lavasoft"); map.put ("url", "http://www.baidu.com/"); map.put ("name", "baidu"); // Выполнить интерполяцию и вывод в указанный выходной поток T.Process (MAP, New OutputStreamWriter (System.out)); }} После выполнения консоль выводит результат:
Имя пользователя: Lavasoft; URL: http://www.baidu.com/;name: процесс Baidu завершен с кодом выхода 0
2. Создать объекты шаблона через файлы и выполнять операции интерполяции
импортировать freemarker.template.configuration; импортировать freemarker.template.template; Импорт java.io.file; импортировать java.io.outputstreamwriter; импортировать java.util.hashmap; импортировать java.util.map; / ** * Самый простой пример Freemarker * * @author Lezhimin 11-11-14 14:44 */ public Class Test {Private Configuration CFG; // шаблон конфигурации объект public void init () Throws Exception {// Инициализировать конфигурацию FreeMarker // Создать экземпляр конфигурации cfg = new configuration (); // Установить местоположение папки шаблона FreeMarker CFG.SetDirectoryFortemplayLateLoading (новый файл ("g: // testprojects // freemarkertest // src")); } public void Process () бросает исключение {// Создание карты карты, которая заполняет карту данных Map = new HashMap (); map.put ("user", "lavasoft"); map.put ("url", "http://www.baidu.com/"); map.put ("name", "baidu"); // Создать шаблон объекта шаблона t = cfg.getTemplate ("test.ftl"); // выполнять операции интерполяции на шаблоне и выходить в сформулированный выходной поток t.process (map, new outputstreamwriter (system.out)); } public static void main (string [] args) бросает исключение {test hf = new Test (); hf.init (); hf.process (); }}
Создать файл шаблона test.ftl
<html> <head> <title> добро пожаловать! </body> </html>
Привет, дорогой пользователь: имя пользователя: $ {user}; URL: $ {url}; Имя: $ {имя}
После выполнения результаты вывода консоли следующие:
<html> <head> <title> добро пожаловать! </body> </html>
Привет, дорогой пользователь:
Имя пользователя: Lavasoft; URL: http://www.baidu.com/; Имя: Baidu Process завершен с кодом выхода 0
3. Экземпляр на основе аннотаций Spring+Freemarker
Диаграмма веб -проекта
web.xml файл
<? xml version = "1.0" Encoding = "utf-8"?> <web-app yd = "webapp_id" version = "2.4" xmlns = "http://java.sun.com/xml/ns/j2ee" xmlns: xsi = "http://www.w3. xsi: schemalocation = "http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <!-Configure DispatcherServlecer-> <servlet-name> springmvc </servlet-name> <! <Servlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <!-Укажите местоположение файла конфигурации Spring MVC без указания использования по умолчанию-> <Init-Param> <Param-Name> contextConfiglocation </param-name> <param-value> /web-inf/springmvcserfocation </param-name> <param-value> /web-inf/springmvcercevalcation </param-name> <param-value> /web-inf/springmvclocation. <!-по умолчанию:/web-inf/<servlet-name> -servlet.xml ClassPath Метод: <param-value> classpath:/spring-xml/*. Xml </param-value>-> </init-param> <!-Установите порядок запуска-> <Load-on-startup> 1 </load-startup> </Servlet> <и Servlet, что MAR-nam-nam-nam-name, и Servlet, что MAR-nam-name, и Servlet, и MAMPLE, что MARLET-NAME. DispatcherServlet в одну и ту же сервис-имени-> <Servlet-Mapping> <Servlet-name> Springmvc </servlet-name> <url-pattern>/</url-pattern> <!-перехват/все запросы-> </servlet-mapping> <selclowive-file-list> <welcessfile> index.jsp </werveding file> </werveding-file-list> <welcome-file> index.jsp </werveding file> </whedelce-file-list>
Springmvc-servlet.xml файл
<? xml version = "1.0" Encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: p = "http://www.springframework.org/schema/p" xmlns: mvc = "http://www.sprameframe.sprame. xmlns: context = "http://www.springframework.org/schema/context" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.spramework.org/schema/beans/springbeans.s.xsspring.s.s.xspring.s.xspring.s.spring.s.spring.s.s.spring.s.spring.s.spring.s.spers.s.spring.s.spring.s.spers.s.spers.s.spring.s.spers.s.spers.s.spersbembembems. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xspation.scapting.mostation.maltation.maltation.maltation.mosttation.maltation.mostation.smotation. Поддержка-> <MVC: Annotation-Riven /> <!-Автоматический пакет сканирования-> <Контекст: компонент-сканирование Base-package = "com.spring.freemarker" /> <!-<Контекст: Annotation-config /> Configure Automatic Scanning Package Configuration. Эта конфигурация может быть пропущена-> <!-<beancure Configure. Конфигурация. Путь шаблона Freemarker-> <Bean> <Property name = "templateLoaderPath" value = "web-inf /ftl /" /> <name = "defaultEncoding" value = "utf-8" /> < /bean> <!-freemarker view parser-> <bean> <prop-name = "value =". value = "text/html; charset = utf-8"/> <!-Это значение переменной-pagecontext.request, как использовать страницу: rc.contextPath-> <name = "requestContextAttribute" value = "rc"/> </bean> </beans>
Класс Freemarkercontroller
пакет com.spring.freemarker; импортировать java.util.arraylist; импортировать java.util.list; Импорт javax.servlet.http.httpservletrequest; Импорт javax.servlet.http.httpservletresponse; Import org.springframework.sterotype.controller; Импорт org.springframework.web.bind.annotation.requestmapping; Импорт org.springframework.web.servlet.modelandView; Импорт com.spring.vo.user; @Controller @RequestMapping ("/Home") открытый класс FreeMarkerController {@RequestMapping ("/index") public modelAndView add (httpservletrequest, httpservletresponse response) {user user = new user (); user.setusername ("Zhangsan"); user.setpassword ("1234"); Список <user> users = new ArrayList <user> (); users.add (пользователь); вернуть New ModelAndView («Индекс», «Пользователи», пользователи); }}Пользовательский класс
пакет com.spring.vo; Пользователь открытого класса {private String username; Private String Password; public String getUsername () {return username; } public void setUsername (string username) {this.username = username; } public String getPassword () {return пароль; } public void setPassword (String password) {this.password = password; }}
index.ftl файл
<! Doctype html public "-// w3c // dtd html 4.01 Transitional // en" "http://www.w3.org/tr/html4/loose.dtd"> <html> <head> <meta http-equiv = "content-velity" http-equiv = "content-" http-eviv = "content" <title> Вставьте заголовок здесь </title> </head> <body> <#list Пользователи как пользователь> Имя пользователя: $ {user.username} <br/> пароль: $ {user.password} </#list> </body> </html> Развертывание в Tomcat и запустить: http: // localhost: 8080/springmvc/home/index
Покажите результаты:
Имя пользователя: Чжангсан Пароль: 1234