[英]How to send parameters to JSP and get them back updated in Spring MVC
[英]Spring MVC, handle errors in @service layer and send them to the jsp
我尋求在Spring MVC應用程序的@service層中處理錯誤驗證的最佳方法。
我有一個@Controller和一個@Service類。
我的控制器:
public String saveProduct(Product product) {
myService.saveProduct(product);
return "view";
}
我的服務:
public void saveProduct(Product product) {
// some validation here
myDao.save(product);
}
現在,假設驗證導致2或3個錯誤(顏色不合適,供應商現在無法交付產品,依此類推...),我必須同時顯示所有這些錯誤。
我該如何將這些錯誤傳遞給控制器,然后傳遞給jsp? 使用“錯誤”對象? 包含所有這些錯誤的異常嗎?
我已經看過這里了:將錯誤從服務層傳遞回視圖,但找不到合適的答案。 我真的必須為每個錯誤創建未經檢查的異常嗎? 如果我有20或30個錯誤該怎么辦?
最后,我創建了一個自定義異常來處理功能錯誤:
public class ServiceException extends Exception {
private List<String> errors = new ArrayList<>();
(...)
}
我還使用以下方法創建了ValidationErrorsHelper類:
public static void rejectErrors(final BindingResult result, final List<String> errors) {
if (errors != null) {
for (final String error : errors) {
result.reject(error);
}
}
}
在控制器類中,我捕獲到異常:
try {
this.myService.myFunction(...);
} catch (final ServiceException e) {
ValidationErrorsHelper.rejectErrors(result, e.getErrors());
}
這是我能找到的最好方法。 如果有更好的建議,我會全力以赴!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.