在Eclipse中新建一个Dynamic Web Project, 如果是用Tomcat做服务器,则在Target runtime 选择 Tomcat. 如果不用,这选择NONE.
建好project后,把JFinal jar包拷贝到项目的lib目录下.
在src目录下,建立package : demon.config 在包下建一个继承JFinalConfig的自定义类
再建一个package: demo.controller 在此包下建一个继承Controller的自定义类
在TestConfig 中的configConstant方法和configRoute方法:
@Override public void configConstant(Constants me) { //设置开发模式,在开发模式下,JFinal会对每次请求输出报告 //如输出本次请求的Controller,Method以及请求所携带的参数 me.setDevMode(true); //设置默认视图类型 me.setViewType(ViewType.JSP); //设置多个参数的分隔符号,如不设置,则默认为- me.setUrlParaSeparator("&"); } @SuppressWarnings("unchecked") @Override public void configRoute(Routes me) { //配置路由,将/hello映射到TestController控制器中 me.add("/hello",TestController.class); //me.add(new FirstRoute()); //me.add(new SecondRoute()); }
在TestController中写一个index方法
public class TestController extends Controller { //如果访问路经中没有指定访问的方法,则会映射到index方法中. public void index(){ this.renderText("hello my JFinal"); //this.render("/hello.jsp"); } //如果访问路经中指定了方法的方法名是sayHello,则映射到此方法中. public void sayHello(){ this.renderText("hello"); /** getPara 方法传入的参数为字符串类型,则是读取url中?后面所带的参数 例如http://localhost:8080/JFinal/hello/sayHello?id=1&name=abc 多个参数需用&符号分隔. */ String id = this.getPara("id");//读取路经中参数名为id的值 System.out.println(id); String name = this.getPara("name");//读取路经中参数名为name的值 System.out.println(name); /** getPara方法传入的参数为int类型,则是读取url中action名/后面的参数 多个参数默认是以-做为分隔符,亦可自己定义分隔符,定义方法参考JFinalConfig的 configConstant方法中 */ System.out.println(this.getPara(0));//读取路经中的第一个参数并打印 System.out.println(this.getPara(1));//读取路经中的第二个参数并打印 } }
在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_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>TestJFinal</display-name> <filter> <filter-name>jfinal</filter-name> <filter-class>com.jfinal.core.JFinalFilter</filter-class> <init-param> <param-name>configClass</param-name> <param-value>demo.config.TestConfig</param-value> </init-param> </filter> <filter-mapping> <filter-name>jfinal</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
注意: 在param-value中配置的必须为TestConfig所在的路经配置
都完成后,运行此project.看看结果
控制台:可看出访问的Controller及访问的方法.因http://localhost:8080/JFinal/hello没有指定方法名,因此会自动映射到index方法.
现在指定一个方法和参数http://localhost:8080/JFinal/hello/sayHello/123&456可看到访问的是sayHello. 参数是123&456. 在方法中分别拿到第一个参数和第二参数并输出在控制台.