restlet中使用freemaker举例

来源:互联网 发布:原生安卓手机推荐 知乎 编辑:程序博客网 时间:2024/05/21 09:52

本文使用restlet 2.2m3 为基础,通过freemaker的configuration的配置,从Tomcat 的class路径 /template下读取freemaker的模版信息并返回html内容。


package org.soachina.rest.component.resource;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.restlet.data.MediaType;import org.restlet.data.Status;import org.restlet.ext.freemarker.TemplateRepresentation;import org.restlet.representation.Representation;import org.restlet.resource.Get;import org.restlet.resource.ServerResource;import freemarker.cache.ClassTemplateLoader;import freemarker.cache.MultiTemplateLoader;import freemarker.cache.TemplateLoader;import freemarker.template.Configuration;public class GetDemoResource extends ServerResource {@Getpublic Representation getTemplate() {String templateName = "helloworld.ftl";TemplateRepresentation result = new TemplateRepresentation(templateName, getConfig() , MediaType.TEXT_HTML);result.setDataModel(buildModel());getResponse().setStatus(Status.SUCCESS_OK);return result;}private Map<String, Object> buildModel() {// Build the modelMap<String, Object> data = new HashMap<String, Object>();data.put("message", "Hello World!");// List parsingList<String> countries = new ArrayList<String>();countries.add("中国");countries.add("United States");countries.add("Germany");countries.add("France");data.put("countries", countries);return data;}private Configuration getConfig() {Configuration config = new Configuration();ClassTemplateLoader classLoader = new ClassTemplateLoader(getClass(), "/template");TemplateLoader[] loaders = new TemplateLoader[] { classLoader };MultiTemplateLoader multiLoader = new MultiTemplateLoader(loaders);config.setTemplateLoader(multiLoader);return config;}}


0 0
原创粉丝点击