ssh和dwr集成的一些步骤
小技巧:
1>只记每个类的类名,在openType下输入就可以自动显示完整包名类名。
在该类下有set属性,就可以知道spring配置文件中需要配置哪些属性了
例如:
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory">
</bean>
记住HibernateTransactionManager 在openType中输入类名ecipse就会自动找到该类,
在该类下有setSessionFactory方法 就可以知道需要注入sessionFactory属性
同样,记住DwrServlet,在web.xml中配置dwr就很简单了
2>dwr.xml文件可以在dwr.jar下第一个文件夹下面参照
3>在jsp页面引入
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/baseService.js"></script>
可以在dwr配置好之后, 在浏览器输入http://localhost:9000/工程名/dwr 里面就有
4>**.hbm.xml配置文件 新建一个xml(Basic Templates) ,下一步选择第一个(DTD file),
取好名字后下一步,选择Select XML Catalog entry, 因为**.hbm.xml是hibenate映射文件
mapping 就是映射的意思, 现在hibernate是3.0 所以找到有hibernate mapping dtd 3.0的
选中下一步 OK!
1. 新建工程
2. 创建dataSource
3. 按顺序添加spring,hibernate,struts支持
4. 向lib包中加入pool包 删除asm2.2.3包
5. action继承DispatchActionSupport,service层,dao层继承HibernateDaoSupport,model,**.hbm.xml,form继承actionForm, 具体内容略
6. xml配置,中央控制器略 (严格区分大小写)
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
7.struts-config.xml配置
配置好form,action,forword就可以了
8。applicationContext.xml配置 (非常重要)
系统会自动生成dataSource,sessionFactory(不完全)
1> 在 sessionFactory中配入
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/wp/model/User.hbm.xml</value>
</list>
</property>
2> 配置事务管理
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory">
</bean>
3>配置baseDao
<bean id="baseDao" class="com.wp.dao.hibernate.baseDaoImpl">
<property name="sessionFactory" ref="sessionFactioy">
</bean>
4>具体的service实现类
<bean id="baseServiceTarget" class="com.wp.service.spring.baseServiceImpl">
<property name="baseDao" ref="baseDao"/>
</bean>
5>抽象一个父类出来
<bean id="baseServiceImpl" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager" ref="transactionManager"/>
<property name="target" ref="baseServiceTarget"/>
<property name="transactionAttributes">
<props>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="add*">PROPAGATION_REQUIRED,-Exception</prop>
.....
</props>
</property>
</bean>
6>配置实现了事务的service.要调用业务层实例就调用这个
<bean id="baseService" parent="baseServiceImpl"/>
9. jsp
10.与dwr集成,添加dwr.jar
11. 在web.xml文件中配置dwr
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>ture</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
12. 配置dwr.xml,web-info下
<dwr>
<allow>
<create javascript="baseService" creator="spring">
<param name="beanName" value="baseService"/>
</allow>
</dwr>
13. 在页面中调用
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/baseService.js"></script>
<script type="text/javascript" src="js/utils.js"></script> 该js文件自建,用于处理
<input type="button" value="登录" οnclick="isExist()"/>
14.js/utils.js
function isExist() {
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
baseService.findByUserPwd(username,password,callback);
}
function callback(value) {
if (value=="failure") {
document.getElementById("show").innerHTML = "/u7528/u6237/u540d/u6216/u5bc6/u7801/u9519/u8bef";
} else {
document.forms[0].submit();
}
}