Когда я собираюсь перейти на другую страницу, я хотел бы поместить объект во флеш. Вот как я это делаю в данный момент:Доступ к флеш-памяти с h: link в JSF
<h:commandLink action="#{bean.foo(object)}">
<h:graphicsImage .../>
</h:commandLink>
и метод фасоли:
public String foo(Object o) {
FacesContext.getCurrentInstance().getExternalContext().getFlash().put("key", o);
return "target.xhtml?faces-redirect=true";
}
Я хотел бы сделать это с ч: ссылку в XHTML без метода фасоли (также потому что я слышал, что навигация по CommandLink плохая). У меня есть что-то вроде этого в виду, чтобы заменить выше код:
<h:link outcome="target.xhtml">
<h:graphicsImage .../>
<someTag someAttr="#{facesContext.externalContext.flash.put("key", object)}"/>
</h:link>
Есть такой тег (someTag), который может быть использован, как это?
Что с: установить, что выглядит многообещающим. Не могу ли я просто поместить это в ссылку h:, чтобы он был выполнен, когда я нажимаю ссылку? – user1785730
Вы можете, но он запускается при загрузке страницы, а не после нажатия ссылки. – jklee