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的配置文件
主要是修改action中type屬性,設置為spring管理,修改為
type="org.springframework.web.struts.DelegatingActionProxy">
5)web的配置加上
<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)適當的時候加入一些過濾器,比較好
以上都是s(Struts1.X)sh,下面的是s(Struts2.0)sh
-----------------------------------------------------------------
1.Struts.xml中的action中class并不是action的class而是自己通過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&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整合的一個小的簡單的學生管理系統給大家,希望一起學習,有什么好的意見請聯系我,QQ:506817493(E-mail:leeshunli@qq.com)
學生管理系統.rar
博客中的一些下載已經放到了百度云了,請根據需要下載。【點我去百度云下載】
最后弱弱地說一下,如果可以的話,轉載請提供出處(
),謝謝。
posted on 2010-01-08 17:31
李順利 閱讀(1156)
評論(0) 編輯 收藏