JFinal 是基于 Java 语言的极速 WEB + ORM 开发框架,其核心设计目标是开发迅速、代
码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有 Java 语言所有优势的同时
再拥有 ruby、python、php 等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋
友 : )
JFinal 有如下主要特点:
MVC 架构,设计精巧,使用简单
码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有 Java 语言所有优势的同时
再拥有 ruby、python、php 等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋
友 : )
JFinal 有如下主要特点:
MVC 架构,设计精巧,使用简单
遵循 COC 原则,零配置,无 xml
独创 Db + Record 模式,灵活便利
ActiveRecord 支持,使数据库开发极致快速
自动加载修改后的 java 文件,开发过程中无需重启 web server
AOP 支持,拦截器配置灵活,功能强大
Plugin 体系结构,扩展性强
自动加载修改后的 java 文件,开发过程中无需重启 web server
AOP 支持,拦截器配置灵活,功能强大
Plugin 体系结构,扩展性强
多视图支持,支持 FreeMarker、JSP、Velocity
强大的 Validator 后端校验功能
功能齐全,拥有 struts2 绝大部分核心功能
体积小仅 218K,且无第三方依赖
强大的 Validator 后端校验功能
功能齐全,拥有 struts2 绝大部分核心功能
体积小仅 218K,且无第三方依赖
部署方法:
1、导入Jar包 jfinal-1.9-bin-with-src.jar
修改web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"
<web-app xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"
xmlns="
http://java.sun.com/xml/ns/javaee"
xmlns:web="
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 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">
<filter>
<filter-name>jfinal</filter-name>
<filter-class>com.jfinal.core.JFinalFilter</filter-class>
<init-param>
<param-name>configClass</param-name>
<param-value>cn.edu.sdnu.liuwei.jfinal.cfg.DemoConfig</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>jfinal</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
<filter>
<filter-name>jfinal</filter-name>
<filter-class>com.jfinal.core.JFinalFilter</filter-class>
<init-param>
<param-name>configClass</param-name>
<param-value>cn.edu.sdnu.liuwei.jfinal.cfg.DemoConfig</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>jfinal</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
所有的对该应用的http访问都通过
com.jfinal.core.JFinalFilter类来进行处理,这是一个过滤器的一个子类。
2、配置Config文件
首先在过滤器jfinal的配置中加入(上一步代码中已添加)
<init-param>
<param-name>configClass</param-name>
<param-value>cn.edu.sdnu.liuwei.jfinal.cfg.DemoConfig</param-value>
</init-param>
<param-name>configClass</param-name>
<param-value>cn.edu.sdnu.liuwei.jfinal.cfg.DemoConfig</param-value>
</init-param>
3、之后编写controller层:添加controller类继承于com.jfinal.core.Controller
package cn.edu.sdnu.liuwei.jfinal.controller;
import com.jfinal.core.Controller;
public class HelloController extends Controller {
public void index() {
renderText("Hello JFinal World.");
}
}
4、然后编写一个DemoConfigure类继承于com.jfinal.config.JFinalConfig,用于配置controller使其生效
package cn.edu.sdnu.liuwei.jfinal.cfg;
import cn.edu.sdnu.liuwei.jfinal.controller.HelloController;
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;
public class DemoConfig extends JFinalConfig {
@Override
public void configConstant(Constants me) {
me.setDevMode(true);//开启开发者模式
}
@Override
public void configRoute(Routes me) {
//配置应用主目录/hello 对应 HelloController这个controller类去处理
me.add("/hello", HelloController.class);
}
@Override
public void configPlugin(Plugins me) {}
@Override
public void configInterceptor(Interceptors me) {}
@Override
public void configHandler(Handlers me) {}
}
5、部署代码,测试,发现访问该应用的 /hello路径可以看到
说明访问/hello时,由对应的Controller类的 index()方法来处理。
如果我们在HelloController中添加test方法:
import com.jfinal.core.Controller;
public class HelloController extends Controller {
public void index() {
renderText("Hello JFinal World. ");
}
public void test(){
renderText("test执行!!!!");
}
}
部署服务器之后访问:http://localhost:8080/LearnJFinal/hello/test
太神奇了!!!
如果我们输入错误呢?
恩 JFinal框架给我们做了很人性化的设计,让我们程序员可以专注于业务,而不用在意那么多细节,真是棒棒哒!!
6、如果我们搭用于移动端访问的WebService 接口返回Json数据的时候,可以这么做:
会提示我们Json数据返回,打开后看到:
7、获取用户添加的参数:
使用getPara()方法:
在HelloController类中添加getInput()方法测试一下:
public void getInput(){
renderText(getPara()+"===我是分割线==="+getPara("username"));
}
工程部署完成后如何访问不用我教了吧,大家都是聪明滴孩纸^_^
啊哦,getPara()方法好像有点小问题哦,笔者读过源代码后发现,getPara()和getPara(String name)两个方法获取参数的方式不同,但也没关系,以后使用时只用getPara(String name)就够啦^_^
好了 JFinal的web基础部分就介绍到这里先^_^