http://www.javaeye.com/topic/100514
按照这个帖子里总结的SIMPLEFORM流程应该是
get请求来到时,这样处理:
a) 请求传递给一个controller对象
b) 调用formBackingObject()方法,创建一个command对象的实例。 c) 调用initBinder(),注册需要的类型转换器
d) 调用showForm()方法,返回准备呈现给用户的视图
e) 调用referenceData()方法,准备给用户显示相关的数据。如用户登录需要选择的年度信息
f) 返回formView指定的视图
post请求来到时,这样处理:
a) 调用formBackingObject()方法,创建一个command对象的实例。
b) 将请求传来的参数写入command对象
c) 如果设置为要求验证,则调用validator类进行数据验证
d) 调用onBindAndValidate()方法,该方法允许自定义数据绑定和校验处理
e) 调用onSubmit()方法,进行业务逻辑处理 结果到我这个代码的问题是
GET的情况下一致,没问题
POST时候ABD都一致,也没问题(我没有在配置文件中家VALIDATE,并且设置VALIDATE为FALSE)
然后到E这步,onSubmit完全不执行(但是最终会自动跳到SuccessView,除了SYS打不出信息外,其他业务代码包括用RESPONSE做REDIR跳转,都是完全不执行),但是同样的代码换到processFormSubmission或者doSubmit方法里却能正常执行,尤其是同样MODELANDVIEW返回值的processFormSubmission方法,几乎就能替代ONSUBMIT。这是为什么?这种貌似重复的方法有什么区别,或者我这样替换会出现什么BUG么?
按照这个帖子里总结的SIMPLEFORM流程应该是
get请求来到时,这样处理:
a) 请求传递给一个controller对象
b) 调用formBackingObject()方法,创建一个command对象的实例。 c) 调用initBinder(),注册需要的类型转换器
d) 调用showForm()方法,返回准备呈现给用户的视图
e) 调用referenceData()方法,准备给用户显示相关的数据。如用户登录需要选择的年度信息
f) 返回formView指定的视图
post请求来到时,这样处理:
a) 调用formBackingObject()方法,创建一个command对象的实例。
b) 将请求传来的参数写入command对象
c) 如果设置为要求验证,则调用validator类进行数据验证
d) 调用onBindAndValidate()方法,该方法允许自定义数据绑定和校验处理
e) 调用onSubmit()方法,进行业务逻辑处理 结果到我这个代码的问题是
GET的情况下一致,没问题
POST时候ABD都一致,也没问题(我没有在配置文件中家VALIDATE,并且设置VALIDATE为FALSE)
然后到E这步,onSubmit完全不执行(但是最终会自动跳到SuccessView,除了SYS打不出信息外,其他业务代码包括用RESPONSE做REDIR跳转,都是完全不执行),但是同样的代码换到processFormSubmission或者doSubmit方法里却能正常执行,尤其是同样MODELANDVIEW返回值的processFormSubmission方法,几乎就能替代ONSUBMIT。这是为什么?这种貌似重复的方法有什么区别,或者我这样替换会出现什么BUG么?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货