Meaningless Drivel is fun!
The moose likes JSF and the fly likes f:selectItems can't set value Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » JSF
Bookmark "f:selectItems can Watch "f:selectItems can New topic

f:selectItems can't set value

ya ji
Ranch Hand

Joined: Jul 14, 2008
Posts: 40
Hi all,

I got an issue, jsf code is:
<h:selectOneMenu id="selOrg" value="#{Bean1.selOrg}" >
<f:selectItem itemLabel="Select..." itemValue=""/>
<f:selectItems value="#{Bean2.allOrgSelectItems}" />
<a4j:support event="onchange" reRender="Org_usergroup_list" limitToList="true"></a4j:support>

Bean1 code segment:
private String selOrg;

public String getSelOrg() {
return selOrg;

public void setSelOrg(String selOrg) {
this.selOrg = selOrg;

The page looks good, but when I change the selectItems, the setSelOrg method didn't run, so getSelOrg will return null, who can help me? thanks a lot.
Bhaskar GR

Joined: Jun 13, 2008
Posts: 28
write below code in jsp page

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="" prefix="h"%>
<%@ taglib uri="" prefix="f"%>
<%@ taglib uri="" prefix="a4j"%>

<%String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<base href="<%=basePath%>">

My JSF 'index.jsp' starting page

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link rel="stylesheet" type="text/css" href="styles.css">

<h:panelGrid id="BatchesList" rendered="true">
<hutputText value="Select Batch" />
<h:selectOneMenu value="#{dbl.selectedCategory}">
<f:selectItems value="#{dbl.items}" />


write below code in bean class

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.faces.model.SelectItem;

public class DynamicListBean {

private ArrayList dynList = new ArrayList();
private SelectItem[]items;
private List dList = new ArrayList();
private String selectedCategory;

public DynamicListBean()

public SelectItem[] getItems() {
return items;

public void setItems(SelectItem[] items) {
this.items = items;

public String getSelectedCategory() {
return selectedCategory;

public void setSelectedCategory(String selectedCategory) {
this.selectedCategory = selectedCategory;

public List getDList() {
return dList;

public void setDList(List list) {
dList = list;

public ArrayList getDynList() {
return dynList;

public void setDynList(ArrayList dynList) {
this.dynList = dynList;

public SelectItem[] populateSelectOneMenu() {
String a = "B";
List selectItems = new ArrayList();
for (int i = 1; i < 5; i++) {
dList.add(a + i);

Iterator it = dList.listIterator();
while (it.hasNext()) {
String label = (String);

selectItems.add(new SelectItem(label));
return (SelectItem[]) selectItems.toArray(new SelectItem[0]);

ya ji
Ranch Hand

Joined: Jul 14, 2008
Posts: 40
Bean2.allOrgSelectItems is:
public List getAllOrgSelectItems(){
try {
List selectItems= new ArrayList();
Port port = getPortService();
List<Organization> orgList = port.getOrganizations();
for(Organization org: orgList){
selectItems.add(new SelectItem(org.getId(), org.getName()));
return selectItems;
} catch (Exception ex) {
return null;

It can generate dropdown list well.

My problem is why the setSelOrg() method doesn't run, when change selection?
ya ji
Ranch Hand

Joined: Jul 14, 2008
Posts: 40
Fixed by another solution.

In page, add valueChangeListener to h:selectOneMenu component, then add a method in backing bean, like this:
public void changeOrg(ValueChangeEvent event) {
selOrg = event.getNewValue().toString();
I agree. Here's the link:
subject: f:selectItems can't set value
It's not a secret anymore!