1 快速上手

2 JFinalConfig

3 Controller

4 AOP

5 ActiveRecord

6 Enjoy 模板引擎

7 EhCachePlugin

8 RedisPlugin

9 Cron4jPlugin

10 Validator

11 国际化

12 Json 转换

13 JFinal架构及扩展

14 升级到 3.8

3.4 get / getPara 系列方法

    Controller提供了getPara系列方法用来从请求中获取参数。getPara系列方法分为两种类型。第一种类型为第一个形参为String的getPara系列方法。该系列方法是对HttpServletRequest.getParameter(String name)的封装,这类方法都是转调了HttpServletRequest.getParameter(String name)。

    第二种类型为第一个形参为int或无形参的getPara系列方法。该系列方法是去获取urlPara中所带的参数值。getParaMap与getParaNames分别对应HttpServletRequest的getParameterMap与getParameterNames。


    记忆技巧:第一个参数为String类型的将获取表单或者url中问号挂参的域值。第一个参数为int或无参数的将获取urlPara中的参数值。

 getPara使用例子:

14.png


   jfinal 3.6 重要更新:jfinal 3.6 针对 getPara 系以及 getParaToXxx 系统方法添加了更简短的替代方法,以下是部分使用示例:

// 替代 getPara 的 get 用法
String title = get("title");

// 替代 getParaToInt 的 getInt 用法
Integer age = getInt("age");

// 替代 setAttr 的 set 用法
set("article", article);


    jfinal 3.5 重要更新:jfinal 3.5 版本新增了 getRawData() 方法,可以很方便地从 http 请求 body 中获取 String 型的数据,通常这类数据是 json 或 XML 数据,例如:

String json = getRawData();
User user = FastJson.getJson().parse(json, User.class);

    以上代码通过 getRawData() 获取到了客户端传过来的 String 型的 json 数据库。 getRawData() 方法可以在一次请求交互中多次反复调用,不会抛出异常。

    这里要注意一个问题:通过 forwardAction(...) 转发到另一个 action 时,getRawData() 无法获取到数据,此时需要使用 setAttr("rawData", getRawData()) 将数据传递给 forward 到的目标 action,然后在目标 action 通过 getAttr("rawData") 获取。一般这种情况很少见。