2

모델 및 컨트롤러 용 Play를 사용하지만 backbone.js 및 클라이언트 측 템플리트를 사용하여 응용 프로그램을 작성합니다. 이제, html 템플릿을 어떠한 백킹 컨트롤러없이 Play에서 제공하기를 원합니다. 템플릿을 공용 디렉토리에 넣을 수는 있지만 메시지 파일에서 템플릿의 문자열을 넣기 위해 Play의 템플릿 엔진을 사용하고 싶습니다. 다른 데이터는 필요 없기 때문에 각 템플릿에 더미 컨트롤러를 만들지 않아도됩니다. Play에서이 작업을 수행 할 수 있습니까?Play에 컨트롤러가없는 뷰 렌더링

답변

2

단일 컨트롤러를 만들고 매개 변수로 템플릿 이름을 전달할 수 있지만 좋은 생각인지 확실하지 않습니다.

public static void controller(String templateName) { 
    // add whatever logic is needed here 
    renderTemplate("Controller/"+templateName+".html");  
} 

그런 다음 해당 컨트롤러 방법에 대한 모든 경로를 가리 킵니다. 하지만 역방향 라우팅은 잊어 버리십시오.

필자는 여전히 각 템플릿에 대해 별도의 컨트롤러 메서드를 사용한다고 생각합니다. @Before 주석 (Play Framework documentation 참조)을 사용하면 각 컨트롤러 메소드 이전에 실행되는 정확히 한 곳에서 메시지 문자열을 처리 할 수 ​​있습니다. @With 주석을 사용하면 별도의 클래스에서이 논리를 사용할 수도 있습니다.

당신은 당신의 코드에서 어떤 장소에서 템플릿 엔진을 사용할 수 있습니다
1

:

String result = TemplateLoader.load("Folder/template.html").render(data); 
관련 문제