2016-03-22 118 views
1

在我的项目的旧版本中,我使用Struts 1.x与ActionsForm类。Spring MVC模型属性的初始化

假设在我的表单类中有一个'Long'类型的属性'count'。 如果我调用一个接受这个表单类的动作类,那么属性的值会自动设置为'0'。

没有我迁移到Spring MVC - 并使用模型类而不是表单类。但他们看起来完全相同 - 所以还有一个类型为'Long'的属性'count'。

现在,我把我的控制器类:

@RequestMapping(value = "/dosomething") 
public ModelAndView list(@ModelAttribute MyModelClass myModelClass) { 

当我看着 'myModelClass', '计数' 属性为null。 但在Struts中,我希望它默认为0。

这怎么办?

+0

通过在模型对象中为其分配默认值。 –

+0

这可能是一个解决方案,但它对我来说似乎是快速和肮脏的。如果我应该总是看看默认值并编写一些额外的代码,那么使用模型类的好处似乎已经消失了。 – CodeCannibal

+0

为什么所有的信息都在模型对象中,所以不知道这是什么问题。任何对象的默认值都是'null',所以如果yu想要别的东西使用'long'而不是对象包装器,或者以你提交的形式(在客户端)指定一个默认值。 –

回答

0

Long(Wrapper Class)的默认值为null。因此,您的MyModelClass在count中具有空值。如果您想要默认值0,则使用原始长度。