1.如果直接render("xxx.html/xxx.jsp")的话请把默认的视图模式设置为相应的,否则会解析错误的。具体设置请参考Jfinal手册。
me.setViewType(ViewType.FREE_MARKER);
me.setViewType(ViewType.JSP);
me.setViewType(ViewType.VELOCITY);
默认是第一个。
2.注意render完成如果不想执行下面的代码请写上return
3.如果想在action中转调其他action有三种方法
一、方法的直接调用。
就是在action中调用其他的action方法。如
public void index() {
list();
}
public void list() {
Page<School> schoolPage = School.dao.paginate(getParaToInt(0, 1), 20, "select *", "from school");
setAttr("schoolPage", schoolPage);
setAttrs(getParaToInt(0, 1), defaultSchoolId);
render("index.html");
}
但这样是不调用list的拦截器及上级拦截器的。
二、请求转发forwardAction(actionUrl)
这种方式类似于struts,不过在Jfinal中这样是会经过你所调用acction的拦截器的。
三、重定向redirect(url)
这种方式也会调用请求url的拦截器(不过一般不怎么使用)
谈到了重定向我就在这多说几句,Jfinal的redirect系列设计的还是非常贴心的。
比如redirect(url, withOutQueryString) 如果不想?挂参的话可以把withOutQueryString设置为true
redirect301(url) 自动给你做301重定向
水平有限,写的有错的话欢迎大家指正。