天天看點

Spring_1.2.7 、 webwork_2.2.2及hibernate3的內建

Spring_ 1.2.7 銆?/b> webwork_2.2.2 鍙?/b> hibernate3 鐨勯泦鎴?/b>

1.聽 鍒皐ebwork瀹樼綉涓嬭澆webwork- 2.2.2 .zip銆乻pring_1.2.7.zip鍙奾ibernate3鐩稿叧绫誨寘,鑾峰彇webwork-2.2.2.jar浠ュ強lib/default 鐩綍涓嬬殑鏍稿績蹇呴』绫誨寘,鍚屾椂鑾峰緱spring1.2.7.jar浠ュ強hibernate3鐨刪ibernate3.jar锛宩ta.jar锛宔hcache-1.1.jar绛夊寘锛屽湪鏋勫緩web宸ョ▼鏃堕渶瑕佹斁鍒闆伐绋嬬被搴撶洰褰曚腑;

2.聽 缂栬緫webwork_ 2.2.7 鍦╳eb宸ョ▼涓殑閰嶇疆鏂囦歡,鍖呮嫭xwork.xml銆亀ebwork-default.xml銆亀ebwork.tld銆亀ebwork.properties銆亀eb.xml浠ュ強涓撻棬涓烘敞鍐屼簨鍔$紪鍐欑殑action閰嶇疆鏂囦歡login.xml锛屽彟澶栬繕瑕佺紪杈憇pring鐨勭浉鍏抽厤缃枃浠禷pplicationContext.xml浠ュ強hibernate鐨勯厤缃紝璇ラ厤缃病鏈夊崟鐙綔涓洪厤缃枃浠訛紝鑰屾槸鍦╝pplicationContext.xml鏂囦歡涓厤缃畇essionFactory鐨勬椂鍊欏湪鍏?lt;property name="hibernateProperties">灞炴€ч厤缃紝鍏蜂綋鍐呭璇瘋閰嶇疆鏂囦歡, User瀹炰綋bean鐨勫璞″叧绯繪槧灏勬枃浠禪ser.hbm.xml,鍏剁洰褰曠粨鏋勫涓嬪浘:

https://p-blog.csdn.net/images/p_blog_csdn_net/xzjguest/EntryImages/20080718/clip_image002.jpg

鍥? 鐩綍缁撴瀯

3. web.xml 閰嶇疆鏂囦歡璇存槑涓庝婦渚?web.xml閰嶇疆鏂囦歡鍦╓EB-INF鐩綍涓?鏄墍鏈墂eb宸ョ▼閮藉繀椤葷殑閰嶇疆鏂囦歡,浣跨敤webwork妗嗘灦,闇€瑕佸湪鏀歸厤缃枃浠堕噷闈㈡敞鍐寃ebwork妗嗘灦鎻掍歡鏉ュ鐞唚eb璇鋒眰,涓句緥濡備笅:

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app

聽聽聽 PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

聽聽聽 "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

聽聽聽 <display-name>Test v2.0</display-name>

聽聽聽 <context-param>

聽聽聽聽聽聽 <param-name>contextConfigLocation</param-name>

聽聽聽聽聽聽 <param-value>

聽聽聽聽聽聽 聽聽聽 /WEB-INF/classes/spring/applicationContext.xml

聽聽聽聽聽聽 </param-value>

聽聽聽 </context-param>

聽聽聽 <filter>

聽聽聽聽聽聽 <filter-name>Encoding</filter-name>

聽聽聽聽聽聽 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

聽聽聽聽聽聽 <init-param>

聽聽聽聽聽聽聽聽聽聽 <param-name>encoding</param-name>

聽聽聽聽聽聽聽聽聽聽 <param-value>GBK</param-value>

聽聽聽聽聽聽 </init-param>

聽聽聽 </filter>

聽聽聽 <!-- spring -->

聽聽聽 <listener>

聽聽聽聽聽聽 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

聽聽聽 </listener>

聽聽聽 <!-- This needs to be after Spring ContextLoaderListener -->

聽聽聽 <listener>

聽聽聽 聽聽聽 <listener-class>com.opensymphony.webwork.spring.lifecycle.SpringExternalReferenceResolverSetupListener</listener-class>

聽聽聽 </listener>

聽聽聽 <!-- spring -->

聽聽聽 <listener>

聽聽聽 聽聽聽 <listener-class>com.opensymphony.webwork.spring.WebWorkSpringObjectFactory</listener-class>

