JFinal使用注意事项

JFinal是一个国产简单易用的轻量级Web开发框架,美中不足就是官方文档还是不够详细,容易陷入一些坑中:

  • JSON序列化/反序列化时,不能像使用FastJson那样直接生成getter/setter就完事儿了。JFinal的机制是:实体必须继承BaseModel,所有属性必须用父类的set方法进行填充。也就是说,它要求在setXXX()方法里面调用super.set("XXX",XXX)

  • 如果要在JFinal中使用Websocket的话,除了导入javaee-api的依赖包外,还需要进行额外配置:

1.新建一个处理Websocket的Handler类:

public class WebSocketHandler extends Handler {

    private Pattern filterUrlRegxPattern;
    

    public WebSocketHandler(String filterUrlRegx) {
        if (StrKit.isBlank(filterUrlRegx))
            throw new IllegalArgumentException("The para filterUrlRegx can not be blank.");
        filterUrlRegxPattern = Pattern.compile(filterUrlRegx);
    }


    @Override
    public void handle(String target, HttpServletRequest request, HttpServletResponse response, boolean[] isHandled) {
        // TODO Auto-generated method stub
        if (filterUrlRegxPattern.matcher(target).find())
            return ;
        else {
            next.handle(target, request, response, isHandled);
        }
    }

}

2.在JFinalConfig子类中注册:

@Override
public void configHandler(Handlers me) {
    me.add(new WebSocketHandler("^/websocket"));
}

你可能感兴趣的:(JFinal使用注意事项)