最近在做毕业设计,在struts2.0+Spring2.5中加入jquery实现ajax没有问题但我按照以前做的项目中struts2.0+Spring2.5+Hibernate3.0的配置加入Hibernate3.0就无法实现前台页面结果的显示 了相关代码如下:
pojo层:
package com.hsy.pojo;
/**
 * 
 * @author hsy
 *管理人员
 */
public class User {
private String uid;//登陆账号(主键)
private String pass;//登录密码
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
}
—————————————————————————————————————
DAO层:
package com.hsy.dao;import com.hsy.pojo.User;public interface UserDAO {
public void saveUser(String uid,String pass);
}package com.hsy.dao.impl;import java.util.List;import org.hibernate.Session;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.hsy.dao.UserDAO;
import com.hsy.pojo.User;
/**
 * 
 * @author hsy
 * userdao的实现类
 */
public class UserDAOImpl extends HibernateDaoSupport implements UserDAO { public void saveUser(String uid,String pass) {
User user = new User();
user.setUid(uid);
user.setPass(pass);
this.getHibernateTemplate().save(user);
}
}
————————————————————————————————————————
Manager层:
package com.hsy.manager;public interface MyTestManager {
public void test(String name);
public void addUser(String uid,String pass);
}
package com.hsy.manager.impl;import com.hsy.dao.UserDAO;
import com.hsy.manager.MyTestManager;public class MyTestManagerImpl implements MyTestManager{
private UserDAO ud;
public void test(String name) {
System.out.println(name+"哎哟,不错哦!");
}
public void addUser(String uid,String pass){
ud.saveUser(uid, pass);
}
public UserDAO getUd() {
return ud;
}
public void setUd(UserDAO ud) {
this.ud = ud;
}
}
——————————————————————————————————————————
action:package com.hsy.action;import com.hsy.manager.MyTestManager;
import com.opensymphony.xwork2.ActionSupport;public class TestAction extends ActionSupport {
private MyTestManager mtm;
private String result;
private String uid;
@Override
public String execute() throws Exception {
mtm.test(uid);
result="测试";
return this.SUCCESS;
}

public String add() throws Exception {
String pass="123";
mtm.addUser(uid, pass);
result="添加成功";//返回前台页面的结果
                  return this.SUCCESS;
}
public MyTestManager getMtm() {
return mtm;
}
public void setMtm(MyTestManager mtm) {
this.mtm = mtm;
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
} public String getUid() {
return uid;
} public void setUid(String uid) {
this.uid = uid;
}}
————————————————
加入Hibernte3.0后在web.xml中加入的过滤器
<filter>
<filter-name>openSessionInView</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>sessionFactory</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>openSessionInView</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
添加的spring的配置文件为:
<!-- 配置sessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
</bean>           

<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>

<!-- 配置事务的传播特性 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>

<!-- 那些类的哪些方法参与事务 -->
<aop:config>
<aop:pointcut id="allManagerMethod" expression="execution(* com.hsy.dao.impl.*.*(..))"/>
<aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/>
</aop:config>

解决方案 »

  1.   

    补充:
    struts.xml里面的内容:
    <struts>
    <package name="ajax" extends="json-default" namespace="/">
    <action name="ttt" class="myAction">
     <result type="json"></result>
    </action>

    </package></struts>
      

  2.   

    补充:
    我个人猜想是哪个Hibernate在Spring的配置文件的问题,因为当在配置文件中注释掉对Hibernte的配置后(也就是取消了Spring对Hibernte的集成)前台和后台都能够工作正常,但加入上面对Hibernate的配置后在用Ajax(我用的是Jquery框架)访问应用时后台能正常工作但前台不能显示结果——如果不用Ajax也就是直接返回个页面时就能工作正常——所以我猜想应该是在Spring对Hibernate的配置问题或者难道是Spring集成Hibernate的一个bug??
    ——————————还请高手能指点指点,谢谢!!!!