私はAJAXコントローラを使用しています。ここではワークフローは次のとおりです。Spring MVC:入力検証はどこで行うべきですか?
- ユーザーがテキストボックスにデータを入力する入力されたデータが期待される(有効な)データ形式に対応していない場合は、(つまり、いくつかの正確な正規表現)検索
- を打つ - 検証エラーメッセージが表示されます
- 入力されたデータが正しい場合、コントローラが呼び出されます。コントローラは、ユーザ(テキストボックス)から(検証)データに基づいて、外部サービスを呼び出し、対応するJSONを返し、AJAXは、クライアント側のJavaScript
Controller.java
@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が
// obtain user from text input
var user = $('#user_input').val();
$.getJSON("/api/user/"+user, function (data) {
// ...
});
、私は検証が私のコントローラで行われ、およびNOT JavaScriptで持っています。例えば、私は、コントローラからそれを削除することもできますし、単にJavaScriptでそれを持って、このような:
// obtain user from text input
var user = $('#user_input').val();
if(validate(asin)) {
$.getJSON("/api/user/"+user, function (data) {
// ...
});
}
優れているどのような質問
、およびより良好なパターンは何ですか?コントローラのような、またはJavascriptでの検証がある?