<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    李順利
    隨筆-50  評論-170  文章-0  trackbacks-0

    ssh整合注意點

       V0.1

    1) 整合SSH后,寫了一個程序,后面發布(tomcat)的話,就會報下面的錯。解決辦法是移除Spring2.0 AOP Libraries中的“asm-2.2.3.jar”即可”,我看了一下,確實有

    這兩個包,刪除asm-2.2.3.jar,發布成功。

    2) 由于本程序要用到DAO,在用戶管理類中我一開始使用

    UserDAO dao = new UserDAO();

     public void addUser(User user)
     {
      dao.save(user);
     }
     
    后面一直會報一個空指針異常的錯誤(java.lang.NullPointerException),后來也是在網上找了好久,才發現一個我不小心的地方,就是我已經使用了Spring進行依賴注入,不

    過上面的語句根本就沒有注入,所以會報空指針異常的錯誤,改為下面的語句,使用Spring進行注入,也就是使用set方法就行注入即可(初學者經常犯的錯誤吧)。

     private UserDAO dao;

     public void setDao(UserDAO dao)
     {
      this.dao = dao;
     }


     public void addUser(User user)
     {
      dao.save(user);
     }

    <bean id="userManager" class="com.usc.manager.userManagerImpl">
      <property name="dao" ref="UserDAO"/>
     </bean>

    3) Struts生成jsp文件的時候,會出現一個Cancel按鈕,如果不處理的話,單擊會報org.apache.struts.action.InvalidCancelException異常,網上說的話:Cancel按鈕

    的機制和submit機制是一樣的,沒有處理,如果要解決的話,在Struts配置文件中的每個action里面加上cancellable="true",雖然這樣能夠解決異常,但是治標不治本,此時如

    果點擊Cancel按鈕會當一個submit按鈕來進行提交,我覺得真有點違背常理,所以我的解決方案就是1.刪除cancel按鈕,2.修改為reset按鈕(我覺得是最好的解決方案)

    4) 配置文件
    Spring
    的配置文件
    Spring
    的配置文件主要是對Spring的一些機制進行配置,如:配置sessionFactory、配置sessionFactory、配置事務的傳播特性、配置那些類的哪些方法參與事務、配置action

    配置一些bean
    Struts
    的配置文件
    主要是修改actiontype屬性,設置為spring管理,修改為
    type="org.springframework.web.struts.DelegatingActionProxy">

    5web的配置加上

     <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath*:applicationContext-*.xml</param-value>
     </context-param>
     <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
     </listener>
     <filter>
      <filter-name>Spring character encoding filter</filter-name>
      <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
      <init-param>
       <param-name>encoding</param-name>
       <param-value>utf8</param-value>
      </init-param>
     </filter>
     <filter-mapping>
      <filter-name>Spring character encoding filter</filter-name>
      <url-pattern>/*</url-pattern>
     </filter-mapping>

    6)適當的時候加入一些過濾器,比較好

    以上都是sStruts1.Xsh,下面的是sStruts2.0sh

    -----------------------------------------------------------------
    1.Struts.xml
    中的actionclass并不是actionclass而是自己通過spring注入的action
    2.Hibernate
    的配置文件中加入
    <property name="connection.autocommit">true</property>
    默認是沒有的,不然對數據庫的添加...操作都不可以
    3.
    spring的配置action中,必須加入scope="prototype"
    4.web
    的配置文件中加入
     <listener>
      <listener-class>
       org.springframework.web.context.ContextLoaderListener
      </listener-class>
     </listener>
    5.
    同上面的(1)(2
    6.
    注意JSTL和迭代的使用(非常有用)
    7.actionForm
    不能通過spring注入,一般改為靜態注入,或者在業務邏輯中進行注入(這個時候一般是準備進行驗證的)
    8.JSTL
    真的很強大,但是要注意一點就是一定要記得引入標簽庫,不然他不報錯,但是就是不能用。(切記,切記,已經很多次吃虧了)
    9.
    數據庫連接池技術實現如下(通過spring注入)
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
     <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
     <property name="url" value="jdbc:mysql://localhost:3306/mytest?useUnicode=true&amp;characterEncoding=utf8"></property>
     <property name="username" value="root"></property>
     <property name="password" value="lishunli"></property>
     <property name="maxActive" value="100"></property>
     <property name="maxIdle" value="30"></property>
     <property name="maxWait" value="500"></property>
     <property name="defaultAutoCommit" value="true"></property>
    </bean>

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
     <property name="dataSource" ref="dataSource"></property>
     <property name="hibernateProperties">
      <props>
       <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
       <prop key="hibernate.show_sql">true</prop>
      </props>
     </property>
     <property name="mappingResources">
      <list>
       <value>com/test/bean/User.hbm.xml</value>
      </list>
     </property>
    </bean>

    10.javax.servlet.UnavailableException: Cannot load a validator resource from '/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml'

    <!DOCTYPE form-validation PUBLIC

              "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"

              "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">

     

    查看上述內容和你的TOMCAT是不是符合

    10.解決中文亂碼問題,思路如下

        //解決中文亂碼問題的方法1,頁面端發出的數據作一次encodeURI,服務器段使用new String(old.getBytes("iso8859-1"),"UTF-8");

        //解決中文亂碼問題的方法2,頁面端發出的數據作兩次encodeURI,服務器段使用URLDecoder.decode(old,"UTF-8")

    11.表單的method方法一般都設置為post,設置為get有的時候會出現中文亂碼問題

    12.

     提供一個用SSH整合的一個小的簡單的學生管理系統給大家,希望一起學習,有什么好的意見請聯系我,QQ506817493(E-mail:leeshunli@qq.com

    學生管理系統.rar

     



    博客中的一些下載已經放到了百度云了,請根據需要下載。【點我去百度云下載】

    最后弱弱地說一下,如果可以的話,轉載請提供出處( ),謝謝。
    posted on 2010-01-08 17:31 李順利 閱讀(1156) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产精品成人无码免费| 人妻免费一区二区三区最新| 无码A级毛片免费视频内谢| 日批视频网址免费观看| 国产免费观看网站| 亚洲私人无码综合久久网| 97公开免费视频| 亚洲一卡2卡三卡4卡有限公司| 免费人成在线观看网站| 97久久精品亚洲中文字幕无码| 亚洲免费福利视频| 亚洲综合精品伊人久久| 免费高清在线爱做视频| 无人视频在线观看免费播放影院| 久久久久国产成人精品亚洲午夜| 三年在线观看免费观看完整版中文| 亚洲精品国产品国语在线| 99热这里只有精品免费播放| 久久精品国产亚洲αv忘忧草| 免费看www视频| 一个人免费观看视频在线中文 | 亚洲2022国产成人精品无码区| 国内精品免费在线观看| 亚洲最新中文字幕| 国产免费人人看大香伊| 大妹子影视剧在线观看全集免费| 亚洲av伊人久久综合密臀性色| 免费观看美女用震蛋喷水的视频| 亚洲人成电影网站免费| 亚洲成aⅴ人片久青草影院| 在线播放免费人成毛片乱码| 久久久久久亚洲Av无码精品专口| 日本xxwwxxww在线视频免费| 国产免费播放一区二区| 久久精品亚洲中文字幕无码麻豆| 四虎www免费人成| 免费a级毛片无码a∨免费软件 | 三年片在线观看免费观看大全中国| 亚洲精品乱码久久久久久按摩| 97在线观免费视频观看| v片免费在线观看|