2016-03-30 9 views
0

これはなぜ機能しませんか?ドロップダウンには[OK]が入力されますが、フォームを送信するときは、selectedCatIdフィールドはnullです。どうして?助けてください。h:selectOneMenu選択されたフィールドは@Namedと@Producesで 'null'ですか?

豆:

@Model 
public class MyBean { 
@Named 
@Produces 
private Long selectedCatId; 

@Named 
@Produces 
private List<Category> cats; 
} 

ページ:

<h:selectOneMenu value="#{selectedCatId}"> 
     <f:selectItems value="#{cats}" var="cat" 
      itemValue="#{cat.id}" itemLabel="#{cat.name}" /> 
</h:selectOneMenu> 

答えて

2

あなたが唯一のBeanのプロパティに割り当てることができ、Beanに割り当てることはできません。

だけMyBean@Namedを追加し、あなたのメンバーから@Named @Producesを削除し、それぞれ#{myBean.selectedCatId}#{myBean.cats}、によって#{selectedCatId}#{cats}を交換してください。

(これはcatsはどこかに初期化されることを前提としています。)

+0

ありがとうございました。そうですね、私は実際にどのように仕事をしているのか分かりませんでした。それはオブジェクトを生成するだけで、受け取ることはできません。それはセッターではなくゲッターのようなものです。 – ACV

関連する問題