开发者社区> 问答> 正文

>>加载模板错(TEMPLATE_LOAD_ERROR): webapp 配置 ?400报错

加载模板错(TEMPLATE_LOAD_ERROR): webapp 配置 beetl 出错? 400 报错

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


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

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

展开
收起
爱吃鱼的程序员 2020-05-30 23:51:26 1962 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

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

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

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




    ######是在 servlet 里,######
    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("WebContent"); 这个地方错了,应该是个绝对路径,如:

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



    @闲.大赋

    ######RESOURCE.root = /WEB-INF/bjui_pages/######时间久远了,如beetl群,具体问题具体分析吧
    2020-05-30 23:51:28
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
OPEN SOURCE IN A DATA-DRIVEN WORLD 立即下载
探究 Node.js 的服务端之路 立即下载
穆客带你快速定位Node.js内存泄露 立即下载