聽聽聽 </listener>

聽聽聽

聽聽聽 <!-- WebWork -->

聽聽聽 <servlet>

聽聽聽聽聽聽 <servlet-name>webwork</servlet-name>

聽聽聽聽聽聽 <servlet-class>com.opensymphony.webwork.dispatcher.ServletDispatcher</servlet-class>

聽聽聽 </servlet>

聽聽聽 <!-- WebWork -->

聽聽聽 <servlet-mapping>

聽聽聽聽聽聽 <servlet-name>webwork</servlet-name>

聽聽聽聽聽聽 <url-pattern>*.action</url-pattern>

聽聽聽 </servlet-mapping>

聽聽聽 <welcome-file-list>

聽聽聽聽聽聽 <welcome-file>register.jsp</welcome-file>

聽聽聽 </welcome-file-list>

聽聽聽 <taglib>

聽聽聽聽聽聽 <taglib-uri>webwork</taglib-uri>

聽聽聽聽聽聽 <taglib-location>/WEB-INF/webwork.tld</taglib-location>

聽聽聽 </taglib>

</web-app>聽

4. xwrok.xml 閰嶇疆璇存槑涓庝婦渚?璇ユ枃浠跺湪绫葷殑鏍圭洰褰曚笅,鍦╳eb宸ョ▼涓簲鏀懼湪src鐩綍涓?宸ョ▼缂栬瘧鍚庡氨浼氬鍏lass鐩綍涓?鍗崇被鏍圭洰褰?鍏朵綔鐢?webwork鎻掍歡,鍦ㄦ涔熷彲浠ョО鍋歸eb璇鋒眰澶勭悊鍒嗘淳鍣?鍒嗘淳鍣ㄤ細鏍規嵁璇ラ厤缃枃浠跺皢web璇鋒眰浜ょ粰鐩稿簲鐨凙ction澶勭悊,涓句緥濡備笅:

<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd">

<xwork>

<include file="webwork-default.xml" />

<package name="default" extends="webwork-default">

<interceptors>

<interceptor name="externalReferences" class="com.opensymphony.xwork.interceptor.ExternalReferencesInterceptor" />

<interceptor name="catchException" class="com.jetsum.cantus.core.exception.CatchExceptionInterceptor" />

聽聽聽聽聽聽聽聽聽聽 <interceptor-stack name="standard-interceptors">

聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="externalReferences" />

聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="prepare" />

聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="static-params" />

聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="params" />

聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="conversionError" />

聽聽聽聽聽聽聽聽聽聽 </interceptor-stack>

聽聽聽聽聽聽聽聽聽聽 <interceptor-stack name="stand-upload-interceptors">

聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="externalReferences" />

聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="prepare" />

聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="fileUpload" />

聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="static-params" />

聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="params" />

聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="conversionError" />

聽聽聽聽聽聽聽聽聽聽 </interceptor-stack>

聽聽聽聽聽聽 </interceptors>

聽聽聽聽聽聽 <default-interceptor-ref name="standard-interceptors" />

聽聽聽 </package>

聽聽聽 <include file="login.xml" />

</xwork>聽

5. login.xml 閰嶇疆鏂囦歡璇存槑涓庝婦渚?涓撻棬鐢ㄦ潵閰嶇疆LoginAction,璇ラ厤缃枃浠朵細琚寘鍚叆xwork.xml閰嶇疆鏂囦歡锛岃繖鏍鋒墠鑳界敓鏁?涓句緥濡備笅:

<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd">

<xwork>

聽聽聽 <package name="logins" extends="default" externalReferenceResolver="com.opensymphony.xwork.spring.SpringExternalReferenceResolver">

聽聽聽聽聽聽 <!-- 闂ㄨ瘖鎸傚彿聽 -->

聽聽聽聽聽聽 <action name="login" class="com.jetsum.test.action.LoginAction">

聽聽聽聽聽聽 <external-ref name="userService" required="true">UserService</external-ref>

聽聽聽聽聽聽聽聽聽聽 <result name="error" type="dispatcher">

聽聽聽聽聽聽聽聽聽聽聽聽聽 <param name="location">register.jsp</param>

聽聽聽聽聽聽聽聽聽聽 </result>

聽聽聽聽聽聽聽聽聽聽 <result name="login" type="dispatcher">

