Struts的html:errors 没有显示的解决办法

版权声明: 原创作品,允许转载,转载时请务必以超链接形式标明 文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://icansoft.blog.51cto.com/268543/56608
  1. 在struts-config.xml必须设置需要验证的ActionForm
    <action
          attribute="findSellForm"
          validate="true"
         input="/index.jsp"
          name="findSellForm"
          path="/findSell"
          scope="request"
          type="ucshop.action.FindSellAction" >
          <forward name="fail" path="/index.jsp" />
          <forward name="success" path="/findsell.jsp" />
        </action>

    validate 默认值是true的,所以可以省略;如果不想验证,则设为false,这样的话,后面的就不用看了!

    input要指明,检 验流程:当执行validate方法时,返回的ActionErrors检查内部是否存在元素,有则返回到原来的input指定的页面;否则继续前进,执 行Action的execute方法!到时候forward的fail和success才起作用!

  2. JSP页面
    <html:form action="/findSell">
     物品分类: <html:select property="productType">
      <html:option value="电脑配件"/>
      <html:option value="数码产品"/>
      <html:option value="运动用品"/>
      <html:option value="生活用品"/>
      <html:option value="户外用品"/>
      <html:option value="其他"/>
     </html:select>
    <br/><br/>
     物 品名称: <html:text property="name"/> <html:errors property="sellname"/>
    <br/><br/>
     <html:submit value="搜索"/>
    </html:form>

    注意: 加蓝的语句中property的值sellname是对应下面的validate()方法中的"errors.add("sellname" , new ActionMessage("errors.productNameEmpty" )); "的selllname!

  3. ActionForm的validate
    下面的代码是struts的1.2版本的:
    public ActionErrors validate(ActionMapping mapping,
          HttpServletRequest request) {
                     //创建ActionErrors
      ActionErrors errors = new ActionErrors();
      
       //物品名称的检验
       if (getName() == null || getName().trim().equals(""))
      {
          errors.add( "sellname" , new ActionMessage( "errors.productNameEmpty" ));
      }

       //返回ActionErrors
       return errors; 
    }
    自struts1.2, ActionError类都Deprecated, 不再赞成使用,官方建议使用ActionMessage类,所以 在struts1.2以下版本的,上面的"errors.add("sellname" , new ActionMessage("errors.productNameEmpty" )); "改为errors.add("sellname" , new ActionError("errors.productNameEmpty" ));
    同时ActionErrors的GLOBAL_ERROR 被Deprecated,被ActionMessages.GLOBAL_MESSAGE 代替!
    ========================================
    有 时候需要在Action的execute()方法里面进行例如权限的验证.
    举个例子,validate()是检查用户名和密码数据是否为空,当用 户输入了完整信息后,执行execute(),这时若发现"用户名或密码有误",,就需要显示错误信息
    public class ServerValidationAction extends Action {
         public ActionForward execute(ActionMapping actionMapping,
          ActionForm actionForm, HttpServletRequest httpServletRequest,
          HttpServletResponse httpServletResponse) {
       /*
       * 权限验证
       */

      ServerValidationActionForm form = (ServerValidationActionForm) actionForm;

       if (!form.getPassword().equals( "password" )) {
           ActionErrors errors = new ActionErrors();
           errors.add(ActionErrors.GLOBAL_ERROR, new ActionMessage(
            "errors.passwordwrong" ));
          saveErrors(httpServletRequest, errors);
          return new ActionForward(actionMapping.getInput());


       }
       return actionMapping.findForward( "success" ); 
      }
    }

  4. WEB-INF文件夹的classes目录下创建一个文件夹xx,添加一个名为 gb_ApplicationResources.properties的文件在xx文件夹里面,内容
    errors.productNameEmpty=物品名称必须要填写
    等于号左边的内容名字就是new Ac ionMessage("erors.productNameEmpty")); 的value
    创 建文件内容为
    native2ascii gb_ApplicationResources.properties  ApplicationResources.properties
    保存为native2ascii java.bat 注意,不要保存为native2ascii.bat,否则会死循环!同时这个文件和 gb_ApplicationResources.properties在同一目录!
    然后双击native2ascii java.bat,一会儿就会生成一个名为ApplicationResources.properties的文件!

  5. struts-config.xml添加<message-resources parameter="xx.ApplicationResources"/>
Ok,save,reload项目,run试试! 如果还不行,请检查上面的步骤遗漏了哪些!!

本文出自 “Java学习博客 ” 博客,请务必保留此出处http://icansoft.blog.51cto.com/268543/56608

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值