使用Validator之后,httpkit.readdata()失效

package com.psy.quession;

import com.jfinal.core.Controller;
import com.jfinal.validate.Validator;

public class QValidator extends Validator {
    @Override
    protected void validate(Controller c) {
        validateToken("saveToken", "msg", "alert('上次已保存,请不要重复提交')");
    }

    @Override
    protected void handleError(Controller c) {
        c.renderText("重复提交");
    }
}



在Controller当中是这样的
@Before(QValidator.class)
    public void doQ() {
        String data = getRawData();

//        String data = HttpKit.readData(getRequest());


        renderText(data);
    }



    

上面是失效代码。不知道为什么

getRawData()

获取不到数据了。

评论区

陈伟

2021-05-18 07:23

波哥,问题解决了,我知道getrawdata和getpara是互相排斥的,那么,如何验证getrawdata重复提交表单数据呢?

杜福忠

2021-05-18 13:55

@陈伟 简单操作是把 saveToken 值挂在提交的 URL 上,
比如:/a/doQ?saveToken=XXX
这样是最简单的解决方式,以及验证提交文件等都是这个姿势。
原因就是HTTP消息结构中“URL”信息在“请求数据”之前,不用解析数据体就可以得到。



我一般是等解析完后JSON对象,再查看内置的Token是否重复,都是一样的

热门反馈

扫码入社