JFinal模板调用问题

0xAB 发布于 2014/01/22 11:24
阅读 1K+
收藏 0

【DevOps必读】产品经理与程序员之间如何破局?>>>

问题:

jfinal中的controller如果使用绝对路径入/WEB-INF/template/hello/db_list2.jsp那么,模板能够正常显示。如果采用的相对路径入db_list.jsp,那么访问的时候会显示404错误(

HTTP Status 404 - /JFinalTest1/D:/server/tomcat7/webapps/JFinalTest1/template/hello/db_list2.jsp

但是,实际上,这个目录下面存在db_list2.jsp文件。

配置文件也已经设置了模板基准目录

PathKit.getWebRootPath()+"/template/"

配置文件如下

package cn.aibow.jfinal;

import com.jfinal.config.Constants;
import com.jfinal.config.Handlers;
import com.jfinal.config.Interceptors;
import com.jfinal.config.JFinalConfig;
import com.jfinal.config.Plugins;
import com.jfinal.config.Routes;
import com.jfinal.ext.handler.ContextPathHandler;
import com.jfinal.kit.PathKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.c3p0.C3p0Plugin;
import com.jfinal.render.ViewType;

public class DemoConfig extends JFinalConfig {

	@Override
	public void configConstant(Constants me) {
		me.setDevMode(true);
		me.setViewType(ViewType.JSP);
		me.setBaseViewPath(PathKit.getWebRootPath()+"/template/");
	}

	@Override
	public void configRoute(Routes me) {
		me.add("/hello",HelloController.class);
	}

	@Override
	public void configPlugin(Plugins me) {
		C3p0Plugin c3p0 = new C3p0Plugin("jdbc:mysql://localhost/jfinal1", "root", "123456");
		me.add(c3p0);
		ActiveRecordPlugin arp = new ActiveRecordPlugin(c3p0);
		me.add(arp);
		arp.addMapping("t_users", TUser.class);
	}

	@Override
	public void configInterceptor(Interceptors me) {
		me.add(new DemoInterceptor());
	}

	@Override
	public void configHandler(Handlers me) {
		me.add(new ContextPathHandler());
		
	}

}



Controller代码如下
package cn.aibow.jfinal;

import org.apache.commons.lang.math.NumberUtils;

import com.jfinal.core.ActionKey;
import com.jfinal.core.Controller;
import com.jfinal.plugin.activerecord.Page;

public class HelloController extends Controller {
	
	@ActionKey("/db/list2")
	public void dbList2(){
		Page<TUser> list = TUser.dao.paginate(1, 10, "select *", "from t_users");
		this.setAttr("page", list);
		render("db_list2.jsp");
	}
	
}



加载中
1
okk
okk

“/JFinalTest1/D:/server/tomcat7/webapps/JFinalTest1/template”这个里面没有web-INF/,再者setBaseViewPath,不用那么麻烦,直接me.setBaseViewPath(“web-inf/template/”)即可。

返回顶部
顶部