刚刚学了些表单验证,我感觉验证逻辑不应该写在action里面,controller的职责貌似不应该包含这些,但是struts的验证框架把验证逻辑放ActionSupport的validate()方法里,话说这样,咱们在action中是不用验证数据了,但是貌似要判断一下有没有错误信息,然后决定跳转到哪个jsp,这不是换汤不换药么有没有用拦截器验证的?或者把验证逻辑放在service层?

解决方案 »

  1.   

    其实最简单的验证就是可以通过JS验证,这样数据就不用跑到后台了,不过涉及到和数据库交互的验证还是得通过Action验证了,比如判断用户名是否重复。
      

  2.   

    发现spring3.0中没有ActionSupport了用struts的ActionSupport又会出错。。怎么办啊。。
      

  3.   

    表单验证  可以通过一个struts的验证规则文件来验证<?xml version="1.0" encoding="UTF-8"?>  <!DOCTYPE validators PUBLIC 
       "-//OpenSymphony Group//XWork Validator 1.0.2//EN" 
       "xwork-validator-1.0.2.dtd">
      
     <validators>
      <field name="stu.sname">
      <field-validator type="required">
      <message>请输入学生姓名!</message>
      </field-validator>
      <field-validator type="stringlength">
      <param name="minLength">2</param>
      <param name="maxLength">10</param>
      <message>学生姓名长度必须在2-10位之间</message>
      </field-validator>
      </field>
     </validators>
    在页面的表单中添加一个属性
    <s:form action="stuadd" validate="true" enctype="multipart/form-data">所提示的信息 就会在页面显示不过这样做 外观太难看了 要改的话比较麻烦 
    建议使用JS来验证