gpt4 book ai didi

java - 无法在struts2中的modelDreiven拦截器中将字符串设置为Int

转载 作者:太空宇宙 更新时间:2023-11-04 14:47:44 24 4
gpt4 key购买 nike

嗨这是我的问题

我的jsp中有select标签

  <select list="#{'1':cat,'2':'dog','3':Monkey}" name="animalId" />

在我的 Action 类中,我使用 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 转换为 BeanClass 中的 String 类型时,它工作正常。

根据文档..类型转换必须自动完成...但我在控制台中也找不到任何错误...

请有人帮助我..

最佳答案

如果您想在值属性中预选一个选项,则模型中的字段类型应与下拉列表中的键类型和值类型相对应。如果键和值具有相同类型的对象,则可以相互比较。如果您有一个 string 或 char 类型的键以及 Integer 类型的相应值,那么 OGNL 将尝试获取/设置与键相同类型的属性。在您的情况下,您使用 OGNL 和 string/char 键类型实例化一个映射。这就是为什么您的属性未设置,但如果您的属性类型为 String 则已设置。您可以更改下拉列表创建Integer 键和String 值的方式。

<select list="#{1:'cat',2:'dog',3:'Monkey'}" name="animalId" /> 

关于java - 无法在struts2中的modelDreiven拦截器中将字符串设置为Int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24196992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com