2014-01-31 5 views
0

내 풍부한 : datatable에서 t : radio를 사용하려고 시도하지만 구성 요소를 찾을 수 없다는 사실에 항상 불만을 표시합니다. 나는 인터넷 검색을하고 성명을 발표해야하지만 실제로 그렇게하고 있다고 생각합니다.JSF datatable, tomahawk radio

누구나 내가 잘못하고있는 것을 지적 할 수 있습니까?

letterDetailTemplate.xhtml :

는 는
<h:form id="generateLetterForm"> 
    <ui:include src="addStandardLetterMain.xhtml" /> 
    <ui:include src="addStandardLetterText.xhtml" /> 
    <ui:include src="buttons.xhtml" /> 
</h:form> 

addStandardLetterText.xhtml (라디오 버튼은 끝났어 코드는 (나는 그것을 조성물과 잘못된거야 같은데요 때문에 축소 된 버전을 제공하지 않을거야) 여기)를 slrDataTable에서 : R :

<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:fn="http://java.sun.com/jsp/jstl/functions" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:e="http://minfin.regondes2/entity" 
    xmlns:ccffdecorate="http://java.sun.com/jsf/composite/ccffdecorate" 
    xmlns:rich="http://richfaces.org/rich" 
    xmlns:a4j="http://richfaces.org/a4j" 
    xmlns:l="http://minfin.regondes2/layout" 
    xmlns:o="http://omnifaces.org/ui" 
    xmlns:t="http://myfaces.apache.org/tomahawk"> 

    <ui:param name="entityBB" value="#{letterBB}" /> 
    <ui:param name="type" value="Dossier.Letter" /> 

<l:screenzone id="addStandardLetterTextPanel" 
    title="#{AppMessages[type.concat('.addStandardLetterText.title')]}"> 

    <h:outputStylesheet name="letterText.css" library="stylesheets" /> 
    <h:outputScript name="letter.js" library="scripts" /> 

    <a4j:region> 
     <a4j:outputPanel id="letterTextPanel"> 
      <h:inputTextarea id="letterText" name="letterText" 
       value="#{entityBB.entity.text}" styleClass="letterText" /> 
      <script type="text/javascript"> 
        language: '#{screen.locale.language}' 
       CKEDITOR.replace('generateLetterForm:letterTex', { 
       }); 
      </script> 
     </a4j:outputPanel> 

     <h:panelGroup styleClass="rButtonPanelAlignLeft" layout="block" 
      rendered="#{dossierContextBB.dossierContext == 'EDIT'}"> 

      <a4j:commandButton 
       value="#{AppMessages[type.concat('.add.region')]}" 
       actionListener="#{entityBB.findAvailableRegionStandardLetters()}" 
       render="slrPopupFormPanel" limitRender="true" status="ajaxStatus" 
       onclick="LETTER.CKUpdate()" 
       oncomplete="#{rich:component('addStandardLetterRegion')}.show();" /> 
     </h:panelGroup> 

    </a4j:region> 


    <rich:popupPanel id="addStandardLetterRegion" modal="true" 
     onmaskclick="#{rich:component('addStandardLetterRegion')}.hide()" 
     autosized="true"> 
     <f:facet name="header"> 
      <h:outputText 
       value="#{AppMessages['Dossier.Letter.StandardLetter.region.popup.title']}" /> 
             </f:facet> 
     <f:facet name="controls"> 
      <h:outputLink value="#" 
       onclick="#{rich:component('addStandardLetterCentrum')}.hide(); return false;"> 
      X 
     </h:outputLink> 
     </f:facet> 
     <a4j:outputPanel id="slrPopupFormPanel"> 
      <t:selectOneRadio id="slrOption" 
       value="#{standardLetterBB.selected}" layout="spread" 
       converter="#{standardLetterBB.converter}"> 
       <f:selectItems value="#{entityBB.availableStandardLetterText}" 
        var="standardLetter" itemLabel="" itemValue="#{standardLetter}" /> 
      </t:selectOneRadio> 
      <rich:dataTable id="slrDataTable" 
       value="#{entityBB.availableStandardLetterText}" 
       var="standardLetter" noDataLabel="No standard letters found" 
       rowKeyVar="index"> 
       <rich:column headerClass="ListTitle"> 
        <t:radio for="generateLetterForm:slrDataTable:slrOption" index="#{index}" /> 
       </rich:column> 

       <e:column entity="#{standardLetter.dossierType}" type="#{type}" 
        property="type" /> 
       <e:column entity="#{standardLetter}" type="#{type}" 
        property="numbering" /> 
       <e:columnTranslatable entity="#{standardLetter}" type="#{type}" 
        property="text" /> 
      </rich:dataTable> 
     </a4j:outputPanel> 
     <div class="rButtonPanel"> 
      <h:commandButton value="#{AppMessages['general.action.add']}"> 
       <a4j:ajax event="click" execute="generateLetterForm" 
        listener="#{entityBB.addMotivationToReport}" 
        oncomplete="#{rich:component('addStandardLetterRegion')}.hide()" 
        render="reportMotivationTextPanel" limitRender="true" /> 
      </h:commandButton> 
      <a4j:commandButton value="#{AppMessages['general.action.cancel']}" 
       onclick="#{rich:component('addStandardLetterRegion')}.hide()" 
       limitRender="true" immediate="true" bypassUpdates="true" /> 
     </div> 
    </rich:popupPanel> 
</l:screenzone> 

주이보기는 작품과 렌더링하고 나는 t을 제거 할 때 backingbean에서 데이터를 표시하는 아디 오. "slrOption : generateLetterForm" "generateLetterForm : slrDataTable slrOption"= 대한

SEVERE: java.lang.IllegalStateException: Could not find component 'generateLetterForm:slrDataTable:slrOption' (calling findComponent on component 'generateLetterForm:slrDataTable:0:j_idt258') 
javax.faces.FacesException: java.lang.IllegalStateException: Could not find component 'generateLetterForm:slrDataTable:slrOption' (calling findComponent on component 'generateLetterForm:slrDataTable:0:j_idt258') 
+1

"generateLetterForm : slrDataTable : slrOption"을 "generateLetterForm : slrOption"으로 변경하고 데이터 테이블에 t : radio의 id도 지정하십시오. –

+0

그것은 어리석은 실수였습니다. 나는 다음을 사용했다 : 그러나 slrOption은 dataTable 안에 없다. for 절에서 slrDatable을 제거하면 문제가 해결된다. – GregD

+0

당신은 실수를 찾았습니다. :) –

답변

2

변경 : 당신의 t에 대한 ID를 지정 = 대한에

나는 점점 해요 ErrorMessage가는 또한 데이터 테이블에서 라디오를. generateLetterForm 전에 ":"을 잊지 마십시오.