2017-02-22 34 views
0

это мой случай использования:Нулевое значение при чтении Скрытое значение в резервной Bean

У меня есть CKEditor и скрытое значение в моей странице .xhtml так:

<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> 

Теперь я должен быть способный получить весь текст, который пользователь ввел в CKEditor, я нашел этот путь в http://kb4dev.com/tutorial/jsf-and-ckeditor/jsf-2.x--ckeditor-integration-guide

Говорят, что я могу получить значение из скрытого в бэкэнбоне, используя следующее.

.xhtml:

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

     </h:commandButton> 

Но когда я получаю значение в резервном боб, я просто получаю NULL, значение.

Резервное боб:

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

Что может быть не так?

Я проверил несколько подходов, как доступ к скрытой составляющей прямо в бэк-бина, как это:

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()); 
      } 

Но это не работает либо. Что мне делать?

+0

Нет скрытых значение с id: footerValue. Ваше скрытое значение имеет id: headerValue – tak3shi

+0

Ну, я нашел проблему, что вы указываете правильно, но это было из-за плохой копии и вставки из моих исходных источников. Настоящая проблема заключается в том, что я вызывал компонент только с введенным значением, но он находится внутри аккордеона Primefaces, который, в свою очередь, находится внутри формы, поэтому мне не хватало: form: accordionid перед идентификатором inputhidden. – OZWolverine

ответ

0

Ну, я нашел проблему. Настоящая проблема заключается в том, что я вызывал компонент только с введенным значением, но он находится внутри аккордеона Primefaces, который, в свою очередь, находится внутри формы, поэтому мне не хватало: form: accordionid before inputhidden id

 Смежные вопросы

  • Нет связанных вопросов^_^