0

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>

送信すると、データが正しくても、「何か」がnullになることはありません。

ユース ケースは簡単です。1 対多の関係があり、ID を GET パラメーターとして使用して「1 つ」にアクセスし、ページ上に「多」をリストし、リストの下に新しいフォームを追加できるようにしたいと考えています。 「多」リストの要素。

私はそれを(もちろん)機能させ、可能な限りきれいにしたいと思っています。

誰かがこれを達成するための最良の方法を教えてもらえますか?

ありがとう!

4

1 に答える 1

1

同じビューを操作している限りBeanが存続するように、 SomeControllerBeanを作成します。@ViewScoped

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

またはコンポーネントで使用<f:param>UICommandてGETパラメータを渡します

<h:commandLink>
    <f:param name="someId" value="#{param.someId}" />
</h:commandLink>
于 2012-06-16T13:37:05.757 に答える