存档2023

Jfinal 框架





Jfinal 框架



    Maven仓库: https://mvnrepository.com/   // maven 仓库  可以查看到 各种插件的版本 以及引进代码

    JFinal官网: https://jfinal.com/


Jfinal项目入门
    下载 Jfinal 入门项目 https://jfinal.com/download/now?file=jfinal-blog-5.0.0.zip
        此文档在启动说明里有 安装部署即可
        1: 使用 blog.sql 中的 sql 语句创建数据库与数据库表
        2: 修改 src/main/resources/demo-config-dev.txt 文件,填入正确的数据库连接用户名、密码
        3: 将项目导入 eclipse。推荐使用 Eclipse IDE for Java EE Developers
        4: 打开 com.demo.common包下的 DemoConfig 文件,右键单击该文件并选择 Debug As ---> Java Application
        5: 打开浏览器输入  localhost 即可查看运行效果

    配置文件
        vim resources/undertow.txt
            undertow.port=9090             // 端口号
            undertow.devMode=true          // 热部署  需要构建完才能热部署 ctrl + F9     false关闭热部署

    打包 及 发布
        使用 idea 右侧Maven 工具栏 找到 package 进行打包 打包成 zip 文件  传到服务器 解压 运行 对应脚本即可
        项目下有 jfinal.bat 和 jfinal.sh 启动脚本
    
    ...............................................................................................................
    idea 新建 手动 jfinal 项目
        Maven Archetype
        jfinal
        D:\teo\jfinal
        Archetype: org.apache.maven.archetypes:maven-archetype-webapp


1. Action路由寻址            //  Action 是 每一个继承Controller的类下的方法 都是一个 Action 处理

    @Path("/user")           // 此注解 定义 访问路径

    vim com/demo/common/DemoConfig.java             // JFinal 程序的 配置文件
        public void configRoute(Routes me) {                 // 路由的配置   就是  网页的路径
            // 使用 jfinal 4.9.03 新增的路由扫描功能
            me.scan("com.demo.");                            // 路由扫描
            // me.add("user", UserController.class);            // 手动加了一个路由
        }


    vim com/demo/user/UserController.java
        @Path("/user")   // 添加访问路径    每一个继承Controller的类下的 方法 都是一个 Action 可以使用 /user/方法名 访问
        public class UserController extends Controller {
             public void login(){
                 renderHtml("登录");  // renderHtml 将数据填充到 HTML 模板中,并将生成的 HTML 字符串作为响应返回给客户端
             }                        //  返回一个网页
             public void logout(){
                 renderText("等等露露");
             }
             @NotAction      // 用于指示某个方法不应该被处理为 HTTP 请求的动作。 不会被处理的方法
             public void log(){
                 System.out.println("正在请求...");
             }
        }

2. Action参数注入

    参数的接收
        接收 get 请求  // 需要知道 请求的 参数名   http://127.0.0.1:9090/user/logout?name=xinling&age=17&id=s123
            String para1 = this.getPara("id");           // 接收 一个 id 的参数 如果没有接收到  用 null 替代
            String para2 = this.getPara("name","小明");  // 接收 一个 那么的参数  如果没有接收到 默认值是 小明
            Integer para3 = this.getParaToInt("age");    // 接收 一个 整形的参数
            Integer para4 = this.getParaToInt("age",33);
            
            
        接收 路径 请求         //  http://127.0.0.1:9090/user/logout/8-6-5
            String para1 = this.getPara(0);              // 使用 string 和 Integer 都能接收到 路径接收不到  /8/6/5 形式
            Integer para2 = this.getParaToInt(1);
            String para4 = this.getPara();               //  没有任何参数 取到的是 路径的  整体参数结果是 8-5-6
    
        接收 json 请求      // 需要一个标准类接收. 
            String json = this.getRawData();             // 字符串接收json 数据
            Student student = FastJson.getJson().parse(json, Student.class);   // 把json数据封装到类里面
            System.out.println("name =" + student.getName());
            System.out.println("username =" + student.getUsername());

            <dependency>                        // pom.xml 需要 加上 依赖  否则会报错
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.47</version>
            </dependency>
        
    问题01: String para1 = this.getPara("id");  这里的this可以省略 不知道为什么 可以直接写成 String para1 = getPara("id");
    问题02: http://127.0.0.1:9090/user/logout/8/5/6     这种参数怎么 接收
    问题03: 接收 json 数据
        

操作数据库
    vim com/finalfss/model/_MappingKit.java   // 此文件是用于处理数据库映射的。它提供了一组便捷的方法来执行数据库操作,
                                              // 需要把数据库中的表添加到这里面