本帖最后由 yzk116688 于 2010-03-29 10:30:16 编辑

解决方案 »

  1.   

        <interceptor-stack name="defaultStack">
            <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="fileUpload"/>
            <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\..*</param>
            </interceptor-ref>
            <interceptor-ref name="conversionError"/>
            <interceptor-ref name="validation">
                <param name="excludeMethods">input,back,cancel,browse</param>
            </interceptor-ref>
            <interceptor-ref name="workflow">
                <param name="excludeMethods">input,back,cancel,browse</param>
            </interceptor-ref>
        </interceptor-stack>以上是struts2默认拦截器,根据执行顺序,先执行模型驱动拦截器,再执行参数拦截器。没有别的办法,Action中id修改名字。
      

  2.   

    额 需要实现 ModelDriven 吗  不用实现  只需要给两个属性增加set方法  然后在前台空间的name里写入的属性值和类里的属性同名就行了
      

  3.   


    实现了这个的话在页面上传值就不用写user.username,user.password.直接写username,password就可以了
      

  4.   


    这个我也知道在struts2的jar里面可以看到,可是要让他正常工作应该怎么弄呢?
    我觉得先后顺序应该是:先拦截参数,再拦截model,最后执行action……
      

  5.   

    可以在struts2的配置文件里struts.xml,进行设置默认的拦截器吗???
      

  6.   

    把这个拦截器<interceptor-ref name="paramsPrepareParamsStack"/>加到你的action中可以实习你想要的顺序