render系列的方法将渲染不同类型的视图并返回给客户端,jfinal目前支持的视图类型有:freemarker,jsp,
velocity
,json,file,text,html等等,此外还可以继承render抽象类来无限扩展视图类型。
使用render(
String
)方法来渲染视图,是请求转发方式渲染视图的,
当执行完一个action后,想重定向到另一个action时,使用
redirect
(getRequest().getContextPath()+"/user");
getRequest().getContextPath()是工程的名字,
"/user"是想访问的控制类的映射的路由配置。
在使用jfinal开发时,把项目部署到
tomcat后,访问会遇到404问题,解决办法是:1.
在jsp的每个访问后台方法的链接都加上工程的名称,如:
<a href="${pageContext.request.contextPath }/user"><b>user管理</b></a>
一些静态资源也要加上工程名称,如css,js,等等。
得到工程路径的方法2:先配置
public void configHandler(
Handlers me) {
me.add(new ContextPathHandler("base"));//得到工程路径
}
调用
getAttr("base")
方法就得到工程路径了
在jfinal中的configInterceptor方法中加入的拦截器是全局拦截器,所以的访问都会先经过拦截器,当只有少数类不需要经过拦截器,但是大多数类需要经过拦截器,就配置全局拦截器,在不需要经过拦截器的类中加上@ClearInterceptor (xxx.class)就可以了。
,当拦截器只需要在访问具体的业务才调用时就不要在configInterceptor方法中加入此拦截器,只要在具体的业务控制类的前面加上@Before(BlogInterceptor.class)就可以了。
当只想拦截方法时,就在方法上加上@Before()就可以了
getPara系列方法分为两种类型 。第一种类型为 第一个形参为
String 的 getPara系列 方法 。该系列 方法 是对HttpServletRequest.getParameter(String name) 的封装 , 这类方法都是转调了 HttpServletRequest.getParameter(String name)。第二种类型 为第一个形 参为 int 或无形参的 getPara 系列 方法。 该系列方法 是去获取 urlPara 中所带的参数值。 getParaMap与 getParaNames分别对应 HttpServletRequest 的 getParameterMap与 getParameterNames 。
记忆技巧:第一个参数为 String类型的将获取表单或
url中问号挂参的 域值 。第 一个参数为 int或 或无参 数的 urlPara中的参数值 。
setAttr("",value)转调了HttpServletRequest.setAttribute("",value)方法,可以向页面传值