聽聽聽聽聽聽聽聽聽聽聽聽聽 <param name="location">register.jsp</param>

聽聽聽聽聽聽聽聽聽聽 </result>

聽聽聽聽聽聽聽聽聽聽 <result name="waibu" type="dispatcher">

聽聽聽聽聽聽聽聽聽聽聽聽聽 <param name="location">register.jsp</param>

聽聽聽聽聽聽聽聽聽聽 </result>

聽聽聽聽聽聽 </action>

聽聽聽 </package>

</xwork>

娉ㄦ剰锛歟xternalReferenceResolver="com.opensymphony.xwork.spring.SpringExternalReferenceResolver" 鍛婄煡spring妗嗘灦鍦ㄩ渶瑕佹椂閰嶇疆action鍐呭疄浣撲箣闂寸殑鏄犲皠鍏崇郴锛屼緥濡傦細<external-ref name="userService" required="true">UserService</external-ref>灏變細寮曠敤spring閰嶇疆鐨剈serService瀵矽薄

6. webwork.properties 閰嶇疆璇存槑涓庝婦渚?,姝ら厤缃枃浠朵富瑕佸悜webwork妗嗘灦鎻愪緵涓€浜涘弬鏁?濡傜紪鐮佺瓑,鏇村淇℃伅瑕佹煡鎵劇浉鍏蟲枃妗?涓句緥濡備笅:

webwork.locale=zh_CN

webwork.i18n.encoding=GBK

7. applicationContext.xml 閰嶇疆鏂囦歡璇存槑涓庝婦渚?涓撻棬鐢ㄦ潵閰嶇疆bean涔嬮棿鐨勪緷璧栧叧绯夥紝鍦ㄩ渶瑕佺殑鏃跺€欒繘琛屽姩鎬佺殑渚濊禆娉ㄥ皠,涓句緥濡備笅:

<?xml version="1.0" encoding="GBK"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

聽聽聽 <!-- Hibernate SessionFactory -->

聽聽聽 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">

聽聽聽聽聽聽 <property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"></property>

聽聽聽聽聽聽 <property name="url" value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=xzj"></property>

聽聽聽聽聽聽 <property name="username" value="sa"></property>

聽聽聽聽聽聽 <property name="password" value="sa"></property>

聽聽聽聽聽聽 <property name="maxActive" value="200"></property>

聽聽聽聽聽聽 <property name="maxIdle" value="50"></property>

聽聽聽聽聽聽 <property name="maxWait" value="60000"></property>

聽聽聽聽聽聽 <property name="removeAbandoned" value="true"></property>

聽聽聽聽聽聽 <property name="removeAbandonedTimeout" value="30"></property>

聽聽聽 </bean>

聽聽聽 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

聽聽聽聽聽聽 <property name="dataSource">

聽聽聽聽聽聽聽聽聽聽 <ref bean="dataSource" />

聽聽聽聽聽聽 </property>

聽聽聽聽聽聽 <property name="mappingResources">

聽聽聽聽聽聽聽聽聽聽 <list>

聽聽聽聽聽聽聽聽聽聽聽聽聽 <value>com/jetsum/test/entity/User.hbm.xml</value>

聽聽聽聽聽聽聽聽聽聽 </list>

聽聽聽聽聽聽 </property>

聽聽聽聽聽聽 <property name="hibernateProperties">

聽聽聽聽聽聽聽聽聽聽 <props>

聽聽聽聽聽聽聽聽聽聽聽聽聽 <prop key="hibernate.show_sql">true</prop>

聽聽聽聽聽聽聽聽聽聽聽聽聽 <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>

聽聽聽聽聽聽聽聽聽聽 </props>

聽聽聽聽聽聽 </property>

聽聽聽 </bean>

聽聽聽 <!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->

聽聽聽 <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

聽聽聽聽聽聽 <property name="sessionFactory">

聽聽聽聽聽聽聽聽聽聽 <ref local="sessionFactory" />

聽聽聽聽聽聽 </property>

聽聽聽 </bean>

聽聽聽 <bean id="txProxyTemplate" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">

聽聽聽聽聽聽 <property name="transactionManager">

聽聽聽聽聽聽聽聽聽聽 <ref bean="transactionManager" />

聽聽聽聽聽聽 </property>

聽聽聽聽聽聽 <property name="transactionAttributes">

聽聽聽聽聽聽聽聽聽聽 <props>

