date 및 userid로 listPage를 필터링하려고합니다. 데이터 테이블에서 선택된 사용자 ID와 날짜 값은 f : param 태그로 listPage에 전달됩니다. 목록 페이지에 "값은 날짜 여야합니다."라는 오류가 표시되고 필터가 작동하지 않습니다. 그것은 그냥 날짜없이 사용자 ID로 필터링 된 경우 작동합니다. 나는 무엇을 잘못 할 수 있 었는가? 또는 어떻게 작동시킬 수 있습니까? 나는 또한 JBoss seam date 변환기를 사용해 보았습니다. Heres는f : param을 사용하여 날짜 유형 전달하기
내 코드 :
firstPage.xhtml
<h:column>
<f:facet name="header">Date</f:facet>
<h:outputText value="#{_auditEventFact[3]}">
</h:outputText>
</h:column>
<rich:column styleClass="action">
<f:facet name="header">Action</f:facet>
<s:link value="View" view="/AuditEventFactList.xhtml" action="# auditEventFactList.lookUpUserAuditRecords()}">
<f:param name="userid" value="#{_auditEventFact[1]}"/>
<f:param name="ntimestamp" value="#{_auditEventFact[3]}"/>
</s:link>
</rich:column>
pages.xml
<param name="from"/>
<param name="userid" value="#{auditEventFactList.auditEventFact.userid}"/>
<param name="ntimestamp" value="#{auditEventFactList.auditEventFact.ntimestamp}" converterId="javax.faces.DateTime"/>
ListAction.java
private static final String EJBQL = "select auditEventFact from AuditEventFact auditEventFact";
private static final String[] RESTRICTIONS = {
"lower(auditEventFact.userid) like concat(lower(#{auditEventFactList.auditEventFact.userid}),'%')",
"auditEventFact.ntimestamp = #{auditEventFactList.auditEventFact.ntimestamp}",
"lower(auditEventFact.auditid) like concat(lower(#{auditEventFactList.auditEventFact.auditid}),'%')", };
private AuditEventFact auditEventFact = new AuditEventFact();
public AuditEventFactList() {
setEjbql(EJBQL);
setRestrictionExpressionStrings(Arrays.asList(RESTRICTIONS));
setMaxResults(25);
}
EntityBean.java
@Temporal(TemporalType.TIMESTAMP)
@Column(name="NTIMESTAMP#", length=11)
public Date getNtimestamp() {
return this.ntimestamp1;
}
public void setNtimestamp(Date ntimestamp1) {
this.ntimestamp1 = ntimestamp1;
}