加载模板错(TEMPLATE_LOAD_ERROR): webapp 配置 beetl 出错? 400 报错
@闲.大赋 你好,想跟你请教个问题:
>>加载模板错(TEMPLATE_LOAD_ERROR): 位于0行 资源:a.html 模板根目录为 WebContent\
不知道具体应该怎么做呢, 扩展名有具体要求没有呢
模板跟目录我看你是“WebContent\” 这个应该是绝对路径才对。你的开发环境是什么啊,用的是什么web框架,还有,你的配置文件怎么设置的
你可以直接调用api设置Web模板根目录:
WebAppResourceLoader loader = (WebAppResourceLoader)groupTemplate.getResourceLoader(); loader.setRoot("绝对路径地址")
Configuration cfg = null; try { cfg = Configuration.defaultConfiguration(); } catch (IOException e) {e.printStackTrace();} WebAppResourceLoader resourceLoader = new WebAppResourceLoader(); resourceLoader.setRoot("WebContent"); GroupTemplate groupTemplate = new GroupTemplate(resourceLoader, cfg); Template t = groupTemplate.getTemplate("a.html"); System.out.println("="+ t.render());
这是代码, @闲.大赋
######信息: Starting Servlet Engine: Apache Tomcat/7.0.54 >>加载模板错(TEMPLATE_LOAD_ERROR): 位于0行 资源:a.html 模板根目录为 WebContent\ = 六月 16, 2014 3:45:41 下午 org.apache.coyote.AbstractProtocol start
resourceLoader.setRoot("\home\beetl\WEB-INF\template");
另外,与servle集成 只要引用 ServletGroupTemplate(https://github.com/javamonkey/beetl2.0/blob/master/beetl-core/src/main/java/org/beetl/ext/servlet/ServletGroupTemplate.java),他默认使用的跟目录就是WebRoot 目录+配置文件配置的相对于WebRoot的目录,因此,如果你的模板位于WEB-INF\template, 则只需要使用ServletGroupTemplate,并且,配置文件RESOURCE.root=/WEB-INF/template.
######
@Controller(controllerKey= {"/", "/index"}) public class IndexController extends BaseController{ private static Logger log = Logger.getLogger(IndexController.class); public void index() { render("index.html"); } @ActionKey("/login") public void login () { System.out.println("login begn"); render("login.html"); System.out.println("login end"); } }我把login 方法写到 indexController 里面就可以正确访问
@Controller(controllerKey = "/login") public class LoginController extends BaseController{ private static Logger log = Logger.getLogger(LoginController.class); public void index () { System.out.println("login begn"); render("login.html"); System.out.println("login end"); } }写到 LoginController 里面 就出现和你一样的错误。求解
MyBeetlRenderFactory.java
public class MyBeetlRenderFactory extends BeetlRenderFactory { private static Logger log = Logger.getLogger(MyBeetlRenderFactory.class); public Render getRender(String view) { log.debug("MyBeetlRenderFactory start"); BeetlRender render = new MyBeetlRender(groupTemplate, view); log.debug("MyBeetlRenderFactory end"); return render; } public String getViewExtension() { return ".html"; } }
MyBeetlRender.java
public class MyBeetlRender extends BeetlRender { private static final long serialVersionUID = 508975754500775679L; private static Logger log = Logger.getLogger(MyBeetlRender.class); public static final String renderTimeKey = "renderTime"; public MyBeetlRender(GroupTemplate gt, String view) { super(gt, view); } public void render() { log.debug("MyBeetlRender render start"); long start = System.currentTimeMillis(); super.render(); long end = System.currentTimeMillis(); long renderTime = end - start; request.setAttribute(MyBeetlRender.renderTimeKey, renderTime); log.debug("MyBeetlRender render end"); }
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。