聽聽聽聽聽聽聽聽聽聽聽聽聽 <prop key="get*">PROPAGATION_SUPPORTS,readOnly</prop>

聽聽聽聽聽聽聽聽聽聽聽聽聽 <prop key="*">PROPAGATION_REQUIRED</prop>

聽聽聽聽聽聽聽聽聽聽 </props>

聽聽聽聽聽聽 </property>

聽聽聽 </bean>

聽聽聽 <!-- 聽 鐢ㄦ埛DAO閰嶇疆聽聽聽聽 -->

聽聽聽 <bean id="UserDao" class="com.jetsum.test.dao.impl.UserDao">

聽聽聽聽聽聽 <property name="sessionFactory">

聽聽聽聽聽聽聽聽聽聽 <ref local="sessionFactory" />

聽聽聽聽聽聽 </property>

聽聽聽 </bean>

聽聽聽 <!-- 鐢ㄦ埛娉ㄥ唽閫昏緫 -->

聽聽聽 <bean id="UserService" parent="txProxyTemplate">

聽聽聽聽聽聽 <property name="target">

聽聽聽聽聽聽聽聽聽聽 <bean class="com.jetsum.test.service.impl.UserService">

聽聽聽聽聽聽聽聽聽聽聽聽聽 <property name="dao">

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <ref bean="UserDao" />

聽聽聽聽聽聽聽聽聽聽聽聽聽 </property>

聽聽聽聽聽聽聽聽聽聽 </bean>

聽聽聽聽聽聽 </property>

聽聽聽 </bean>

</beans>

8. User.hbm.xml 閰嶇疆鏂囦歡璇存槑瀹炰綋bean User.java涓庢暟鎹簱涓〃user鐨勫璞″叧绯繪槧灏?涓句緥濡備笅:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC

聽聽聽 "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

聽聽聽 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

聽 <class聽聽聽 name="com.jetsum.test.entity.User"聽聽聽 聽table="users">

聽聽 <id聽聽 name="id" type="java.lang.Integer"聽聽 unsaved-value="null">

聽 聽<column name="id"聽 sql-type="int"/>

聽聽聽聽聽聽聽聽聽聽聽 <generator class="native">

聽聽聽聽聽聽聽聽聽聽聽 </generator>

聽聽聽聽聽聽聽 </id>

聽聽聽聽聽聽聽 <property

聽聽聽聽聽聽聽聽聽聽聽 name="name"

聽聽聽聽聽聽聽聽聽聽聽 type="java.lang.String"

聽聽聽聽聽聽聽聽聽聽聽 update="true"

聽聽聽聽聽聽聽聽聽聽聽 insert="true"

聽聽聽聽聽聽聽聽聽聽聽 column="name"

聽聽聽聽聽聽聽聽聽聽聽 length="100"

聽聽聽聽聽聽聽 />

聽聽聽聽聽聽聽 <property

聽聽聽聽聽聽聽聽聽聽聽 name="password"

聽聽聽聽聽聽聽聽聽聽聽 type="java.lang.String"

聽聽聽聽聽聽聽聽聽聽聽 update="true"

聽聽聽聽聽聽聽聽聽聽聽 insert="true"

聽聽聽聽聽聽聽聽聽聽聽 column="password"

聽聽聽聽聽聽聽 />

聽聽聽 </class>

</hibernate-mapping>

9. webwork-default.xml 閰嶇疆鏂囦歡璇存槑涓句緥濡備笅:

<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd">

<xwork>

聽聽聽 <package name="webwork-default">

聽聽聽聽聽聽聽 <result-types>

聽聽聽聽聽聽聽聽聽聽聽 <result-type name="dispatcher" class="com.opensymphony.webwork.dispatcher.ServletDispatcherResult" default="true"/>

聽聽聽聽聽聽聽聽聽聽聽 <result-type name="redirect" class="com.opensymphony.webwork.dispatcher.ServletRedirectResult"/>

聽聽聽聽聽聽聽聽聽聽聽 <result-type name="velocity" class="com.opensymphony.webwork.dispatcher.VelocityResult"/>

聽聽聽聽聽聽聽聽聽聽聽 <result-type name="chain" class="com.opensymphony.xwork.ActionChainResult"/>

聽聽聽聽聽聽聽聽聽聽聽 <result-type name="xslt" class="com.opensymphony.webwork.views.xslt.XSLTResult"/>

