首先对我的英语感到抱歉。我在 JSF2 中有两个页面,一个用于列出乘客,另一个用于创建/更新乘客。我还有两个 @ViewScoped bean,一个包含乘客列表,另一个用于在 pageB 中保留所选乘客。我看到了通过 viewParam 或 @ManagedProperty 传递乘客的方法,但我不想编写转换器。
我想知道是否有一种方法可以将对象从 pageA 传递到 pageB,而不传递乘客的 id 并编写转换器,或者不传递 id,然后转到数据库检索乘客。
我所做的和工作如下。我通过 setPropertyActionListener 在 flash 作用域中设置所选对象并导航到 pageB,在 viewScopedBean 的 @PostConstruct 中,我获取 flashScope 并检索对象。正如我所说,这有效,但我不知道它是否正确。这是代码
页A:
<p:column width="10" style="text-align: center;">
<p:commandButton icon="ui-icon-pencil" action="editClientes?faces-redirect=true">
<f:setPropertyActionListener target="#{flash.pax}" value="#{row}"/>
</p:commandButton>
</p:column>
pageB bean 的 @PostConstruct
@PostConstruct
private void initBean(){
this.pax = (Passenger) JSFUtils.getFlashScope().get("pax");
if(this.pax == null){
this.pax = new Passenger();
}
}
这是正确的,还是正确的方法是编写转换器?
谢谢。
取决于您是否想要/editClientes
要求成为幂等的 https://en.wikipedia.org/wiki/Idempotence(“可加入书签”)或不。
闪光的方法是not幂等的。无法链接/共享/添加书签/editClientes
用于编辑的 URLspecific客户。当最终用户复制此 URL 进行共享/添加书签并重新执行请求时(即使只是在浏览器地址栏中按 [enter]),最终用户将面临的只是一个新客户端的空编辑表单,而不是最终用户最初通过闪存范围选择的一种。
请求参数方法是幂等的。最终用户能够得到exactly每次最终用户重新执行请求时都会得到相同的响应。
您的选择与否不是我们的决定/editClientes
页面应该是幂等的或不是。是你的。
也可以看看:
- 如何在 JSF 中导航?如何使 URL 反映当前页面(而不是上一页) https://stackoverflow.com/questions/15521451/how-to-make-url-reflect-the-current-page-and-not-the-previous-one/15523045#15523045
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)