2017-02-22 4 views
0

das ist mein Anwendungsfall:Nullwert, wenn im Hintergrund Bean Verborgene Wert lesen

ich einen CKEditor und versteckten Wert in meiner .xhtml Seite wie diese:

<p:panelGrid columns="1" id="pnTemplateHeader" style="width:700px"> 
         <h:inputHidden required="false" value="#{templateBean.headerContent}" id="headerValue" binding="#{templateBean.hiddenHeader}"/> 
          <h:inputTextarea cols="90" rows="20" class="ckeditor" id="head" name="head" > 
           #{templateBean.headerContent} 
          </h:inputTextarea> 
           <script type="text/javascript" > 
           CKEDITOR.replace('head', { 
            removeButtons: 'Underline,Strike,Subscript,Superscript,Anchor,Styles,Specialchar', 
           }); 
          </script> 

          </p:panelGrid> 

Nun muß ich sein in der Lage, den gesamten Text, den der Benutzer in CKEditor eingegeben hat, zu finden, habe ich in http://kb4dev.com/tutorial/jsf-and-ckeditor/jsf-2.x--ckeditor-integration-guide

gefunden Sie sagen, ich kann Wert von ausgeblendeten in Backing Bean mithilfe der folgenden abrufen.

.xhtml:

<h:commandButton id="previewTemplateButton" onclick="document.getElementById('frmCreateTemplate:footerValue').value = CKEDITOR.instances.footer.getData(); action="#{templateBean.export2PDF}" > 

     </h:commandButton> 

Aber wenn ich den Wert in Backing Bean bekommen, bekomme ich nur ein NULL-Wert.

Backing Bean:

System.out.println("Values: footer=" + footerContent + ", body= " + bodyContent + ", header=" + headerContent); 

Was könnte falsch sein?

Ich habe mehrere Ansätze wie den Zugriff auf versteckte Komponente direkt im Backing Bean wie folgt getestet:

UIViewRoot root = FacesContext.getCurrentInstance().getViewRoot(); 
      UIComponent hiddenHeaderComp = root.findComponent("headerValue"); 

      hiddenHeaderComp = getUIComponentOfId(root, "headerValue"); 
      hiddenHeader = (UIInput)hiddenHeaderComp; 
      if(hiddenHeader != null){ 
       System.out.println("After retrieving value: " + hiddenHeader.getValue()); 
      } 

Aber das funktioniert nicht. Was kann ich tun?

+0

Es gibt keine versteckte Wert mit der ID: footerValue. Ihre verborgenen Wert hat die ID: header – tak3shi

+0

Nun, ich habe das Problem gefunden, was Sie Punkt ist richtig, aber das war aufgrund einer schlechten Kopieren und Einfügen von meiner ursprünglichen Quellen. Das eigentliche Problem hier ist, dass ich die Komponente nur mit dem inputhidden Wert rufe, aber es ist in einem Primefaces Akkordeon, die wiederum in der Form ist, so dass ich fehlte: Form: accordionid vor inputhidden id. – OZWolverine

Antwort

0

Nun, ich habe das Problem gefunden. Das eigentliche Problem hier ist, dass ich die Komponente nur mit dem inputhidden Wert rufe, aber es ist in einem Primefaces Akkordeon, die wiederum in der Form ist, so dass ich fehlte: Form: accordionid vor inputhidden id

Verwandte Themen