2010-09-03 2 views
0

Я не могу понять, что я делаю неправильно. Запросите свои данные. Пожалуйста.Значение управляемого управляемого компонента не отображается во время фазы ответа рендера

У меня есть обработанный обработанный bean-объект с запросом, который имеет список, который я представляю как данные в моем приложении JSF 1.2 Apache my faces. Когда я отправляю форму, и, так как есть некоторые проверки на стороне сервера, которые терпят неудачу, я добавляю FacesMessage и показываю ту же страницу JSF.

В этом цикле запроса-запроса, в фазе INVOKE-APPLICATION, я могу видеть значения списка, но когда страница отображается с помощью FacesMessage, то тип данных пуст.

Другие свойства bean-компонента и их значения сохраняются в этом цикле запроса-ответа, за исключением этого списка/Datatable.

Это как DataTable строится в методе действия - первоначальный запрос

if(getInputXMLString() != null 
      && getInputXMLString().length() >0) 
    { 
    List<NodeDetailsVO> nodes = Utility.inputXMLStringNodeDetailsVO(getInputXMLString()); 
     setSelectedNodes(nodes); 
    } 

Когда я пытаюсь то же самое, как описано выше в запросе обратной передачи (внутри другого метода действия), оно работает okay.When I добавьте мой бизнес Logic внутри частного метода, и если я вышлю его над этим кодом или после этого, он не будет работать. Я использую getter List в личном методе. И в методе getter - у меня есть только sysouts внутри if и else.

Это как DataTable оказывается на странице Xhtml:

<h:dataTable width="80%" cellspacing="0" border="1" 
      id="nodes_datatable" cellpadding="2" 
      style="border-collapse:collapse;" 
      value="#{createBean.selectedNodes}" 
      binding="#{createBean.selectedNodesHTMLDataTable}" 
      var="aResult" 
      columnClasses="columnAlignRight,columnAlignLeft" 
      > 

ответ

1

Это не обычный случай. Я вижу только две возможные причины:

  1. The DataModel (The List, как вы его называет) будет сброшена каким-то образом. Вероятно, метод getter делает больше, чем только возвращает datamodel и перезагружает его, но некоторые параметры/условия, зависящие от запроса, отсутствуют.

  2. В состав данных данных или один из его родительских компонентов входит атрибут rendered, который оценил false.

+0

Thanks BalusC. 2 не является истиной. Я просто печатаю размер и значения объектов в списке (DataModel) в получателе. Не могли бы вы объяснить больше о параметре/состоянии, основанном на запросе? Существуют ли какие-либо другие способы сохранения значений данных между запросами в Bean с запросом? – gekrish

+0

Этот вопрос заставляет меня думать, что список не сохранился вообще. Можете ли вы уточнить, что именно вы имели в виду с * «На этапе INVOKE-APPLICATION, я могу видеть значения List» * в вашем исходном вопросе? Как вы это определили? – BalusC

+0

В вызванном методе действий я печатал значения List с помощью его getter. Также я использую PhaseListener, поэтому я знал, что происходит на этой фазе. Перефразировать - как сохранить значения данных между запросами в компоненте с запросом? – gekrish

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