注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

技术行者

时代的车轮在按照摩尔定律滚动。

 
 
 

日志

 
 

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

2010-03-25 11:31:00|  分类: Java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

孙卫琴《精通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

  评论这张
 
阅读(1819)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017