我正在尝试在JSF中做一些简单的事情,但由于某些原因我无法让它工作。 我想要的是使用GET参数到达的页面发布信息,并在我提交表单时保留此GET参数。
<f:metadata>
<f:viewParam name="someId" value="#{someController.something}" converter="#{someConverter}" />
</f:metadata>
这是我选择绑定GET参数的方式,这在我正在执行GET请求时工作正常。
在同一页面上我有一个
<h:form>
<!-- (... various input ...) -->
<h:commandLink action="#{someController.create}" value="Create" />
</h:form>
当我提交它时,即使数据是正确的,我也永远不会让我的“东西”不为空。
用例很简单,我有一对多的关系,我想访问带有id作为GET参数的“one”,并在页面上列出“many”,在列表下方,表单允许我在“很多”列表中添加一个新元素。
我想让它(当然)成为可能的清洁工,
有人能告诉我实现这个目标的最佳途径是什么?
谢谢!
答案 0 :(得分:1)
要么SomeController
bean @ViewScoped
,只要你与同一个视图交互,就会生存bean,
@ManagedBean
@ViewScoped
public class SomeController {
// ...
}
或使用<f:param>
组件中的UICommand
通过
<h:commandLink>
<f:param name="someId" value="#{param.someId}" />
</h:commandLink>