JSF 1.2: Как сохранить управляемый <sc810> доступный по охвату ретрансляций на одном представлении?
Возможно ли сохранить запрос с охватом bean живым через обратную связь на той же странице?
Общая проблема заключается в том, что по мере того, как bean получает trashed в конце запроса и воссоздается на каждой форме submit, например, булевы динамически управляемых disabled
, readonly
и rendered
получают reset к их значения по умолчанию и заставляют формы больше не работать как намеренные.
Ответы
Ответ 1
Я предполагаю, что область сеанса не является вариантом, иначе этот вопрос не имеет смысла.
Вы можете сделать это, используя Tomahawk <t:saveState>
. Добавьте следующую строку на страницу:
<t:saveState value="#{bean}" />
RichFaces <a4j:keepAlive>
делает то же самое:
<a4j:keepAlive beanName="#{bean}" />
Или, если есть место, обновите, по крайней мере, до JSF 2.x и поместите область bean в представление:
@ManagedBean
@ViewScoped
public class Bean implements Serializable {
// ...
}
Независимо от способа, тот же самый bean будет там, когда вы отправите обратно в тот же вид и продолжаете возвращать null
или void
из методов действий.
См. также:
Ответ 2
Не действительно, если вы не храните Bean где-то, например. карту в области приложения, чтобы получить ее позже.
Почему бы просто не включить сеанс? Для этого используется область сеанса, поэтому несколько запросов в течение одного сеанса могут попасть в одно и то же состояние.