3.3 Action带参

  1. JFinal 3.2 版本开始,其 jfinal-java8 编译版本已支持Action携带形参,不使用此特性的可以跳过本小节。以下是代码示例:
  1. public class ProjectController extends Controller {
  2. public void index(Project project) {
  3. project.save();
  4. render("index.html");
  5. }
  6. }
  1. Action带参可以代替getParagetBeangetModel系列方法获取参数,使用UploadFile参数时可以代替getFile方法实现文件上传。这种传参方式还有一个好处是便于与swagger这类第三方无缝集成,生成API文档。
  2. **小技巧**:如果action形参是一个model或者bean,原先通过getBean(User.class, "") 获取时第二个参数为空字符串或null,那么与之等价的形参注入只需要用一下 @Para("") 注解即可:
  3. public void action(**@Para("")**User user) { …. }
  4. 使用带参Action需要进行两步操作,第一步需要在 java8 下使用 jfinal-java8 版本,其maven坐标如下:
  1. <dependency>
  2. <groupId>com.jfinal</groupId>
  3. <artifactId>jfinal-java8</artifactId>
  4. <version>3.4</version>
  5. </dependency>
  1. 第二步是在开发工具中配置打开编译参数保留住方法参数名称。注意过于老旧的eclipse版本不支持java8和该配置项,建议至少使用eclipse mars版本,以下是eclipse中的设置:

9.png

  1. 检查项目属性配置的Java Build Path菜单下的Libraries下的java版本是否为1.8

10.png

  1. 检查项目属性配置的Project Facets菜单下的 java版本配置确定是否为1.8

11.png

  1. **注意:配置完成后,先将原有编译出来的class文件clear掉,并重新编译一次整个项目**
  2. 如果使用IDEA,添加一个编译参数 -parameters即可,其配置方法如下:

12.png

  1. 如果要使用maven插件进行编译,为maven-compiler-plugin编译插件配置一个&lt;compilerArgument&gt;-parameters&lt;/compilerArgument&gt; 属性即可:

13.png

< 3.2 Action

3.4 getPara系列方法 >

原文: http://www.jfinal.com/doc/3-3