0

アクション #{ruler.start} を指すページ「start.jsf」があります。このアクションはリクエストを「flow.jsf」に転送します。

マネージド Bean "ruler" (スコープ指定されたリクエスト) にはいくつかのプロパティが含まれており、そのうちの 1 つは "ruler.operation" と呼ばれ、"start.jsf" に正しく入力されています。

ページ「flow.jsf」には、 「objectList.selectedContractor」という名前のプロパティ オブジェクトを含む「objectList」(セッション スコープ) という別のマネージド Beanを指すコマンド ボタンがあります(コンストラクターに初期化された POJO であるため、その子プロパティは常に空です)。最初のMB呼び出しでのみ、または間違っていますか?)、そのアクションは #{objectList.itemInsert} です。

「flow.jsf」のフォームページには、以下のタグが含まれています。

 <h:form>
 <h:inputText id="crnameNew" value="#{objectList.selectedContractor.crname}" rendered="#{ruler.operation eq ruler.codeOperationNew}" />

 <h:inputText id="someProp" value="#{objectList.someProp}" />
 <h:commandButton styleClass="importedButton" value="insert" action="#{objectList.itemInsert}" />
 </h:form>

アクション #{objectList.itemInsert} を送信すると、「someProp」のみが正しく MB に入力され、「selectedContractor.crname」は空になります。

しかし、#{objectList.selectedContractor.crname} をバインドするタグから "rendered" 属性を切り替えると、#{objectList.itemInsert} が呼び出されたときに機能し、正しく入力されます。提出?

4

1 に答える 1

1

属性が示唆するように、レンダリングにのみ影響します。ページにレンダリングされた場合、値はフォーム送信時に Bean に返されます。レンダリングされていて、これが起こらない場合は、何か他のことが間違っています。

于 2009-04-11T18:17:39.300 に答える