提交表单时保持获取参数

时间:2012-06-16 10:22:01

标签: jsf-2 java-ee-6

我正在尝试在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”,在列表下方,表单允许我在“很多”列表中添加一个新元素。

我想让它(当然)成为可能的清洁工,

有人能告诉我实现这个目标的最佳途径是什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

要么SomeController bean @ViewScoped,只要你与同一个视图交互,就会生存bean,

@ManagedBean
@ViewScoped
public class SomeController {
    // ...
}

或使用<f:param>组件中的UICommand通过

传递GET参数
<h:commandLink>
    <f:param name="someId" value="#{param.someId}" />
</h:commandLink>