java-Struts-如果选择列表为空,如何获取选择列表的值?

提问

我在ActionForm中的数组对象出现问题,该对象在HTML中显示为“选择”元素,用户可以添加和删除选项,然后在提交时在数据库中添加或删除值,所有工作正常,我选择全部提交时使用选项,以便所有值都将映射到表单数组中,依此类推.

但是,当用户提交一个空的选择时,我没有在form对象中看到任何更改,因此该窗体无法识别该数组的值为null.

我正在使用Struts 1.2

最佳答案

如果未选择任何内容,则数组将保留实例化Form bean时的状态.因此,如果将其初始化为空数组,则将拥有所需的内容.

我的猜测是您正在为Form Bean使用(不幸的)默认会话作用域.这是一个坏习惯.您应该更喜欢请求范围的表单bean.而且,如果您真的想保留会话范围的表单bean,则它们应该重写reset()方法,以便在从请求参数中填充属性之前将属性重置为其默认值.