Struts2 字段为Long型,表单中怎么填字符串就提交不到Action
Struts2 字段为Long型,表单中如何填字符串就提交不到Action?
整个东西用 spring2 + struts3 + hibernate3(JPA)
struts.xml
现象:
entity 中字段为Long型,表单中在该字段填 字符串比如aaaabbfgfg ,断点发现ACTION 的 save()根本没有进入,点提交只是闪了一下然后还在原来页面,填的东西也还在。而如果填数字的话,就可以进入save()
1、 填的类型不一致就无法提交不到Action里?是不是在拦截器被拦截了?在哪个拦截器?
2、我想自己在ACTION中写校验代码,但是也得让那个字段进来才行啊!有什么方法?
3、ACTION中@Validations 需要配合什么才能起作用?
------解决方案--------------------
params拦截器和conversionError拦截器会对页面上录入的数进行转化,若转换不了,会记录下错误信息,workflow会读取到这些错误信息
可以在action里面实现validate()方法,或者使用Annotations验证,或者基于xml进行校验,或者自己写个校验.
整个东西用 spring2 + struts3 + hibernate3(JPA)
struts.xml
<package name="basePackage" extends="struts-default">
<interceptors>
<interceptor-stack name="baseStack">
<interceptor-ref name="exception" />
<interceptor-ref name="alias" />
<interceptor-ref name="servletConfig" />
<interceptor-ref name="i18n" />
<interceptor-ref name="prepare" />
<interceptor-ref name="chain" />
<interceptor-ref name="debugging" />
<interceptor-ref name="scopedModelDriven" />
<interceptor-ref name="modelDriven" />
<interceptor-ref name="checkbox" />
<interceptor-ref name="multiselect" />
<interceptor-ref name="staticParams" />
<interceptor-ref name="actionMappingParams" />
<interceptor-ref name="params">
<param name="excludeParams">dojo\..*,^struts\..*,.*\\u0023.*,.*\\x5Cu0023.*,.*\\x5cu0023.*</param>
</interceptor-ref>
<interceptor-ref name="conversionError" />
<interceptor-ref name="validation">
<param name="excludeMethods">input,back,cancel,browse</param>
<param name="validateAnnotatedMethodOnly">true</param>
</interceptor-ref>
<interceptor-ref name="workflow">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="baseStack" />
现象:
entity 中字段为Long型,表单中在该字段填 字符串比如aaaabbfgfg ,断点发现ACTION 的 save()根本没有进入,点提交只是闪了一下然后还在原来页面,填的东西也还在。而如果填数字的话,就可以进入save()
1、 填的类型不一致就无法提交不到Action里?是不是在拦截器被拦截了?在哪个拦截器?
2、我想自己在ACTION中写校验代码,但是也得让那个字段进来才行啊!有什么方法?
3、ACTION中@Validations 需要配合什么才能起作用?
------解决方案--------------------
params拦截器和conversionError拦截器会对页面上录入的数进行转化,若转换不了,会记录下错误信息,workflow会读取到这些错误信息
可以在action里面实现validate()方法,或者使用Annotations验证,或者基于xml进行校验,或者自己写个校验.