jfinal beetl 整合的时候 路由配置后返回路径有点知道怎么写了
比如路由配置
public void config() {
// TODO Auto-generated method stub
add("/",IndexController.class);
add("/content",ContentController.class);
}
然后ContentController控制器代码
private static final String path="admin/content/";
public void index()
{
render(path+"list.html");
}
本来是返回的视图路径为
现在返回的路径会把Controllerkey一起带上
>>加载模板错(TEMPLATE_LOAD_ERROR): 位于0行 资源:/content/admin/content/list.html
public void configConstant(Constants me) {
//开启开发模式
PropKit.use("Config.txt");
me.setMainRenderFactory(new BeetlRenderFactory());
me.setEncoding("UTF-8");
me.setDevMode(PropKit.getBoolean("devMode", false));
}
为现在不知道是那里出了问题
一、分析action请求路径
1、首先会在web.xml中配置过滤器拦截action请求路径部分截断------/path1;
2、然后在继承JFinalConfig类的configRoute方法里调用add方法的第一个参数设置action请求对应的controller------path2;
3、最后还有controller里的无参、public方法名的定位------methodName。
最后action的访问路径就是以上三个部分拼装起来(tomcat服务器):http://ip:端口号/项目名称/path1/path2/methodName。(这是基本的action访问路径组合)
注:还可以通过注解ActionKey的方式注释设置action的访问路径
二、视图解析路径
1、web项目的默认解析路径是从WEB-Root(MyEclipse的web项目)开始的;
2、首先在JFinalConfig的configConstant方法里调用setBaseViewPath设置视图解析的部分路径----/path1;
3、在JFinalConfig的configRoute里配置Controller时调用的add方法第三个参数也是视图解析路径的一部分-----/path2(如果调用的是add两个参数方法,则默认的配置为controllerKey,即第一个参数)
4、最后在Controller的render方法里配置视图的最后部分./path3/test.html(如:/index.html)
视图解析路径为:
1、如果render中的参数是以/开头,则视图解析路径为/path3/test.html;
2、如果redner中的参数不是以/开头(path3/test.html),则视图解析路径为/path1/path2/path3/test.html。
视图解析会在WEB-Root目录下查找相应的文件,路径不正确是找不到的。