2013-05-03 3 views
0

예를 들어 URL이 "/"인 경우 응용 프로그램 컨트롤러에서 렌더링 할 템플릿을 어떻게 나타낼 수 있습니까 (예 : "app/views/index.scala.html")?URL을 기반으로 어떤 템플릿 (클래스)이 사용되고 있는지 어떻게 알 수 있습니까?

내 질문에 대한 답변 : "localhost : 9000/bob"과 같은 URL이 전달 된 AJAX 호출이 있습니다. 컨트롤러에서, 나는 "localhost : 9000/bob";을 생성 한 컨트롤러 메소드에 의해 반환 된 템플릿을 찾고 싶습니다.

Play에서는 이것이 가능하지 않을 수도 있습니다.

+0

달성하려는 목표는 무엇입니까? –

+0

@ MarusSoutier 나는 내 블로그에 설명 된 데모 프로젝트를 가지고있다. http://www.poornerd.com/2013/05/03/wysiwyg-editing-of-play-framework-templates-with-the-aloha-editor/ - > AJAX 요청에서 컨트롤러에 전달 된 URL을 기반으로 "편집"할 스칼라 템플릿을 알고 싶습니다. – poornerd

+0

그래서 해결책을 찾았습니까? 어쨌든, 나는 내가 취할 접근법에 대한 답을 썼다. –

답변

0

템플릿은 일반 클래스로 렌더링되므로 호출 할 수 있습니다. Action에 원하는 템플릿을 말하면됩니다.

스칼라 에서 :

def index = Action { 
    Ok(views.html.index("Your new application is ready.")) 
} 

자바에서 :

public static Result index() { 
    return ok(views.html.index.render("Your new application is ready.")); 
} 

는 또한 documentation를 보라. 간단한 첫 번째 Todo 목록 응용 프로그램을 작성하기위한 자습서가 있습니다. (Scala version, Java version)

+0

나는 그것을 얻었다, 그러나 그것은 나의 질문이 아니었다. "http : // localhost : 9000/bob"과 같은 URL이 전달되는 AJAX 호출이 있습니다. 컨트롤러에서 "http : // localhost : 9000/bob"을 생성 한 컨트롤러 메소드에서 반환 된 템플릿을 찾으려고합니다. Play에서는이 기능을 사용하지 못할 수도 있습니다. – poornerd

+0

@poornerd 그런 다음 질문을 세부 문제로 업데이트해야합니다. –

+0

@poornerd 렌더링 템플릿은 다른 어떤 것과 마찬가지로 정상적인 메서드 호출이기 때문에 절대적으로 적합하지는 않습니다. 귀하의 경우에는 어떤 컨트롤러 메소드가 어떤 템플릿을 렌더링 하는지를 알 수있는 맵을 유지하고있을 것입니다. – Carsten

0

일종의 컨텍스트를 유지하려는 경우 경로에 매개 변수를 추가 할 수 있습니다 (예 : /bob?ref=index이면 인덱스 템플리트에서 호출이 발생했음을 알 수 있습니다. 쿠키는 실행 가능하지만 덜 바람직한 옵션입니다.

두 경우 모두 액션 구성을 사용하여 컨트롤러에 바로 사용할 수 있습니다.

관련 문제