首先去jfinal官网下载资料:http://www.jfinal.com/
实现一个小的实例,例如在界面上输出“Hello World!”字样。。
具体的框架搭建介绍jfinal的官方网站上可以下载API,API里面介绍的已经非常非常详细了,然后这里只是记录一下自己的一点理解。
实现步骤:
1、创建项目,创建核心配置类,并且使该类继承JFinalConfig类,
2、在web.xml配置文件中进行配置
3、创建控制器类,并且使该类继承Controller类,然后配置好路由
4、写一个默认的index的action方法,在这个方法中使用renderText输出“Hello Word!”
5、启动项目,(启动方法参照jfinal官方文档),进行测试
核心配置类,需继承于JFinalConfig类
/**
* 文件说明
* @Description:扩展说明
* @Copyright: 2015 dreamtech.com.cn Inc. All right reserved
* @Version: V6.0
*/
package com.demo;
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;
/**
* @Author: feizi
* @Date: 2015年4月21日 下午3:40:37
* @ModifyUser: feizi
* @ModifyDate: 2015年4月21日 下午3:40:37
* @Version:V6.0
*/
public class DemoConfig extends JFinalConfig{
/**
* 常量配置
*/
@Override
public void configConstant(Constants me) {
//设置当前模式为开发模式
me.setDevMode(true);
}
/**
* 路由配置
*/
@Override
public void configRoute(Routes me) {
me.add("/", IndexController.class);
}
/**
* 插件配置
*/
@Override
public void configPlugin(Plugins me) {
}
/**
* 拦截器配置
*/
@Override
public void configInterceptor(Interceptors me) {
}
/**
* 处理器配置
*/
@Override
public void configHandler(Handlers me) {
}
}
2、配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>jfinal_demo_01</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>jfinal</filter-name>
<filter-class>com.jfinal.core.JFinalFilter</filter-class>
<init-param>
<param-name>configClass</param-name>
<param-value>com.demo.DemoConfig</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>jfinal</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
上面的这段配置就是配置jfinal的一个核心过滤器,像之前的Servlet中也会有类似的配置,SSH框架中也需要配置对请求进行过滤。作用类似。
<url-pattern>/*</url-pattern>
这个地方配置为 /* 表示对所有的请求都进行过滤,然后通过<filter-name>jfinal</filter-name>
这个映射路径找到上面所配置的jfinal核心过滤器,之后jfinal核心过滤器将请求进行转发,通过配置的初始化参数将请求转到<param-value>com.demo.DemoConfig</param-value>
这个核心配置类中,之后就会由我们自定义的路由机制跳转到相应的类进行处理。。
3、创建控制器xxxController类,该类需继承于Controller类,该类的作用是对访问请求的路径进行过滤处理,根据核心配置类中的路由规则配置,进入到对应的控制器action中,例如上面的路由配置me.add("/", IndexController.class);
是一个“/”,那么我们在浏览器中直接输入localhost的时候,就会默认进入到IndexController这个控制器类中,并且会默认进入到index()方法中。如果控制器中还有其他方法的话login()方法,那么我们想要访问login()方法的时候就需要在后面指定该action方法的名称,不进行指定默认就是index(),例如输入localhost/login就会进入到login()方法中了。
/**
* 文件说明
* @Description:扩展说明
* @Copyright: 2015 dreamtech.com.cn Inc. All right reserved
* @Version: V6.0
*/
package com.demo;
import com.jfinal.core.Controller;
/**
* @Author: feizi
* @Date: 2015年4月21日 下午3:44:05
* @ModifyUser: feizi
* @ModifyDate: 2015年4月21日 下午3:44:05
* @Version:V6.0
*/
public class IndexController extends Controller{
public void index(){
renderText("Hello Word!!!");
}
public void login(){
renderText("Hello Jfinal!!");
}
部署项目,启动运行。。
这里的这句话是直接将文本输出到界面,如果需要返回的是html页面,那么需要添加freemarker框架的jar包,使用render()方法.
render("index.html");
如果返回的页面是jsp页面,那么需要在核心配置类中的常量配置方法中(configConstant())中配置视图类型
/**
* 常量配置
*/
@Override
public void configConstant(Constants me) {
me.setDevMode(true);//设置开发模式
me.setViewType(ViewType.JSP);//配置视图类型
}
在控制器中返回jsp页面
render("index.jsp");
如果不配置ViewType,那么jsp文件则会以静态模板显示到界面,因为JFinal框架默认的就是静态模板,所以如果要返回jsp页面,那么就需要配置视图类型
render的系列方法还有很多,比如返回JSON,File,Javascript,Html等。
至于具体的jfinal的官方API文档里面已经介绍的相当详细了。。。。