加载模板错(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");
}