MVC框架学习&分享

JFInal入门-环境搭建

2017-10-21  本文已影响0人  丶Zzz

基本搭建

  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>
   ```
上一篇下一篇

猜你喜欢

热点阅读