简单的strusts例子:helloapp调试心得【转载】

孙卫琴《精通Struts:基于MVC的Java Web设计与开发》中,第二章介绍了一个很适合初学者学习的比较简单的struts例子:helloapp,大家可以到这个网址下学习:
http://dev.csdn.net/article/47/47301.shtm

在学习调试的过程中,我遇到了很多问题:
1.第一次在浏览器下浏览时报错,然后再启动tomcat就一直报错,错误是:
struts java.lang.NoClassDefFoundError: org/apache/commons/beanutils/Converter
意思是找不到common-beanutils.jar下的Converter类。但事实上,我检查过,那些类都在
在网上搜了很多办法,比如把common-beanutils.jar包放到%java_home%\jre\lib\ext下之类的,可是还是没解决问题,因为接着又报以下的错误:
   java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet
   意思是找不到HttpServlet类!——这怎么可能,因为之前我做的jsp以及servlet的例子都要用到这个类……
   后来经过和调试过的同学比较,发现我的电脑上环境变量没配置好。
   注意:对struts来说,这个是很重要的。
   在环境变量的classpath配置应该如下:

    .;%JAVA_HOME%\lib;D:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar;D:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\jsp-api.jar
   其中,D:\Program Files\Apache Software Foundation\Tomcat 5.5是你的tomcat的安装路径,根据你tomcat的版本以及安装盘的不同要做相应的变化
   如此一来,问题解决啦——tomcat可以启动,也出现了想要的界面

2. 但是当进行错误验证时,即不输入名字,或者输入monster时,又出错了,报错如下:
   java.lang.ClassCastException:org.apache.struts.action.ActionMessage
   呵呵,在网上一查,原来原因是这个:


   在HelloForm.java下,把


   ActionMessages errors = new ActionMessages();

        if ((userName == null) || (userName.length() < 1))
        errors.add("username", new ActionMessage("hello.no.username.error"));
        return errors;
   改为
       ActionErrors errors = new ActionErrors();

        if ((userName == null) || (userName.length() < 1))
        errors.add("username", new ActionError("hello.no.username.error"));
        return errors;

   在HelloAction.java下,把


       ActionMessages errors=new ActionMessages();
       String userName=(String)((HelloForm)form).getUserName();
       
       String badUserName="Monster";
       if(userName.equalsIgnoreCase(badUserName)){
              errors.add("username",new ActionMessage("hello.dont.talk.to.monster",badUserName));
       saveErrors(request,errors);

改为:
      ActionErrors errors=new ActionErrors();

      String userName=(String)((HelloForm)form).getUserName();
      String badUserName="Monster";
      if(userName.equalsIgnoreCase(badUserName)){
              errors.add("username",new ActionError("hello.dont.talk.to.monster",badUserName));
      saveErrors(request,errors);

注意,改动之后,要记得导入两个包哦:
    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionErrors;

如此一来这个例子就完全成功啦!
为了方便初学者哦
希望大家遇到问题也能发出来,这样能节省很多时间,少走很多弯路……

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/luyangever/archive/2008/11/07/3236896.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值