聽聽聽聽聽聽聽聽聽聽聽 <result-type name="jasper" class="com.opensymphony.webwork.views.jasperreports.JasperReportsResult"/>

聽聽聽聽聽聽聽聽聽聽聽 <result-type name="freemarker" class="com.opensymphony.webwork.views.freemarker.FreemarkerResult"/>

聽聽聽聽聽聽聽聽聽聽聽 <result-type name="httpheader" class="com.opensymphony.webwork.dispatcher.HttpHeaderResult"/>

聽聽聽聽聽聽聽聽聽聽聽 <result-type name="stream" class="com.opensymphony.webwork.dispatcher.StreamResult"/>

聽聽聽聽聽聽聽 </result-types>

聽聽聽聽聽聽聽 <interceptors>

聽聽聽聽聽聽聽聽聽聽聽 <interceptor name="timer" class="com.opensymphony.xwork.interceptor.TimerInterceptor"/>

聽聽聽聽聽聽聽聽聽聽聽 <interceptor name="logger" class="com.opensymphony.xwork.interceptor.LoggingInterceptor"/>

聽聽聽聽聽聽聽聽聽聽聽 <interceptor name="chain" class="com.opensymphony.xwork.interceptor.ChainingInterceptor"/>

聽聽聽聽聽聽聽聽聽聽聽 <interceptor name="static-params" class="com.opensymphony.xwork.interceptor.StaticParametersInterceptor"/>

聽聽聽聽聽聽聽聽聽聽聽 <interceptor name="params" class="com.opensymphony.xwork.interceptor.ParametersInterceptor"/>

聽聽聽聽聽聽聽聽聽聽聽 <interceptor name="model-driven" class="com.opensymphony.xwork.interceptor.ModelDrivenInterceptor"/>

聽聽聽聽聽聽聽聽聽聽聽 <interceptor name="component" class="com.opensymphony.xwork.interceptor.component.ComponentInterceptor"/>

聽聽聽聽聽聽聽聽聽聽聽 <interceptor name="token" class="com.opensymphony.webwork.interceptor.TokenInterceptor"/>

聽聽聽聽聽聽聽聽聽聽聽 <interceptor name="token-session" class="com.opensymphony.webwork.interceptor.TokenSessionStoreInterceptor"/>

聽聽聽聽聽聽聽聽聽聽聽 <interceptor name="validation" class="com.opensymphony.xwork.validator.ValidationInterceptor"/>

聽聽聽聽聽聽聽聽聽聽聽 <interceptor name="workflow" class="com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor"/>

聽聽聽聽聽聽聽聽聽聽聽 <interceptor name="servlet-config" class="com.opensymphony.webwork.interceptor.ServletConfigInterceptor"/>

聽聽聽聽聽聽聽聽聽聽聽 <interceptor name="prepare" class="com.opensymphony.xwork.interceptor.PrepareInterceptor"/>

聽聽聽聽聽聽聽聽聽聽聽 <interceptor name="conversionError" class="com.opensymphony.webwork.interceptor.WebWorkConversionErrorInterceptor"/>

聽聽聽聽聽聽聽聽聽聽聽 <interceptor name="fileUpload" class="com.opensymphony.webwork.interceptor.FileUploadInterceptor"/>

聽聽聽聽聽聽聽聽聽聽聽 <interceptor name="execAndWait" class="com.opensymphony.webwork.interceptor.ExecuteAndWaitInterceptor"/>

聽聽聽聽聽聽聽聽聽聽聽 <!-- Basic stack -->

聽聽聽聽聽聽聽聽聽聽聽 <interceptor-stack name="defaultStack">

聽 聽聽聽聽聽聽聽聽聽聽聽聽聽聽<interceptor-ref name="servlet-config"/>

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="prepare"/>

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="static-params"/>

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="params"/>

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="conversionError"/>

聽聽聽聽聽聽聽聽聽聽聽 </interceptor-stack>

聽聽聽聽聽聽聽聽聽聽聽 <!-- Sample validation and workflow stack -->

聽聽聽聽聽聽聽聽聽聽聽 <interceptor-stack name="validationWorkflowStack">

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="defaultStack"/>

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="validation"/>

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="workflow"/>

聽聽聽聽聽聽聽聽聽聽聽 </interceptor-stack>

聽聽聽聽聽聽聽聽聽聽聽 <!-- Sample file upload stack -->

