Grails는 컨트롤러가 서비스를 호출하고 컨트롤러가 다른 컨트롤러로 요청을 전달하는 것을 매우 쉽게 만듭니다.서비스 콜백 (Controller call back)?
은 그래서 당신은 어떤 컨트롤러에서 매우 쉽게 호출 할 수 있습니다 이러한
List<String> updateNames() {
...
}
같은 서비스 방법이 있다고 가정합니다.
궁금한 점이 있다면 서비스 방법에 유효성 검사 문제가 있음을 깨닫는 경우입니다. 예외적 인 경우는 아니기 때문에 Exception을 컨트롤러에 던지기를 원하지는 않습니다. 하지만 좋은 목록 대신 래퍼 객체를 사용해야한다는 이유로 호출 한 Controller에 대한 오류 메시지를 반환 할 수 없습니다.
어쨌든이 경우 서비스가 제공 될 수 있습니다. 사용자에게 오류 응답을 반환 할 수있는 다른 컨트롤러로 서버 측을 전달 하시겠습니까?
감사합니다.
이것은 예외적 인 경우를위한 이상적인 사용 사례로 보입니다. –
Sèrgio와 Joshua와 동의하십시오. 모든 유효성 검사 예외는 명령 객체 또는 도메인 인스턴스 자체를 사용하여 서비스 클래스로 이동하기 전에 처리 할 수 있습니다.Joshua가 관심사 분리에 대해 언급 한 것처럼 서비스는 http 호출 또는 유효성 검사 문제에 관해서는 알지 못합니다. 비즈니스 예외/시나리오에주의해야합니다. 그것은 롤백 트랜잭션을 수행하는 마지막 일 것입니다 런타임 예외 또는 서비스에서 오류를 던지고있다. 롤백을 처리하려면 ['TransactionAspectSupport'] (http://stackoverflow.com/a/17357547/2051952)를 사용해야합니다. – dmahapatro
@Ian Roberts 이유는 무엇입니까? 이것은 예상 할 수있는 일이며, 사용자가 잘못된 데이터를 입력 할 수 있습니다. 실제로 시스템 자체에서 아무 것도 실제로 잘못되지 않았습니다. –