问题:struts1部分action方法访问报错,但后台无异常,请求不到相应方法
比如修改完后点击保存,请求并非跳到action的保存方法,其实未到达org.springframework.web.struts.DelegatingActionProxy的execute方法。
解决:首先检查各种配置,无变更,都没问题,三板斧也用遍了,就在束手无策之时,想起改变过页面某个模型对象的字段值,发现改变后的值是模型对象定义的字段类型不支持的,在set时失败,并中断了请求,但并无异常输出或抛出异常。把值修正为实体能支持的类型,保存成功。
分析:struts1在提交表单,发起请求时,在进入Action.execute()之前做了很多事,其中就包括处理表单,而此处XxxxForm中关联了模型对象,所以创建模型对象实例,并将各表单域的值赋给模型对象实例的对应属性……万事俱备了才根据ActionMapping调到XxxxAction.execute()。解决这个问题的过程走了弯路,模型对象只有简单get和set,且无异常抛出也无异常输出,不能直观地知道出错原因。
比如修改完后点击保存,请求并非跳到action的保存方法,其实未到达org.springframework.web.struts.DelegatingActionProxy的execute方法。
解决:首先检查各种配置,无变更,都没问题,三板斧也用遍了,就在束手无策之时,想起改变过页面某个模型对象的字段值,发现改变后的值是模型对象定义的字段类型不支持的,在set时失败,并中断了请求,但并无异常输出或抛出异常。把值修正为实体能支持的类型,保存成功。
分析:struts1在提交表单,发起请求时,在进入Action.execute()之前做了很多事,其中就包括处理表单,而此处XxxxForm中关联了模型对象,所以创建模型对象实例,并将各表单域的值赋给模型对象实例的对应属性……万事俱备了才根据ActionMapping调到XxxxAction.execute()。解决这个问题的过程走了弯路,模型对象只有简单get和set,且无异常抛出也无异常输出,不能直观地知道出错原因。