1.2 jfinal-undertow 下开发

1、创建标准的 maven 项目

eclipse 主菜单选择 new,再选择 project

maven-new-project.png

在弹出的窗口中选择 Maven Project,点击 next 按钮进入下一步

maven-create-project.png

在接下来的窗口中勾选 Use default Wrokspace location 点击 next 进入下一步

maven-default-workspace.png

在接下来的窗口中的 Filter 栏输入 “webapp”,选择 org.apache.maven.archetypes maven-archetype-webapp 1.0,点击 next 进入下一步

maven-webapp.png

在接下来的窗口中输入 Group Id 以及 Artifact Id,点击 finish 完成项目的创建

maven-finish.png

创建创建完成后,最终的目录结构如下

maven-project-struct.png

注意:在某些低版本的 eclipse 中,项目创建完成后,在 main 目录下面会缺少 “java” 这个目录,只需要在资源管理器里面手动创建该目录即可

2、添加 jfinal-undertow 与 jfinal 依赖

打开 pom.xml 文件,在其中添加如下依赖

  1. <dependency>
  2.     <groupId>com.jfinal</groupId>
  3.     <artifactId>jfinal-undertow</artifactId>
  4.     <version>2.1</version>
  5. </dependency>
  6.  
  7. <dependency>
  8.     <groupId>com.jfinal</groupId>
  9.     <artifactId>jfinal</artifactId>
  10.     <version>4.9</version>
  11. </dependency>

如果需要 WebSocket 支持,再添加一个依赖,不开发 WebSocket 无需理会

  1. <dependency>
  2.     <groupId>io.undertow</groupId>
  3.     <artifactId>undertow-websockets-jsr</artifactId>
  4.     <version>2.0.30.Final</version>
  5. </dependency>

3、添加 java 文件

在项目 src/main/java 目录下创建demo包,并在 demo 包下创建 DemoConfig 文件

  1. package demo;
  2.  
  3. import com.jfinal.config.*;
  4. import com.jfinal.template.Engine;
  5. import com.jfinal.server.undertow.UndertowServer;
  6.  
  7. public class DemoConfig extends JFinalConfig {
  8.  
  9.     /**
  10.      * 注意:用于启动的 main 方法可以在任意 java 类中创建,在此仅为方便演示
  11.      *      才将 main 方法放在了 DemoConfig 中
  12.      *
  13.      *      开发项目时,建议新建一个 App.java 或者 Start.java 这样的专用
  14.      *      启动入口类放置用于启动的 main 方法
  15.      */
  16.     public static void main(String[] args) {
  17.         UndertowServer.start(DemoConfig.class, 80, true);
  18.     }
  19.  
  20.     public void configConstant(Constants me) {
  21.        me.setDevMode(true);
  22.     }
  23.     
  24.     public void configRoute(Routes me) {
  25.        me.add("/hello", HelloController.class);
  26.     }
  27.     
  28.     public void configEngine(Engine me) {}
  29.     public void configPlugin(Plugins me) {}
  30.     public void configInterceptor(Interceptors me) {}
  31.     public void configHandler(Handlers me) {}
  32. }

在 demo 包下创建 HelloController 类文件, 内容如下:

  1. package demo;
  2. import com.jfinal.core.Controller;
  3.  
  4. public class HelloController extends Controller {
  5.     public void index() {
  6.        renderText("Hello JFinal World.");
  7.     }
  8. }

4、启动项目

在 DemoConfig 类文件上点击鼠标右键,选择 Debug As,再选择 Java Applidation 即可运行

maven-run.png

5、开启浏览器看效果

打开浏览器在地址栏中输入: http://localhost/hello,输出内容为Hello JFinal World证明项目框架搭建完成

完整 demo示例 可在JFinal官方网站首页右侧下载:http://www.jfinal.com

注意:jfinal-undertow 默认不支持 JSP,强烈建议使用 jfinal 默认的模板引擎 enjoy,谁用谁爽翻。

如果一定要使用 JSP,可以参考文档 1.5 章节最后面的《JSP支持问题》:https://jfinal.com/doc/1-5,或者使用 jetty-server 作为开发环境:https://jfinal.com/doc/1-6