Атрибут rendered
переоценивается при отправке формы, а также является частью защиты от несанкционированных запросов. Таким образом, если bean-компонент является областью запроса и логическое значение reviseMode
инициализируется на основе некоторого значения области запроса, которое отсутствует при отправке формы, тогда по умолчанию он будет равен false
, и тогда JSF не будет обрабатывать входные данные, содержащиеся в группе панелей. .
Непонятно, какую версию JSF вы используете (пожалуйста, укажите это в будущих вопросах), но если это JSF 2.x, тогда решение простое: поместите компонент в область представления вместо области запроса.
@ManagedBean
@ViewScoped
public class OrderController {
// ...
}
Если вы все еще используете JSF 1.x, то есть несколько способов, в зависимости от того, как именно вы инициализируете условие reviseMode
. Один из лучших способов - просто смоделировать область просмотра JSF 2.x, используя тег <t:saveState>
Томагавка или тег <a4j:keepAlive>
RichFaces.