嗨这是我的问题
我的jsp
中有select
个标记
<select list="#{'1':cat,'2':'dog','3':Monkey}" name="animalId" />
在我的动作类中,我正在使用modelDriven
拦截器,如下面的
public class ActionClass extends AcionSuport implements ModelDriven<BeanClass>
{
BeanClass modelName = new BeanClass();
public BeanClass getModel()
{
return modelName;
}
}
这是我的bean类
public class BeanClass
{
private Integer animalId;
//There is getters and setters for animalId;
}
我的问题是什么..当我想在我的动作类中获取下拉框的数据时,它给我null
值。
Ofcourse I am using `modelDriven` interceptor in my `struts.xml`
但是,当我将animalId
转换为String
时,BeanClass
的工作正常。
根据文档..类型转换必须自动完成...但我不能在控制台中得到任何错误...
Plesae有人帮助我..
答案 0 :(得分:0)
如果要在value属性中预选一个选项,模型中的字段类型应与下拉列表中的键类型和值类型相对应。如果键和值具有相同类型的对象,则它可以相互比较。如果你有一个string或char类型的键和类型Integer
的相应值,那么OGNL将尝试获取/设置与键相同类型的属性。在您的情况下,使用带字符串/ char键类型的OGNL实例化地图。这就是为什么您的房产没有设置的原因,如果您的房产类型为String
,则设置它。您可以按照创建Integer
键和String
值的方式更改下拉列表。
<select list="#{1:'cat',2:'dog',3:'Monkey'}" name="animalId" />