避免使用Java和Javascript进行重复的文本输入验证

时间:2016-12-21 08:55:46

标签: javascript jquery ajax validation spring-mvc

我正在使用AJAX控制器从服务器端提供对象。用户输入输入,AJAX控制器为该输入请求提供对象。我有一个复杂的验证逻辑,所以我用Java编写它,并把它放在AJAX控制器中。它看起来像这样:

@RequestMapping(value = "api/user/{user}", produces = "application/json", method = RequestMethod.GET)
public @ResponseBody UserData execute(@PathVariable(value = "user") String user) {

    if(validator.isValid(user)) {
        return service.getUserData(user);
    } else {
        throw new ResourceNotFoundException(INVALID_USER_FORMAT);
    }

在Javascript中,我像这样调用AJAX控制器:

// obtain user from text input
var user = $('#user_input').val();

$.getJSON("/api/user/"+user, function (data) {
    // ...
});

现在,我想在用户界面上显示错误消息,其中'#user_input'中输入的用户无效。我想使用我的控制器中的验证逻辑,而不是在Javascript中也有重复的验证逻辑。

当验证失败时,我应该从AJAX控制器返回什么,以及如何在Javascript中使用它,以便我可以显示类似“用户格式无效”的内容?什么是最佳做法?

0 个答案:

没有答案