-1
그래서 회사 웹 사이트의 결과 페이징을 처리 할 사용자 정의 JSF 컨트롤을 작성하라는 요청을 받았습니다. 이 구성 요소의 경우 backing bean에 대한 네 가지 메소드 중 세 가지가 제대로 작동하지만 마지막 메소드는 제대로 작동하지 않습니다. 어쩌면 내가 뭔가를 놓치고 있지만 코드가 올바르게 보입니다. 나는 커뮤니티가 어떤 일이 벌어지고 있는지에 관해 밝힐 수 있기를 바랬다.사용자 정의 JSF 컨트롤이 제대로 바인딩되지 않았습니다.
코드는 다음과 같습니다.
<cc:interface>
<cc:attribute name="showingRecordMin" required="true" />
<cc:attribute name="showingRecordMax" required="true" />
<cc:attribute name="totalRecords" required="true" />
<cc:attribute name="resultsPerPage" required="true" />
<cc:attribute name="currentPageNum" required="true" />
<cc:attribute name="totalPagesNum" required="true" />
<cc:attribute name="resultsPerPageItems" required="true" />
<cc:attribute name="resultPagesItems" required="true" />
<cc:attribute name="goToNextPage"
method-signature="java.lang.String action()" required="true"/>
<cc:attribute name="goToPreviousPage"
method-signature="java.lang.String action()" required="true"/>
<cc:attribute name="goToFirstPage"
method-signature="java.lang.String action()" required="true"/>
<cc:attribute name="goToLastPage"
method-signtature="java.lang.String action()" required="true"/>
</cc:interface>
<!-- Question: We can't have a form inside of a form. Do we ecapsulate form operations here or
should the client handle them? -->
<cc:implementation>
<div
style="background-color: #F0F3FA; border: 1px solid #ABABAB; height: 25px; margin: 0px; padding: 2px 8px; position: relative; vertical-align: middle;">
<h:panelGroup>
<div style="float: left; width: auto;">
Showing Results <h:outputLabel value="#{cc.attrs.showingRecordMin}" /> - <h:outputLabel value="#{cc.attrs.showingRecordMax}" /> of
#{cc.attrs.totalRecords} Results per Page:
<h:selectOneMenu value="#{cc.attrs.resultsPerPage}" onchange="$j(document).find('.pageBarSubmitBtn').click();">
<f:selectItems value="#{cc.attrs.resultsPerPageItems}" />
</h:selectOneMenu>
</div>
<div style="float: right; width: auto;">
Showing Page #{cc.attrs.currentPageNum} of #{cc.attrs.totalPagesNum} Jump
to Page
<h:selectOneMenu id="_pagesMenu" value="#{cc.attrs.currentPage}" onchange="$j(document).find('.pageBarSubmitBtn').click();">
<f:selectItems value="#{cc.attrs.resultPagesItems}" />
</h:selectOneMenu>
<!-- These three work properly -->
<h:commandLink style="position: relative; top: 3px;" action="#{cc.attrs.goToFirstPage}">
<h:graphicImage value="/images/arrow-first.gif" />
</h:commandLink>
<h:commandLink style="position: relative; top: 3px;" action="#{cc.attrs.goToPreviousPage}">
<h:graphicImage value="/images/arrow-previous.gif" />
</h:commandLink>
<h:commandLink style="position: relative; top: 3px;" action="#{cc.attrs.goToNextPage}">
<h:graphicImage value="/images/arrow-next.gif" />
</h:commandLink>
<!-- This one is the bad guy -->
<h:commandLink style="position: relative; top: 3px;" action="#{cc.attrs.goToLastPage}">
<h:graphicImage value="/images/arrow-last.gif" />
</h:commandLink>
</div>
<h:commandButton style="visibility: hidden;" styleClass="jsfHidden pageBarSubmitBtn"/>
</h:panelGroup>
</div>
</cc:implementation>
이 진행 오작동이 그것은
#{cc.attrs.goToLastPage}
있어, 여기
여기
09:23:15,108 WARNING [javax.enterprise.resource.webcontainer.jsf.lifecycle] (http-localhost- 127.0.0.1-3333-5) Unable to resolve composite component from using page using EL expression '# {cc.attrs.goToLastPage}': javax.faces.FacesException: Unable to resolve composite component from using page using EL expression '#{cc.attrs.goToLastPage}'
은 컨트롤이 내 페이지에서 어떻게 사용되는 콘솔에서 발생 가져옵니다 예외 : 구문은
마지막으로 내 Backing Bean이이 컨트롤과 함께 사용하도록 구현하는 인터페이스입니다.
public interface PagableResults {
public int getShowingRecordMin();
public int getShowingRecordMax();
public ResultsPerPage getResultsPerPage();
public void setResultsPerPage(ResultsPerPage rpp);
public int getCurrentPageNum();
public void setCurrentPageNum(int pageNum);
public int getTotalPagesNum();
public int getTotalRecordsNum();
public List<SelectItem> getResultsPerPageItems();
public List<SelectItem> getResultsPagesItems();
public void goToFirstPage();
public void goToLastPage();
public void goToPreviousPage();
public void goToNextPage();
}
장하다! 나는 몇 시간 동안 코드를 쳐다 보지 않고 그것을 알아 차리지 못했다! 나는 눈이보고 싶은 것만 본다고 생각합니다! – user2980252