Jfinal study note

 1、extends JFinalConfig 实现

                                   configConstant(Constants me) :

开发模式常量 devMode 的配置,默认视

图类型 ViewType 的配置,

me.setDevMode(true);

me.setViewType(ViewType.JSP);

 2、configRoute(Routes me) 实现HelloController.index() 方 法

http://localhost/hello/methodName 将 访 问 到

HelloController.methodName()

public void configRoute(Routes me) {

me.add("/hello", HelloController.class); //map 集合

}

JFinal 路由规则如下表:

url  组成  访问目标

controllerKey  YourController.index()

controllerKey/method  YourController.method()

controllerKey/method/v0_v1  YourController.method(),所带 url 参数值为:v0_v1

controllerKey/v0_v1  YourController.index(),所带 url 参数值为:v0_v1

下划线“_”来分隔多个

3、 configPlugin (Plugins me)配置数据路径

4、onfigInterceptor (Interceptors me) 拦载器、

在此处配置的拦截器将会对所有的请求进行拦截,除非使用

arp.addMapping("user", User.class);

arp.addMapping("article", Article.class);

ActiveReceord 中定义了

addMapping(String tableName, Class<? extends Model> modelClass>)方法,该方法

建立了数据库表名到 Model 的映射关系。

public class User extends Model<User> {

public static final User dao = new User();

}

以上代码中的 User 通过继承 Model,便立即拥有的众多方便的操作数据库

的方法 添加到数据中

以下为 Model 的一些常见用法: 在那个model里就查那个对象的值

// 创建name属性为James,age属性为25的User对象并添加到数据库

new User().set("name", "James").set("age", 25).save();

// 删除id值为25的User

User.dao.deleteById(25);

// 查询id值为25的User将其name属性改为James并更新到数据库

User.dao.findById(25).set("name", "James").update();

// 查询id值为25的user, 且仅仅取name与age两个字段的值

User user = User.dao.findById(25, "name, age");

// 获取user的name属性

String userName = user.getStr("name");

// 获取user的age属性

Integer userAge = user.getInt("age");

// 查询所有年龄大于18岁的user

List<User> users = User.dao.find("select * from user where age>18")

// 分页查询年龄大于18的user,当前页号为1,每页10个user

Page<User> userPage = User.dao.paginate(1, 10, "select *", "from user

where age > ?", 18)





@ClearInterceptor 在 Controller 中清除 

5 Action

Controller 以及在其中定义的 public 无参方法称为一个 Action。Action 是请

求的最小单位。Action 方法必须在 Controller 中声明,该方法必须是 public 可见

性且没有形参。

public class HelloController extends Controller {

public void index() {

renderText("此方法是一个action");

}

public void test() {

renderText("此方法是一个action");

}

}

以上代码中定义了两个 Action: HelloController.index()、 HelloController.test()。

在Controller中提供了getPara系列方法setAttr方法以及render系列方法供Action

使用getPara 系列方法HttpServletRequest.getParameter(String name)的封装 取值

列方法是去获取

urlPara中所带的参数值。 getParaMap与getParaNames分别对应HttpServletRequest

的 getParameterMap 与 getParameterNames。

getPara 使用例子:

方法调用  返回值

getPara(”title”)  返回页面表单域名为“title”参数值

getParaToInt(”age”)  返回页面表单域名为“age”的参数值并转为 int 型

getPara(0)  返回 url 请求中的 urlPara 参数的第一个值,如

http://localhost/controllerKey/method/v0_v1_v2  这

个请求将返回”v0”

getParaToInt(1)  返回url请求中的urlPara参数的第二个值并转换成

int 型,如 http://localhost/controllerKey/method/2_5_9 这

个请求将返回 5

3.4 setAttr 方法

setAttr(String, Object)转调了 HttpServletRequest.setAttribute(String, Object),

该方法可以将各种数据传递给 View 并在 View 中显示出来。

render 路径问题

render(”test.html”)  渲染名为 test.html 的视图,该视图的全路径

为”/path/test.html”

render(”/other_path/test.html”) 渲染名为 test.html 的视图,该视图的全路径

为”/other_path/test.html”,即当参数以”/”开头时将

采用绝对路径。

renderJson()  将所有通过 Controller.setAttr(String, Object)设置

的变量转换成 json 数据并渲染。

renderJson(“users” userList)  以”users”为根,仅将 userList 中的数据转换成 json

数据并渲染。

renderJson(new

String[]{“user”, “blog”})

仅将 setAttr(“user”, user)与 setAttr(“blog”, blog)设

置的属性转换成 json 并渲染。使用 setAttr 设置的

其它属性并不转换为 json。

Interceptor  应用 相当于 spring 注解



你可能感兴趣的:(Jfinal study note)