美文网首页MVC框架学习&分享
JFInal入门-环境搭建

JFInal入门-环境搭建

作者: 丶Zzz | 来源:发表于2017-10-21 15:11 被阅读0次

    基本搭建

    1. maven依赖
    //主要两个依赖,JFinal&Jetty
     <!-- https://mvnrepository.com/artifact/com.jfinal/jfinal -->
          <dependency>
            <groupId>com.jfinal</groupId>
            <artifactId>jfinal</artifactId>
            <version>3.2</version>
          </dependency>
        <!-- https://mvnrepository.com/artifact/com.jfinal/jetty-server -->
        <dependency>
          <groupId>com.jfinal</groupId>
          <artifactId>jetty-server</artifactId>
          <version>8.1.8</version>
          <scope>compile</scope>
        </dependency>
    
    1. web.xml的配置
    //1.添加filter 2.添加jfinal的配置类
    <filter>
        <filter-name>jfinal</filter-name>
        <filter-class>com.jfinal.core.JFinalFilter</filter-class>
          <!--初始化jfinal的config类-->
          <init-param>
              <param-name>configClass</param-name>
              <param-value>com.zl.server.ScreenConfig</param-value>
          </init-param>
      </filter>
      <filter-mapping>
        <filter-name>jfinal</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
    
    1. 启动方式(main)
    // idea 不支持热加载的方式
    JFinal.start("src/main/webapp",80,"/"); 
    
    1. config类的配置

    ScreenConfig类,继承JFinalConfig类。目前只配置简单的路由信息,将前后端请求打通。
    在configRoute方法当中,配置简单路由信息.

    public class ScreenConfig extends JFinalConfig {
        @Override
        public void configConstant(Constants constants) {
            //设置为开发模式
            constants.setDevMode(true);
        }
        @Override
        public void configRoute(Routes routes) {
            //配置路由信息 带 / 为绝对路径
            routes.add("/hello",HelloController.class);
        }
        @Override
        public void configEngine(Engine engine) {
    
        }
        @Override
        public void configPlugin(Plugins plugins) {
    
        }
        @Override
        public void configInterceptor(Interceptors interceptors) {
    
        }
        @Override
        public void configHandler(Handlers handlers) {
    
        }
    }
    
    1. 创建controller
      方式比较简单,只需要将特定的*Controller类继承基类Controller即可。
    public class HelloController extends Controller {
      public void index(){
          renderText("first test");
      }
    }
    
    

    ctrl+F5 重启启动服务器,浏览器输入localhost/hello (注意我在路由配置的绝对路径的方式),至此前后端数据流已经打通。

    异常信息

    1. server启动
    Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/jetty/server/Connector
       at com.jfinal.core.JFinal.start(JFinal.java:168)
       at com.zl.server.StartServer.main(StartServer.java:15)
    Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.server.Connector
       at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
       at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
       ... 2 more
    

    解决方案

    //pom.xml文件添加依赖 备注:scope的value值complie,官方库里面提供的值为provided
     <dependency>
         <groupId>com.jfinal</groupId>
         <artifactId>jetty-server</artifactId>
         <version>8.1.8</version>
         <scope>compile</scope>
       </dependency>
       ```
    

    相关文章

      网友评论

        本文标题:JFInal入门-环境搭建

        本文链接:https://www.haomeiwen.com/subject/wtviuxtx.html