위처럼 URL로 접속해서 사실은 index를 호출한 것이지만 예상과 다르게 302가 리턴되면서 알수 없는 URL로 리다이렉트가 되었습니다.
제 경우에는 /application/converters?obj.isPartialObject=false로 리다이렉트가 되었으며 화면에는 객체가 그대로 출력되었습니다.
이 문제는 Controller에서 Scala의 Implicit 타입컨버전을 사용했기 때문입니다.
object Application extends Controller {
implicit def converters(obj:DBObject) = new TweetPost(obj)
def index {
// .....
}
}
위 코드를 보시면 알겠지만 리다이렉트 된 URL은 Implicit타입컨버전의 함수명임을 알 수 있습니다. 이 Implicit 타입컨버전을 내부에서 사용하지 않은 컨트롤러에서는 괜찮지만 사용한 컨트롤러에서는 위와같이 작성할경우 타입컨버전의 함수명으로 리다이렉트 되어버립니다.
object Application extends Controller {
def index {
implicit def converters(obj:DBObject) = new TweetPost(obj)
// .....
}
}
이 문제를 해결하려면 위처럼 Implicit 타입컨버전을 각 컨트롤러 함수내에서 정의해서 사용하면 됩니다.
Comments