聽聽聽聽聽聽聽聽聽聽聽 <interceptor-stack name="fileUploadStack">

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="fileUpload"/>

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="defaultStack"/>

聽聽聽聽聽聽聽聽聽聽聽 </interceptor-stack>

聽聽聽聽聽聽聽聽聽聽聽 <!-- Sample Inversion of Control stack -->

聽聽聽聽聽聽聽聽聽聽聽 <interceptor-stack name="componentStack">

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="component"/>

聽聽聽聽聽 聽聽聽聽聽聽聽聽聽聽<interceptor-ref name="defaultStack"/>

聽聽聽聽聽聽聽聽聽聽聽 </interceptor-stack>

聽聽聽聽聽聽聽聽聽聽聽 <!-- Sample model-driven stack聽 -->

聽聽聽聽聽聽聽聽聽聽聽 <interceptor-stack name="modelDrivenStack">

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="model-driven"/>

聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽<interceptor-ref name="defaultStack"/>

聽聽聽聽聽聽聽聽聽聽聽 </interceptor-stack>

聽聽聽聽聽聽聽聽聽聽聽 <!-- Sample action chaining stack -->

聽聽聽聽聽聽聽聽聽聽聽 <interceptor-stack name="chainStack">

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="chain"/>

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="defaultStack"/>

聽聽聽聽聽聽聽聽聽聽聽 </interceptor-stack>

聽聽聽聽聽聽聽聽聽聽聽 <!-- Sample execute and wait stack.

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Note: execAndWait should always be the *last* interceptor. -->

聽聽聽聽聽聽聽聽聽聽聽 <interceptor-stack name="executeAndWaitStack">

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="defaultStack"/>

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="execAndWait"/>

聽聽聽聽聽聽聽聽聽聽聽 </interceptor-stack>

聽聽聽聽聽聽聽聽聽聽聽 <interceptor-stack name="completeStack">

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="prepare"/>

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="servlet-config"/>

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="chain"/>

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="model-driven"/>

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="component"/>

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="fileUpload"/>

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="static-params"/>

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="params"/>

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="conversionError"/>

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="validation"/>

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="workflow"/>

聽聽聽聽聽聽 聽聽聽聽聽</interceptor-stack>

聽聽聽聽聽聽聽 </interceptors>

聽聽聽 </package>

</xwork>

10. log4j.properties 閰嶇疆鏂囦歡璇存槑涓句緥濡備笅:

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target=System.out

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c

{1}

:%L - %m%n

log4j.rootLogger=warn, stdout

log4j.logger.org.hibernate=info

log4j.logger.org.hibernate.type=info

log4j.logger.org.hibernate.tool.hbm2ddl=debug

11.Action

绫諱婦渚?/b>

RegisterAction绫?婧愮爜濡備笅:

package com.jetsum.test.action;

import com.jetsum.test.entity.User;

import com.jetsum.test.service.IUserService;

import com.opensymphony.xwork.ActionSupport;

public class RegisterAction extends ActionSupport {

聽聽聽

聽聽聽 private IUserService userService;

聽聽聽 private User user = new User();

聽聽聽

聽聽聽 private String statu;

聽聽聽 public String getStatu() {

聽聽聽聽聽聽聽 return statu;

聽聽聽 }

聽聽聽 public void setStatu(String statu) {

聽聽聽聽聽聽聽 this.statu = statu;

聽聽聽 }

聽聽聽 public String login() {

聽聽聽聽聽聽聽 System.out.println("my name is " + user.getName());

聽聽聽聽聽聽聽 System.out.println("my password is " + user.getPassword());

聽聽聽聽聽聽聽 userService.saveUser(user);

聽聽聽聽聽聽聽 this.statu = "y";

聽聽聽聽聽聽聽 return "error";

聽聽聽 }

聽聽聽 public IUserService getUserService() {

聽聽聽聽聽聽聽 return userService;

聽聽聽 }

聽聽聽 public void setUserService(IUserService userService) {

聽聽聽聽聽聽聽 this.userService = userService;

聽聽聽 }

聽聽聽 public User getUser() {

聽聽聽聽聽聽聽 return user;

聽聽聽 }

聽聽聽 public void setUser(User user) {

聽聽聽聽聽聽聽 this.user = user;

聽聽聽 }

}

User 绫繪簮鐮佸涓?

