我有一个标有“SaveAndView”的commandLink。一旦我点击此链接,基本上将数据保存在当前页面“a.xhtml”上,然后生成ID。然后重定向到页面“b.xhtml?id = | generatedID |”来查看数据。如何将生成的ID传递给此commandLink?
<h:commandLink action="#{mybean.save()}"
value="#{msg.saveAndView}"
target="_blank" includeViewParams="true">
<f:param name="id" value="#{mybean.id}"/>
</h:commandLink>
上面的示例代码生成一个空id参数,因为尚未调用save()
答案 0 :(得分:2)
您似乎误解基本工作流程。在您的情况下,它如下:
entityService.persist(entity);
; id
的实体(即已执行的事务已提交); return "viewentity?id=" + entity.getId() + "&faces-redirect=true";
中的查询参数传递,以重定向到目标视图(假设您有一个不需要编码的数字ID而您没有需要传递任何其他参数); <f:viewParam name="id" ... />
接收id
并使用它来显示您想要的数据。因此,要直接回答您的问题,您需要手动传递动作方法中生成的id
。