JSF h:selectOneMenu的问题,困扰我几天了,请大侠指教

06-04-03 xiaodaoxiaodao
大家好,我遇到一个关于JSF h:selectOneMenu的问题,还请大家帮忙,

在jsp页面上我可以从f:selectItems tag中看到所有的dropdownlist,但是它显示的那个缺省的

label应该却不是从数据库中拿到的.

一共有两张表,一张是Employee ,一张是Department,

depId在Employee 表中,同时它是Department表的主键,在数据库中是Integer类型.

下面是jsp的代码

the jsp code :

<h:selectOneMenu id="depId" value="#{loginInfoBean.employee.depId)">

<f:selectItems value="#{loginInfoBean.departmentList}"/>

</h:selectOneMenu>

departmentList的值是由下面代码在LoginInfoBean.java类中产生的:

while(rs.next()){

departmentList.add(new SelectItem(String.valueOf(rs.getInt("depId")),

rs.getString("depName")));

}

从数据库中可以拿到所有的departmentList,

depId(int) depName(String)

1 'Administrator'

2 'Network'

3 'Sales'

4 'Engineering'

在EmployeeBean.java中,我定义了下面的get/set方法:

private int depId;

public String getDepId() {

return String.valueOf(depId);

}

public void setDepId(String depId) {

this.depId = Integer.valueOf(depId).intValue();

}

现在的问题是:

下拉列表我可以拿到,但是缺省值拿不到,

比如数据库Employee表中depId是3,那我应该在下拉列表中缺省选中'Sales' ,

但现在看到的缺省选项始终是'Administrator' (对应depId为1)

我已经被困扰几天了,请高手帮忙,万分感谢~

2
xiaodaoxiaodao
2006-04-03 17:18
不好意思,少了jsp code:

<h:selectOneMenu id="depId" value="#{loginInfoBean.employee.depId)"> 
                <f:selectItems value="#{loginInfoBean.departmentList}"/> 
            </h:selectOneMenu> 

<p>

Jdao
2006-04-04 15:20

> 在EmployeeBean.java中,我定义了下面的get/set方法:

> private int depId;

> public String getDepId() {

> return String.valueOf(depId);

> }

>

> public void setDepId(String depId) {

> this.depId =

> depId = Integer.valueOf(depId).intValue();

> }

>

> 现在的问题是:

> 下拉列表我可以拿到,但是缺省值拿不到,

> 比如数据库Employee表中depId是3,那我应该在下拉列表中缺?> 选中'Sales' ,

> 但现在看到的缺省选项始终是'Administrator'

> (对应depId为1)

>

> 我已经被困扰几天了,请高手帮忙,万分感谢~

你的public void setDepId(String depId)方法没有调用吧。

我觉得应该这样写

public String getDepId() {

setDepId("3");//设置默认值

return String.valueOf(depId);

}

xiaodaoxiaodao
2006-04-05 13:10
多谢回复!

<h:selectOneMenu id="depId" value="#{loginInfoBean.employee.depId)">                 <f:selectItems value="#{loginInfoBean.departmentList}"/>             </h:selectOneMenu> 
<p>

上面的这种写法它会有一个默认值的,就是loginInfoBean.employee.depId。

请高手指点一下到底问题出在哪,急!!

jdon_sun
2006-04-06 08:42
用javax.faces.model.SelectItem去解决

把list的值给SelectItem 

然后在

<f:selectItems value="#{loginInfoBean.SelectItem(对象)}"/> 
<p>

想要得到你要得到的默认值 自己在list处理一下

说明:depId不用set初始值

猜你喜欢
2Go 1 2 下一页