freemarker를 사용하여 컬렉션을 반복하고 컬렉션의 각 항목의 속성을 출력 할 수 있습니까?freemarker 사용자 정의 모음을 출력하는 데 사용할 수 있습니까?
이 컬렉션 속성은 동적이거나 하드 코딩 할 수 없으므로 데이터베이스에서 생성됩니다.
내가 찾고있는 것 : 다른 데이터베이스를 가리킬 수 있어야하고 각 테이블을 반복하고 테이블 열을 출력하십시오.
freemarker를 사용하여 컬렉션을 반복하고 컬렉션의 각 항목의 속성을 출력 할 수 있습니까?freemarker 사용자 정의 모음을 출력하는 데 사용할 수 있습니까?
이 컬렉션 속성은 동적이거나 하드 코딩 할 수 없으므로 데이터베이스에서 생성됩니다.
내가 찾고있는 것 : 다른 데이터베이스를 가리킬 수 있어야하고 각 테이블을 반복하고 테이블 열을 출력하십시오.
아마도 Java 토지의 데이터 구조가 무엇 이냐에 달려 있습니다. Freemarker는 컬렉션 (해시, 시퀀스)에 대한 기본 작업을 처리합니다. Java Map을 가지고 있다면, Freemarker는 "해시"(키를 직접 가져올 수 있음)처럼 사용할 수 있으며, Java의 목록은 Freemaker의 "시퀀스"처럼 보입니다. 테이블의 목록을 나타내는
당신이 말했다 자바의 경우 List<List<String>>
, 당신은 FTL에서 그들을 걸을 수 좋아 : 귀하의 컬렉션 목록을 구현하지 않거나 사용자 정의 클래스 인 경우
<#-- getMyTables() is a call into the primary template model object -->
<#assign myTables = getMyTables() />
<#list myTables as table>
<#list table as column>
${column}
</#list>
</#list>
Map 인터페이스를 사용하면 메소드를 직접 액세스 할 수 있습니다 (Freemarker는 템플릿 모델에서 메소드의 직접 액세스를 지원하고 템플릿 모델에서 벗어날 수있는 모든 것을 지원합니다). 예 :
<#-- getMyTablesAsList() is a call into the primary template model object -->
<#assign myTables = getMyTablesAsList() />
<#list myTables as table>
<#list table.getColumnNames() as column>
${column}
</#list>
</#list>
와우 (wow) 이것은 훌륭합니다. 최종 사용자를위한 안전 출력을 제공합니다. 보기 페이지에 삽입하는 클래스에만 액세스 할 수 있습니까? – mrblah
예, freemarker에서 참조 할 수 있도록 객체를 수동으로 삽입해야합니다. – Chii