質問

私はバッキングBeanの保持とJSF selectOneMenuアイテムを実装しようとしています   選択。問題はのSelectedItemは常にnullであるということです。ここに   コードは次のとおりです。

.xhtmlます:

  <h:selectOneMenu
     value="#{componentFilterBean.selectedItem}">
     <f:selectItems value="#{componentFilterBean.projects}" />
  </h:selectOneMenu>

ビーンます:

public class ComponentFilterBean {

 String selectedItem = null;

 private List<SelectItem> selectItems = null;

 public String getSelectedItem() {
  System.out.println("getSelectedItem = " + selectedItem);
  return selectedItem;
 }

 public void setSelectedItem(String selectedItem) {
  this.selectedItem = selectedItem;
  System.out.println("setSelectedItem = " + selectedItem);
 }

 public List<SelectItem> getProjects() {
  if (selectItems == null) {
   selectItems = new ArrayList<SelectItem>();
   selectItems.add(new SelectItem("Project1", "Project1"));
   selectItems.add(new SelectItem("Project2", "Project2"));
   selectItems.add(new SelectItem("Project3", "Project3"));
  }

  return selectItems;
 }
}

面-config.xmlの

<managed-bean>
  <managed-bean-name>componentFilterBean</managed-bean-name>  
  <managed-bean-class>test.ComponentFilterBean</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
</managed-bean>

私は太陽の実装を使用しています(バージョン1.2)。問題は桟橋6に表示されます およびWebSphere 6.1ます。

その問題と缶誰の助けを私に?

クリスチャン

役に立ちましたか?

解決

私が何かを忘れてしまった:私は<h:form>を追加し、私は次のことをしなければならなかった。

<h:selectOneMenu
  value="#{componentFilterBean.selectedItem}"
  immediate="true" onchange="javascript: return this.form.submit();">
  <f:selectItems value="#{componentFilterBean.projects}" />
</h:selectOneMenu>
私は理解していないが、ネット上の例では、誰もがそのようにしないことです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top