2013-07-18 3 views
0

Это является JSF 1.1 формапредставления формы в JSF не вызывает сеттер выбранного элемента

<h:form> 
     <h1>STEP 1 - Choose your channels</h1>   
     <h:selectManyCheckbox value="#{globalTVRegistration.selectedChannels}" layout="pageDirection"> 
      <f:selectItems value="#{globalTVRegistration.availableChannels}" />     
     </h:selectManyCheckbox> 
     <h:commandButton value="Select Channels" action="packages" /> 
    </h:form> 

и здесь является поддержка боб

public class GlobalTVRegistration { 

private int[] selectedChannels; 

public int[] getSelectedChannels() { 
    return selectedChannels; 
} 

public void setSelectedChannels(int[] selectedItems) { 
    this.selectedChannels = selectedItems; 
} 

}  

Когда я выбрать один или несколько флажков и нажмите командной кнопки, эта же страница снова обновляется. Представление формы не вызывает «setSelectedChannels (int [] selectedItems)».

У вас есть проблема?

+1

JSF 1.1 имеет несколько болезненных ошибок. Рассмотрите возможность обновления до последней версии JSF 1.2. Вы можете получить его с http://javaserverfaces.java.net. Кстати, деловая логика в методах геттера - плохая идея. Переместите этот код в конструктор 'public GlobalTVRegistration()' и сохраните единственную строку 'return availableChannels; 'в getter. – BalusC

+0

Спасибо. Я рассматриваю ваше предложение. Пожалуйста, изучите [этот вопрос] (http://stackoverflow.com/q/17739469/1875434) – abbas

ответ

1

В случае, если другие также сталкиваются с той же проблемой, на линии

private int[] selectedChannels; 

заменить INT тип данных с Integer.