JSF 1.2. Как поддерживать управляемый компонент в пределах запроса для всех обратных передач в одном представлении? - PullRequest
11 голосов
/ 05 мая 2011

Можно ли поддерживать боб в пределах области запроса для постбэков на той же странице?

Общая проблема заключается в том, что бин теряется в конце запроса и воссоздается при каждой отправке формы, например, логические значения позади динамически манипулируемых disabled, readonly и rendered возвращаются к значениям по умолчанию и вызывают формы больше не работают так, как задумано.

Ответы [ 2 ]

16 голосов
/ 05 мая 2011

Я предполагаю, что область действия сеанса не вариант, в противном случае этот вопрос не имеет большого смысла.

Вы можете сделать это, используя Томагавк <t:saveState>. Добавьте следующую строку где-нибудь на страницу:

<t:saveState value="#{bean}" />

RichFaces <a4j:keepAlive> делает то же самое:

<a4j:keepAlive beanName="#{bean}" />

Или, если есть место, обновите его как минимум до JSF 2.x и поместите компонент в view scope:

@ManagedBean
@ViewScoped
public class Bean implements Serializable {
    // ...
}

Независимо от способа, один и тот же компонент будет присутствовать, когда вы отправляете обратно в то же представление и продолжаете возвращать null или void из методов действия.

Смотри также:

0 голосов
/ 05 мая 2011

Не совсем, если вы не храните Боб где-нибудь, например. Карта в области приложения, чтобы получить ее позже.

Почему бы просто не сделать так, чтобы Session scoped? Для этого существует область действия сеанса, поэтому несколько запросов в течение одного сеанса могут попасть в одно и то же состояние.

...