0

컨트롤러 메서드를 호출하여 템플릿 내에서 템플릿을 렌더링 할 수 있습니까? 아니면 완전히 잘못된 것입니까?템플릿 내의 컨트롤러에서 템플릿을 렌더링하는 방법 - Java, Play 2.1

div 컨테이너에는 내 productTable 템플릿에서 표시되는 스팅 만 표시되지만 재 명명 된 html은 표시되지 않습니다.

내부에 표시되는 문자열 <div class="products"> :

SimpleResult(200, Map(Content-Type -> text/html; charset=utf-8)) 

템플릿 :

@categories.map {cat => 
<div>some html</div> 
<div class="products">@controller.Products.getByCatergoyId(cat.id)</div> 
} 

컨트롤러 : 당신이 당신의 방법 shouldn를 보려면 productTable의 코드를 얻고 싶다면

public static Result getByCatergoyId(Long catId) { 
List<Product> products = Product.find.where().eq("category.id", catId).findList(); 
return ok(views.html.display.productTable.render(products)); 
} 

답변

2

Result을 반환하지만 단지 String을 반환합니다. 렌더링 된 코드 .... aaaannnyyyyway를 사용하면 Play의 서브 템플릿을 렌더링하는 훨씬 더 좋은 방법이 있습니다. 문서의 Tags 섹션을 확인하십시오. 물론 뷰에서 직접 원하는 부분을 정확히 처리 할 수 ​​있습니다. 물론 제품을 전달해야합니다. 그것에 반대하십시오.

view 패키지에 tags 패키지를 만들고 일반 템플릿과 똑같이 동작하는 하위 템플릿 (페이지가 두껍게 만 표시됨)을 추가하십시오.

관련 문제