在一个很大的jsp中有比较多的select标签,需要用request中的list来填充它。在用struts框架校验的时候,校验不通过则返回此页面。问题来了:校验不通过的时候,是不会进入到相应的action的,那么页面上的select标签就无法恢复到用户操作前的值(下拉框中的值都没有了),根本就不会有list了。当然,有些比较变态的方法是可以做好的,比如在form中重载validate方法得到异常对象,然后返回null,然后在进入action,在其中判断error对象是否为空,这样就可以手动加入list。。这样感觉很别扭。。大家给一些好的处理方案,因为struts用的不多,还请大家高抬贵手! 谢谢了
1. 在formbean 中用validate,当然要配置一下struts-config.xml:<action>validate=true
2. 在Action中进行处理。自己写check 共通方法,再调用。
3. 配置validate.xml中的动态校验。通常一个相对成熟的项目采用的是2或3的处理方案。
因为提交formbean 中的内容并没有丢失,struts框架会自动将值保留在页面上。相关的资料请自己查阅一下。我说的不正确的地方,请大家指正。
input配置.do也是个不错的办法,但是这个url如果是带参数的会不会有些麻烦呢?
你可以试试,在formBean中仍然有validate,但不是自动调用,进入action后由某个方法手动来调用,看看有没有错误,然后再决定返回的页面。不过这样写可能会多点代码吧。其实有些东西能在前台做了也好,前台的提示也是比较友好的。像你这么多的下拉框,若要初始化这个页面,也得向数据库里面取不少数据。最好是前台和后台都有,大部分情况下前台解决,实在有部分顽固分子,后台做保障。
建议用js写验证,,,