>>加载模板错(TEMPLATE_LOAD_ERROR): webapp 配置 beetl 出错

sjack 发布于 2014/06/16 15:34
阅读 2K+
收藏 0

@闲.大赋 你好,想跟你请教个问题:


>>加载模板错(TEMPLATE_LOAD_ERROR): 位于0行 资源:a.html 模板根目录为 WebContent\

不知道具体应该怎么做呢, 扩展名有具体要求没有呢

加载中
0
闲大赋
闲大赋
模板跟目录我看你是“WebContent\” 这个应该是绝对路径才对。你的开发环境是什么啊,用的是什么web框架,还有,你的配置文件怎么设置的

你可以直接调用api设置Web模板根目录:

WebAppResourceLoader loader = (WebAppResourceLoader)groupTemplate.getResourceLoader();
loader.setRoot("绝对路径地址")




sjack
sjack
是在 servlet 里,
0
sjack
sjack
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());




这是代码,  @闲.大赋

0
sjack
sjack
信息: 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




0
闲大赋
闲大赋
resourceLoader.setRoot("WebContent"); 这个地方错了,应该是个绝对路径,如:

resourceLoader.setRoot("\home\beetl\WEB-INF\template");


0
闲大赋
闲大赋

另外,与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.

0
dandyIder
dandyIder


@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");
	}



@闲.大赋

0
dandyIder
dandyIder
RESOURCE.root = /WEB-INF/bjui_pages/
0
闲大赋
闲大赋
时间久远了,如beetl群,具体问题具体分析吧
返回顶部
顶部