然后是 spring的配置了,请在web-lib/下建立applicationContext.xml文件,内容如下 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close"> <property name="driverClassName"> <value>org.gjt.mm.mysql.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost/mystructs</value> </property> <property name="username"> <value>chenzhi</value> </property> <property name="password"> <value>1</value> </property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean"> <property name="dataSource"> <ref local="dataSource" /> </property> <property name="mappingResources"> <list> <value>com\cz\struct\SysTable.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> net.sf.hibernate.dialect.MySQLDialect </prop> <prop key="hibernate.show_sql"> true </prop> </props> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean> <bean id="systableDAO" class="com.cz.struct.SysTableDAOImp"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean> <bean id="systableDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager"> <ref bean="transactionManager" /> </property> <property name="target"> <ref local="systableDAO" /> </property> <property name="transactionAttributes"> <props> <prop key="insert*">PROPAGATION_REQUIRED</prop> <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="is*">PROPAGATION_REQUIRED,readOnly</prop> </props> </property> </bean> </beans> 在这个配置文件里面,我们设置了datasource\sessionfactory以及spring的动态代理,还有hibernate所需要的XML映射文件路径 然后是配置xwork.xml <!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" externalReferenceResolver="com.atlassian.xwork.ext.SpringServletContextReferenceResolver"> <interceptors> <interceptor name="reference-resolver" class="com.opensymphony.xwork.interceptor.ExternalReferencesInterceptor" /> <interceptor-stack name="vxStack"> <interceptor-ref name="params" /> <interceptor-ref name="model-driven" /> <interceptor-ref name="reference-resolver" /> </interceptor-stack> </interceptors> <action name="Test" class="com.cz.struct.TestAction"> <external-ref name="systableDAO">systableDAOProxy</external-ref> <result name="success" type="dispatcher"> <param name="location">/index.jsp</param> </result>
<interceptor-ref name="vxStack" /> </action> </package> </xwork> 在配置action的external-ref的时候我遇到了一个不大不小的玩笑,一般编辑XML的时候我都是在editplus里面编辑的 ,最开始我写成 <external-ref name="systableDAO"> systableDAOProxy </external-ref> 结果系统提示找不到叫systableDAOProxy这个名字的bean,结果一查,发现旁边不能加上空格和tab,哎。。肯定是返回串的时候没加trim 的后果 好了,最后是我们的TestAction.java package com.cz.struct; import com.opensymphony.xwork.*; import com.opensymphony.webwork.*; import java.util.*; /** * @author tijichen * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ public class TestAction extends ActionSupport { private SystableDAO systabledao; String testname=null; public void setSystableDAO(SystableDAO dao) { this.systabledao=dao; } public SystableDAO getSystableDAO() {return this.systabledao;} public String execute() throws Exception { testname="executeing"; SystablePK pk=new SystablePK(); Systable newdata=new Systable(); pk.setFieldName("test"); pk.setTableName("test3"); newdata.setComp_id(pk); newdata.setChineseName("tets");
systabledao.insert(newdata); return Action.SUCCESS; } } ok,编译打包,然后在浏览器地址栏中输入http://localhost:8080/你的发布目录/Test.action 看看,是不是数据库里面多出了一条数据了? 至于其他,比如从页面提交的值插入数据库等等,这里都不多说了,webwork自带的sample就是最好的参考资料 
|