posts - 10, comments - 9, trackbacks - 0, articles - 17

          2008年11月27日

          [ERROR] 07-29 11:23 - The /WEB-INF/web.xml was not found.  (ActionServlet.java:1787)
          java.net.ConnectException: Connection timed out: connect

          原web.xml頭部:
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
          <web-app>




            <servlet>
              <servlet-name>action</servlet-name>
              <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>


          修改為
          <?xml version="1.0" encoding="UTF-8"?>
          <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation
          ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">




            
          <servlet>
              
          <servlet-name>action</servlet-name>
              
          <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

          posted @ 2010-07-29 11:23 wesley1987 閱讀(1511) | 評(píng)論 (0)編輯 收藏


          在tomcat等容器中發(fā)布帶velocity的應(yīng)用時(shí), 出現(xiàn) org.apache.velocity.exception.ResourceNotFoundException : Unable to find resource ...vm  的解決辦法:

          配置文件 velocity.properties 中, 如果有
          resource.loader = file

          file
          .resource.loader.description = Velocity File Resource Loader
          file
          .resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoader
          file
          .resource.loader.path = .
          file
          .resource.loader.cache = false
          file
          .resource.loader.modificationCheckInterval = 2

          這段, 全部注釋掉即可.

          若沒(méi)有, 就在配置里寫上以上內(nèi)容, 并更改第三項(xiàng)為

          file.resource.loader.class = org.apache.velocity.tools.view.WebappResourceLoader

          posted @ 2010-07-28 15:35 wesley1987 閱讀(14184) | 評(píng)論 (1)編輯 收藏

          1。指定velocity.properties文件,  默認(rèn)路徑為 WEB-INF/velocity.properties 也可自定義路徑, 在web.xml中
                <servlet>
                  
          <servlet-name>velocity</servlet-name>
                  
          <servlet-class>org.apache.velocity.tools.view.servlet.VelocityLayoutServlet</servlet-class>
                  
          <init-param>
                      
          <param-name>org.apache.velocity.properties</param-name>
                      
          <param-value>/WEB-INF/config/velocity.properties</param-value>
                  
          </init-param>
                  
          <init-param>
                      
          <param-name>org.apache.velocity.toolbox</param-name>
                      
          <param-value>/WEB-INF/config/velocity-toolbox.xml</param-value>
                  
          </init-param>
                  
          <load-on-startup>5</load-on-startup>
                
          </servlet>
          注意 load-on-startup 需要配置且靠后, 否則啟動(dòng)時(shí)看不到日志.

          2。在velocity.properties中配置日程相關(guān)參數(shù):
          #----------------------------------------------------------------------------
          #  default LogSystem to use: default: AvalonLogSystem
          #----------------------------------------------------------------------------


          runtime
          .log.logsystem.class = org.apache.velocity.runtime.log.SimpleLog4JLogSystem

          runtime
          .log.logsystem.log4j.category = velocity_log

          #----------------------------------------------------------------------------
          # This controls if Runtime.error(), info() and warn() messages include the
          # whole stack trace. The last property controls whether invalid references
          # are logged.
          #----------------------------------------------------------------------------


          runtime
          .log.error.stacktrace = false
          runtime
          .log.warn.stacktrace = false
          runtime
          .log.info.stacktrace = false
          runtime
          .log.invalid.reference = true


          3\ 配置log4j.properties,  具體配置意義請(qǐng)參看log4j配置相關(guān)文檔
          log4j.rootLogger=INFO,CONSOLE,FILE
          log4j
          .logger.velocity_log=INFO,CONSOLE,VELOCITY
          log4j
          .addivity.org.apache=true

          log4j
          .appender.CONSOLE=org.apache.log4j.ConsoleAppender
          log4j
          .appender.CONSOLE.Threshold=WARN
          log4j
          .appender.CONSOLE.Target=System.out
          log4j
          .appender.CONSOLE.Encoding=GBK
          log4j
          .appender.CONSOLE.layout=org.apache.log4j.PatternLayout
          log4j
          .appender.CONSOLE.layout.ConversionPattern=[%-4p] %d{MM-dd HH:mm} - %m  %n

          log4j
          .appender.VELOCITY=org.apache.log4j.FileAppender
          log4j
          .appender.VELOCITY.File=E:/workspace/dwrt/WebRoot/log/velocity.log
          log4j
          .appender.VELOCITY.Append=false
          log4j
          .appender.VELOCITY.Encoding=GBK
          log4j
          .appender.VELOCITY.layout=org.apache.log4j.PatternLayout
          log4j
          .appender.VELOCITY.layout.ConversionPattern=[%-4p] %d{MM-dd HH:mm} - %m  %n

          posted @ 2010-07-28 11:39 wesley1987 閱讀(2475) | 評(píng)論 (0)編輯 收藏

          select COUNT(*) from table t WHERE t.col <> '3'


          SELECT COUNT(*) FROM table t WHERE t.col NOT IN
          (select t.col from table t WHERE t.col= '3')

          以上兩句SQL的執(zhí)行結(jié)果不同, 因?yàn)?<> 在排除3的同時(shí), 將null也排除了,
          所以當(dāng)比較字段含null時(shí),第一句將比第二句的結(jié)果少.

          當(dāng)然第二句從效率上來(lái)說(shuō)不是一個(gè)好的寫法, 這樣寫只是為了理解, 在第一句后面, 加上 or t.col is null 應(yīng)該就等效了.

          posted @ 2010-07-07 10:17 wesley1987 閱讀(7306) | 評(píng)論 (1)編輯 收藏

          在js中寫了個(gè)替換字符的句子, 然后才知道原來(lái)js沒(méi)有replaceAll方法, 就是說(shuō)用replace的話, 他自會(huì)替換一次.

          自定義replaceAll方法,
          String.prototype.replaceAll  = function(s1,s2){    
                  return this.replace(new RegExp(s1,"gm"),s2);   
          }  

          gm     g=global, m=multiLine  , 

          或直接 string = string..replace(new RegExp(s1,"gm"),s2);   

          posted @ 2010-07-07 09:44 wesley1987 閱讀(1077) | 評(píng)論 (0)編輯 收藏

          在使用DispatchAction時(shí)出現(xiàn)了這個(gè)問(wèn)題,從這句話分析,就是沒(méi)有在指定的類中,找到對(duì)應(yīng)的方法。

          先說(shuō)結(jié)論: 在Action中定義的方法(要在參數(shù)中使用的方法),參數(shù)一定要固定為
          (ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response )

          --------------------------------
          這種錯(cuò)誤,一般在保證所有路徑的拼寫都正確的情況下應(yīng)該就能避免,

          那接著分析一下,struts是如何從jsp一步步找到這個(gè)方法呢?


          1 頁(yè)面上 action的路徑,以及對(duì)應(yīng)的struts配置文件中定義的parameter的參數(shù)名(我這叫method)屬性值,這個(gè)屬性值應(yīng)對(duì)應(yīng)著 Action類的方法名。

          2 確認(rèn)了以上路徑都正確的情況下,考慮到DispatchAction對(duì)應(yīng)“方法”的方式,發(fā)現(xiàn)原來(lái)是方法多了一個(gè)參數(shù)。

          順便看了下DispatchAction源代碼,看到里面找方法的時(shí)候,用的是
           method = clazz.getMethod(name, types);
          其中
          clazz = getClass();
          types = (new Class[] {
                      org.apache.struts.action.ActionMapping.class,  org.apache.struts.action.ActionForm.class,  javax.servlet.http.HttpServletRequest.class,  javax.servlet.http.HttpServletResponse.class
                  });

          就是說(shuō),DispatchAction只會(huì)將參數(shù)固定為以上4中的函數(shù)作為控制器方法使用。

          posted @ 2009-07-27 21:13 wesley1987 閱讀(4249) | 評(píng)論 (2)編輯 收藏

               摘要: ActionForm繼承了下ForwardConfig,然后就寫了6個(gè)構(gòu)造函數(shù)……然后就沒(méi)了 =。=!
          有一句話沒(méi)翻譯出來(lái),有看得懂的來(lái)幫個(gè)忙吧 :
          NOTE - This class would have been deprecated and
          replaced by org.apache.struts.config.ForwardConfig except for the fact that
          it is part of the public API that existing applications are using.
          下面是翻譯后的源碼。
          package org.apache.struts.action
            閱讀全文

          posted @ 2008-12-10 15:53 wesley1987 閱讀(547) | 評(píng)論 (0)編輯 收藏

               摘要: package org.apache.struts.action.ActionForm源代碼(注釋翻譯版)

          *一個(gè)ActionForm是可以與一個(gè)或多個(gè)任意的ActionMapping關(guān)聯(lián)的JavaBean。這個(gè)bean的里屬性
          * 在對(duì)應(yīng)Action.execute方法調(diào)用前,由對(duì)應(yīng)的request初始化。
          *
          * 當(dāng)這個(gè)bean的屬性被賦值后,Action.execute方法調(diào)用之前,bean的validate方法
          * 將被調(diào)用,這個(gè)方法用來(lái)校驗(yàn)用戶提交的屬性值。如果發(fā)現(xiàn)錯(cuò)誤,就返回一個(gè)包含了這些錯(cuò)誤內(nèi)容的
          * error信息。controller將返回至相應(yīng)的輸入表單。如果無(wú)錯(cuò)誤,validate方法就返回null,
          * 相應(yīng)的Action.execute方法將被調(diào)用。
          *  閱讀全文

          posted @ 2008-12-09 21:48 wesley1987 閱讀(683) | 評(píng)論 (0)編輯 收藏

               摘要:   閱讀全文

          posted @ 2008-12-09 19:22 wesley1987 閱讀(691) | 評(píng)論 (0)編輯 收藏

               摘要:   閱讀全文

          posted @ 2008-12-09 18:31 wesley1987 閱讀(3471) | 評(píng)論 (0)編輯 收藏

          今天調(diào)試web工程的時(shí)候,前一分鐘還正常,后來(lái)重新部署了一下,就頁(yè)面也打不開(kāi)了。
          org.apache.jasper.JasperException: Unable to read TLD "META-INF/c.tld" from JAR file "file:/F:/Tomcat%206.0/webapps/myweb/WEB-INF/lib/standard.jar":
           org.apache.jasper.JasperException: Failed to load or instantiate TagLibraryValidator class: org.apache.taglibs.standard.tlv.JstlCoreTLV


          在網(wǎng)上搜了很久后,基本給出的解決方法大都是刪除 工程中的JSP-API.jar,可問(wèn)題是我根本就沒(méi)有這個(gè)jar。
          tomcat重新安裝好像也不行。包的放置應(yīng)該也沒(méi)問(wèn)題,

          posted @ 2008-11-30 20:52 wesley1987 閱讀(4183) | 評(píng)論 (2)編輯 收藏

          之前用struts做一個(gè)網(wǎng)站的登陸,希望在登陸前一直 提示 “登陸 注冊(cè)”,登陸后則顯示“Welcome:XXX   登出
          實(shí)現(xiàn)時(shí)視乎挺容易,放到session里,每個(gè)頁(yè)面判斷一下是否為空就行了。

          但接著就發(fā)現(xiàn)一個(gè)非程序的問(wèn)題:
                每次登陸登出 之后跳轉(zhuǎn)的JSP頁(yè)面里 卻沒(méi)有立刻跟新,必須要再刷新一次才會(huì)正常顯示,
          之后試了很多方法,重定向啊,自動(dòng)刷新啊,取消頁(yè)面緩存啊 好像都不行。
          后來(lái)討論的結(jié)論是  session可能在瀏覽器(或服務(wù)器)的緩存導(dǎo)致了刷新延遲。

          難道這就是各大網(wǎng)站每次登陸或登陸出都要給一個(gè) 頁(yè)面6秒后跳轉(zhuǎn) 的頁(yè)面的原因?

          如果有哪位大俠知道 真正影響刷新的原因 或者更好實(shí)現(xiàn)原目的的方法,還請(qǐng)賜教!

          posted @ 2008-11-27 20:47 wesley1987 閱讀(155) | 評(píng)論 (0)編輯 收藏

          主站蜘蛛池模板: 伊金霍洛旗| 彰化市| 富平县| 师宗县| 仙居县| 静海县| 上饶市| 梁平县| 宽甸| 东至县| 谢通门县| 诸暨市| 隆安县| 江油市| 华蓥市| 赤壁市| 金阳县| 重庆市| 措勤县| 洪湖市| 启东市| 沛县| 囊谦县| 恩平市| 平度市| 东乡族自治县| 岑巩县| 于都县| 贵南县| 浙江省| 盘山县| 宜宾市| 英超| 华安县| 始兴县| 塘沽区| 阿城市| 吉水县| 大田县| 邵东县| 平阴县|