1

У меня есть следующая страница JSF.Страница JSF не извлекает значение переменной из поля управляемого компонента

enter image description here

«Управление Attendee» ссылка определяется по следующей XHTML:

<h:form> 
    <h:commandLink value="Manage Attendees" action="/Management/Event/manageAttendees?faces-redirect=true"> 
    <f:setPropertyActionListener target="#{managerManager.currentEvent}" value="#{event}" /> 
    </h:commandLink> 
    &nbsp; 
    (...) 
</h:form> 

currentEvent является полем в «ManagerManager» ManagedBean, который установлен на переадрессации и относится к событию в поле описания. У него есть список, который мы хотим пропустить. Тем не менее, вторая страница:

enter image description here

Не оказывает атрибуты. Подобно списку currentEvent, который был пуст, в отчете отладки говорится, что это не так. Ниже приведен код для второй страницы, которая должна получить название:

<h2>Attendees in this Event</h2> 
    <h:dataTable 
     var="attendees" 
     summary="List of attendees in this event." 
     value="#{managerManager.currentEvent.attendees}" 
     rules="all" 
     cellpadding="5"> 

     <h:column> 
      <f:facet name="header"> 
       <h:outputText value="Name" /> 
      </f:facet> 
      <h:outputText value="#{attendees.attendee.name}" /> 
     </h:column> 
    </h:dataTable> 

ManagedBean является сессия области действия, а также. Похоже, вторая страница не имеет доступа к currentEvent ... почему?

+0

DataTable отображает пустой. Он должен проходить через всех участников и отображать их имя. – Deegriz

+0

В чем же проблема? «Не отображает переменную», как если бы конечный пользователь наблюдал проблему. Попробуйте наблюдать и описывать проблему как разработчика, а не как конечный пользователь. Работает ли 'f: setPropertyActionListener'? Вызывается метод setter? Правильно ли переданный аргумент? Является ли тот самый экземпляр компонента доступным на следующей странице или это новый экземпляр? И т.д. Отредактируйте вопрос и, пожалуйста, уточните проблему в перспективе разработчика. – BalusC

+0

Да, все это есть. Возможно, я не был достаточно явным, мой плохой. Я действительно думаю, что решил проблему. Удаление? Faces-redirect = true из следующей строки: работал. Но он должен быть там, верно? – Deegriz

ответ

1

Выводит его как ошибку утверждения импорта.
@SessionScoped аннотаций используется в управляемом Bean был из
import javax.enterprise.context.SessionScoped;
, а не
import javax.faces.bean.SessionScoped;
, как это, очевидно, должно быть. Это объясняет, почему только эта конкретная страница имела эту проблему в моем проекте.

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