0
예가 작동합니다. 문맥이 p:dataTable
이 아닌 getData
이라면 null
을 반환합니다. 메서드가 null
을 반환하는 경우에는 Values.iterateOverDatatableValues
을 참조하십시오. 내 문맥에서 row
을 어떻게 정의 할 수 있습니까? 값을 반복 할 수있는 함수가 datager 일 수 있으므로 #{row}
이 정의됩니까?일부 값에 대해 EL-Context를 확장하십시오. <code>#{row}</code>이 <code>p:dataTable</code>에 정의되어 있기 때문에 xhtml의 예가 작동합니다.
자바 : #{row}
가 Test.getData()
에 정의
@Named
@SessionScoped
class Test {
public Object getData() {
return Faces.evaluateExpressionGet("#{row.someProperty}"); //The String "#{row.someProperty}" comes from a collection.
}
}
XHTML :
<p:dataTable value="#{bean.values}" var="row">
<p:column>
<h:outputText value="#{test.data}" />
</p:column>
</p:dataTable>
자바는 #{row}
는 정의되지 않는다 :
class Values {
@Inject
Test test;
public void iterateOverDatatableValues(){
DataTable dt = Components.findComponent("datatableId");
for (Object o : dt.getValues()){
test.getData(); // <---- NULL because #{row} is not defined.
}
}
}
_ "는 아마도 값을 반복하는 데이터 테이블 몇 가지 기능이?"_ 그게 무엇 당신은 내가 저장할 이국적인 방법 – Kukeltje
이런 종류의 일을 달성하기 위해 노력하고 있습니다 ... 쇼케이스에서하는 것입니다 EL-Expressions는 일부 외부 테이블에서'# {row.data} '와 (과) 비슷합니다. – Tony
다음 질문 : 왜? – Kukeltje