请问怎么让jfinal Validator 只是返回值数据

当我使用 Validator 测试的时候,每次都会报错说 java.lang.RuntimeException: File not found:D:\javaCode\jfinal\validateTest.html。请问该怎么样可以让它不需要 validateTest.html。以下是我的代码:

// Controller 层
@Before( DemoValidator.class )
public void validateTest(){
   System.out.println(getBean(DemoBean.class).getName());
}
public class DemoValidator extends Validator {
    @Override
    protected void validate(Controller c) {
        DemoBean bean = c.getBean(DemoBean.class);
        System.out.println(bean);
        validateRequiredString("demoBean.name", "nameMsg", "请输入用户名");
    }

    /**
     * handleError(Controller c)只有在校验失败时才会调用
     * @param c
     */
    @Override
    protected void handleError(Controller c) {
        System.out.println("检验失败.....");
        c.keepPara("demoBean.name");
        c.renderJson(c.keepPara().get("demoBean.name"));
    }
}

一时半会也找不到解决的方法,难道只能用拦截吗?

评论区

要输就输给追求

2019-11-29 16:34

这个是校验通过了。是因为你的action没有render。 只需要在action加上render就好了

JFinal

2019-11-29 17:01

在 validateTest 方法中添加一个:
renderNull();

zsdg

2019-11-30 10:02

@JFinal 请问Validator.handleError可不可以将数据返回给前端?或者通过别的操作将Validator相关的数据返回

zsdg

2019-11-30 10:03

JFinal

2019-11-30 12:16

@zsdg 在 handleError 中调用 controller 中的各种 render 方法即可

zsdg

2019-11-30 12:22

@JFinal 解决了,谢谢。

热门反馈

扫码入社