第一个问题,是输出到日志中;
第二个问题,我认为主要是你提交时是否有form,而不是看你的配置文件里是否的form.

解决方案 »

  1.   

    up第一个问题中的:LogFactory.getLog("org.apache.struts.webapp.Example");具体是什么?参数是怎么回事?第三个问题还没有人回答,谢谢.
            if (log.isTraceEnabled()) {
                log.trace(" Forwarding to 'success' page");
            }★★ To:kui(kui)
    关于第二个问题您能深入解释吗?
      

  2.   

    地一个问题: 中间的参数如果是String 既你提到的("org.apache.struts.webapp.Example"),那么将来在所有以此输出日志的前面会加上:org.apache.struts.webapp.Example这句话。
      

  3.   

    第二个问题:我猜是为了节省运行时间,看是否支持日志输出,避免了LOG中的复杂判断。
      

  4.   

    照你上面贴出来的代码,应该是使用struts的公共log接口,
    他一般是按照以下顺序:
    可以参看 Struts 的官方文档:
    4.11 Commons Logging Interface(http://jakarta.apache.org/struts/userGuide/building_controller.html#logging)
    If Log4J is there, use it. 
    If JDK 1.4 is there, use it. 
    Otherwise, use SimpleLog.所以,根据不同的log,会有不同的配置,和保存日志的地方,
    默认情况下,是往控制台输出
      

  5.   

    谢谢楼上大哥。Leemaasn谢谢。请高手帮我看看上面的     第二个问题费心了
      

  6.   

    第二个问题:主要是做一下空对象的判断,
    在java里用到对象,一般都要求做一下是否为null的判断。。
      

  7.   

    根据源代码的注示:
            /* The body of the if block below should *never* be executed.
             * Since this Action has a RegistrationForm attribute, struts has
             * already created the form.  The check below is just to guard against
             * a null pointer exception in case someone inadvertently removes the
             * attribute="registrationForm" from struts-config-registration.xml
             */
    这个ActionForm 应该被加载了啊,为什么每次都为null呢?不解中。
      

  8.   

    请大家看一下Matrix论坛的回复:
    大侠 :kilojin的回复1.曾经研究过几天Log,觉得csdn上面的回答不是很对。首先觉得有必要详细说明一下调用LogFactory.getLog()时发生的事情。调用该函数会启动一个发现过程,即找出必需的底层日志记录功能的实现,也就是说,它的参数是一个实现了Log接口的类,且必须在CLASSPATH之中,具体可以看看http://jakarta.apache.org/commons/logging.html上的Logging说明。2,呵呵,,我没有仔细研究过example,不过,if (form == null)一直能够进去,,我想还是你的struts-config.xml的配置上的问题,,也许大小写没有注意等。3,log.isTraceEnabled()和log.isDebugEnabled()等时提供代码保护的。
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~不过,迩是有点不明白:
    十分感谢第三个问题“代码保护”是什么啊?我不太理解关于第二个问题:我的example是没有做过修改的啊。另外,struts-config.xml中的“attribute="registrationForm”是干什么的啊?它是不是关键所在啊。这个东东在struts里是怎么对应的啊?
      

  9.   

    如果你直接通过〈html:link page=" ">的方式来访问EditRegistrationAction 那么你所传入的form就是null,为了对这个情况处理就要加上form==null。我以前不喜欢加,现在喜欢了,对所有有可能引起空值的一定要加!谢谢解决了就给分吧!还差100呀!
      

  10.   

    To :hj12(12) 能再具体解释一下吗?
    <html:link page="/editRegistration.do?action=Create"><bean:message key="index.registration"/></html:link>bean:message key-"index.registration"  是什么东东啊?
      

  11.   

    是 你在WEB-INF下有个*.properts的属性文件,用记事本打开就看到了!他是struts支持国际化的一部分!你可以把不同国家的做成不同的这样文件,struts会根据不懂的人给其不同的值!呵呵!好象你的多给我点分!哈哈!没办法差点分就5个角了!羞愧!
      

  12.   

    bean:message key-"index.registration"
    这句话就是从文件中把值取出来!并且在网页上显示出来!
      

  13.   

    To :hj12(12)我这样也不行啊兄弟。不对吧?
      

  14.   

    回复人: hj12(12) ( ) 信誉:90  2003-10-31 10:40:00  得分:0 
     
     
      bean:message key-"index.registration"
    这句话就是从文件中把值取出来!并且在网页上显示出来!
      
     
    ?????从什么文件啊?我不加link,form也是null啊
      

  15.   

    bean:message key-"index.registration"
    写错了
    bean:message key="index.registration"
                    注意
      

  16.   

    OH 我习惯手写,不好意思写错了。
    那你能给出一句能够让struts产生form的语句吗?我是这样写的:
    <a href="/struts-example/editRegistration.do?action=Create">hello</a>
      

  17.   

    bean:message key-"index.registration"
    这句话就是从文件中把值取出来!并且在网页上显示出来!在ApplicationResources.properties里面定义的国际化
      

  18.   

    几天没关注这个帖子,回复一大堆,我老眼昏花,都看昏头了
    :(
     BillyW(阿弥陀佛)说的 第二个问题。我只能从帖子头看了
    照我的理解:
    web application 中的 object 有几种 life cycle。
    比如:application,session,request,page,
    一般我们定义object的时候,都是(默认)为:request的。
    而这个life cycle一般是从我们在浏览器上用鼠标点点开始到web  server 返回client browse结束的。因此,如果,你定义了一个form-bean,(request形式)。
    在你每次使用的时候,就应该重新生成啊。老的form-bean,已经不在life cycle了个人理解,不知道是否大家认可
      

  19.   

    恩,楼上说的有道理,但是在这个JAKATA-STRUTS的EXAMPLE里为什么给出这样一个例子呢!不解中。
      

  20.   

    To: Leemaasn(他这家伙不怀好意 :P)那您说,第二个问题为什么要那样做呢?