2017-03-07 2 views
1

opencms에 1 개의 필드가있는 새로운 리소스 유형을 만들어야합니다. 이 필드는 대상 폴더 용입니다. VFS에서 폴더를 선택하고 리소스 (xml)를 저장할 때마다 포맷터는 지정된 폴더의 파일 목록을 렌더링합니다.opencms에있는 폴더의 파일을 나열하는 방법은 무엇입니까?

필자는 필요한 파일 목록을 만들 JSP 파일을 만들었지 만 타겟 폴더 만 하드 코딩했습니다. 엘 식을 사용하여 액세스 할 수있는 리소스 유형 (xml)에서 데이터를 읽는 방법을 모르겠습니다.

답변

0

이것이 작동하는지 잘 모르겠습니다. 그것을 밖으로 시도하십시오.

<cms:formatter var="content" val="value"> 
    <cms:contentload collector="singleFile" param="${value.TargetFolder.stringValue}"> 
     <cms:contentshow element="Title" /> 
    </cms:contentload> 
</cms:formatter> 

value 유형 Map<String, CmsJspContentAccessValueWrapper>이다. Javadoc에서 사용 가능한 다른 방법을 확인할 수 있습니다. CmsDefaultResourceCollector.getSingleFile()

XMLContent 자바 함께 읽을 수있는 또 다른 방법 :

나는로부터 수집했다. 예를 들면 : 내가 처음 (<% %> 사이) 자바의 데이터를 처리 할 필요가 그래서 자바 문서에서 뭔가가 필요하지만, 일이 내가 XML의 경로를하지 않아도 때문에

<c:set var="path" value="${value.TargetFolder.stringValue}"/> 
<% 
    String path = pageContext.getAttribute("path"); 
    CmsXmlContent xmlContent = CmsXmlContentFactory.unmarshal(jsp.getCmsObject(), path); 
    xmlContent.getStringValue(jsp.getCmsObject(), "Title", locale); 
%> 
+0

코드 조각은 유용하지 않다 (함유량). 하나의 콘텐트가 포맷터를 통해 렌더링 될 때마다 콘텐트 필드에서 값을 가져 와서 처리 한 다음 출력해야합니다. 예 : <% String valueFromField = getValueFromContentViaFormatter(); // process valueFromField out.println (valueFromField); %> – mihailacusteanu

+0

답변을 수정했습니다. 확인 해봐 – AdrianRM

관련 문제