package com.jetsum.test.entity; public class User { 聽聽聽 private int id; 聽聽聽 private String name; 聽聽聽 private String password; 聽聽聽 public int getId() { 聽聽聽聽聽聽 return id; 聽聽聽 } 聽聽聽 public void setId(int id) { 聽聽聽聽聽聽 this.id = id; 聽聽聽 } 聽聽聽 public String getName() { 聽聽聽聽聽聽 return name; 聽聽聽 } 聽聽聽 public void setName(String name) { 聽聽聽聽聽聽 this.name = name; 聽聽聽 } 聽聽聽 public String getPassword() { 聽聽聽聽聽聽 return password; 聽聽聽 } 聽聽聽 public void setPassword(String password) { 聽聽聽聽聽聽 this.password = password; 聽聽聽 } 聽聽聽 } 12.UserService.java 涓句緥

package com.jetsum.test.service.impl;

import java.util.List;

import com.jetsum.test.dao.IUserDao;

import com.jetsum.test.entity.User;

import com.jetsum.test.service.IUserService;

public class UserService implements IUserService{

聽聽聽

聽聽聽 private IUserDao dao;

聽聽聽

聽聽聽 public Object saveUser(Object User) {

聽聽聽聽聽聽 return dao.saveUser(User);

聽聽聽 }

聽聽聽 public void delUser(Object User) {

聽聽聽 }

聽聽聽 public User findById(Integer id) {

聽聽聽聽聽聽 return null;

聽聽聽 }

聽聽聽 public List getYuYue() {

聽聽聽聽聽聽 return null;

聽聽聽 }

聽聽聽 public Object saveList(List list) {

聽聽聽聽聽聽 return null;

聽聽聽 }

聽聽聽 public List getAll() {

聽聽聽聽聽聽 return null;

聽聽聽 }

聽聽聽 public IUserDao getDao() {

聽聽聽聽聽聽 return dao;

聽聽聽 }

聽聽聽 public void setDao(IUserDao dao) {

聽聽聽聽聽聽 this.dao = dao;

聽聽聽 }

}

13.AbstractDao.java 涓句緥

package com.jetsum.test.dao.impl;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

public abstract class AbstractDao extends HibernateDaoSupport {

聽聽聽 public AbstractDao() {

聽聽聽聽聽聽聽 super();

聽聽聽 }

聽聽聽 public Object save(Object type) {

聽聽聽聽聽聽聽 getHibernateTemplate().save(type);

聽聽聽聽聽聽聽 return type;

聽聽聽 }

聽聽聽

聽聽聽 public void delete(Object type) {

聽聽聽 聽聽 if(type!=null)

聽聽聽 聽聽聽聽聽聽 getHibernateTemplate().delete(type);

聽聽聽 }

}

14.UserDao.java 涓句緥

package com.jetsum.test.dao.impl;

import java.util.List;

import com.jetsum.test.dao.IUserDao;

import com.jetsum.test.entity.User;

public class UserDao extends AbstractDao implements IUserDao {

聽聽聽 public Object saveUser(Object user) {

聽聽聽聽聽聽 return this.save(user);

聽聽聽 }

聽聽聽 public void delBook(Object Book) {

聽聽聽聽聽聽

聽聽聽 }

聽聽聽 public User findById(Integer id) {

聽聽聽聽聽聽 return null;

聽聽聽 }

聽聽聽 public List getAll() {

聽聽聽聽聽聽 return null;

聽聽聽 }

}

15. register.jsp 涓句緥

<%@ page language="java" contentType="text/html; charset=gbk" pageEncoding="gb2312"%>

<%@taglib prefix="ww" uri="webwork"%>

<!DOCTYPE HTML PUBLIC "-//W 3C //DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title></title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

</head>

<body>

聽聽聽 <form name="form1" method="post" action="login!login.action">

聽聽聽聽聽聽 <input type="text" name="user.name" id="name"聽 size="19"/><br><br>

聽聽聽 聽聽聽聽聽 <input name="user.password" id="password" type="password" /><br><br>

聽聽聽聽聽聽 <input type="submit" class="btn" value="娉ㄥ唽"/>

聽聽聽 </form>

</body>

</html>

娉ㄦ剰锛歛ction="login!login.action"灞炴€э紝锛佸墠闈㈢殑login琛ㄧずaction鍚嶏紝鍚庨潰鐨刲ogin琛ㄧずaction闇€瑕佹墽琛岀殑鏂規硶锛岄粯璁ゆ柟娉曚負execute鏂規硶

繼續閱讀