2011-07-22 25 views

Odpowiedz

3
get("/foo") { 
    servletContext.getRequestDispatcher("/bar").forward(request, response) 
} 
1

get() jest zdefiniowany jako (podobny do testu POST, et al):

def get(transformers : org.scalatra.RouteTransformer*)(action : => scala.Any) : org.scalatra.Route 

Zależy co rozumiesz przez wewnętrzne przekierowanie, jak sądzę po prostu chcesz wykonać akcję inną drogę za . Masz kilka opcji, co możesz zrobić. To wydaje się działać dla mnie:

val canonicalEndpoint = get("/first/route") { 
    //do things in here  
} 

Następnie można następnie zrobić:

get("/second/route")(canonicalEndpoint.action) 

I myślę, co można uzyskać pożądaną reakcję.

Podobają mi się zapisywanie całej odpowiedzi Route get(), ponieważ być może zechcesz jej użyć z funkcją url() w routingu skalatry.