weixin_42356196 2010-01-20 13:11
浏览 291
已采纳

ssh Session session = super.getSession();//得不到session

我是新学ssh的

[code="java"]
public class LogonDAO extends HibernateDaoSupport
{
public void add()
{

    LogonUser l = new LogonUser();
    l.setName("name");
    l.setPw("pw");
    Session session = super.getSession();//得不到session 
    session.save(l);
}

@SuppressWarnings("unchecked")
public List query(String name, String pw)
{
    Session session = super.getSession();
    String hql = "from LogonUser user where user.name = :name and user.pw = :pw";
    List  list =  session.createQuery(hql).list();
    session.createQuery(hql).setString("name", name);
    session.createQuery(hql).setString("pw", pw);
    return list;

}

}
[/code]

spring 配置文件
[code="java"]<?xml version="1.0" encoding="UTF-8"?>

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

<bean id="dataSource"
    class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="java:comp/env/jdbc/nes"></property>
</bean>

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
        <ref bean="dataSource" />
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">
                org.hibernate.dialect.MySQLDialect
            </prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.connection.autocommit">true</prop>
        </props>
    </property>
    <property name="mappingResources">
        <list>
            <value>
                com/myssh/logon/hbmEnity/LogonUser.hbm.xml 
            </value>
        </list>
    </property>
</bean>
<bean id="hibernateTemplate"
    class="org.springframework.orm.hibernate3.HibernateTemplate">
    <property name="sessionFactory">
        <ref bean="sessionFactory" />
    </property>
</bean>

[/code]

struts 配置文件
[code="java"]<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<form-beans>
    <form-bean name="logonForm"
        type="com.myssh.logon.actionForm.LogonForm">
    </form-bean>
</form-beans>
<global-forwards/>
<action-mappings>
    <action path="/logon" parameter="method" scope="request"
        type="com.myssh.logon.action.LogonAction" name="logonForm">
    </action>
</action-mappings>
<!-- 替换控制器 -->
 <controller
    processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />
<message-resources parameter="com.myssh.ApplicationResources" />
<!-- 整合spring使用的插件-->
<plug-in
    className="org.springframework.web.struts.ContextLoaderPlugIn">
    <set-property property="contextConfigLocation"
        value="/WEB-INF/applicationContext.xml" />
</plug-in>


[/code]

web配置文件
[code="java"]<?xml version="1.0" encoding="UTF-8"?>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<!-- 歡迎頁 -->

index.jsp

<!-- 配置SPRING -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
    <listener-class>
        org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>

<!-- 配置STRUTS -->
<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>
        org.apache.struts.action.ActionServlet
    </servlet-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
        <param-name>debug</param-name>
        <param-value>2</param-value>
    </init-param>
    <init-param>
        <param-name>detail</param-name>
        <param-value>2</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

<!--以下是由Spring提供的filter解決Struts亂碼問題 -->
<filter>
    <filter-name>encoding</filter-name>
    <filter-class>
        org.springframework.web.filter.CharacterEncodingFilter
    </filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>encoding</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 解決Struts亂碼 -->

<!-- 使用Spring解決Hiberante因session關閉導致的延遲例外問題 -->
<filter>
    <filter-name>OpenSessionInViewFilter</filter-name>
    <filter-class>
        org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
    </filter-class>
</filter>

<filter-mapping>
    <filter-name>OpenSessionInViewFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 解決延遲加載例外問題 -->
<resource-ref>
    <res-ref-name>jdbc/nes</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>


[/code]
tomcat 5 下的配置文件
[code="java"]



maxWait
5000


maxActive
20


password
root


url
jdbc:mysql://localhost/nes


driverClassName
com.mysql.jdbc.Driver


maxIdle
10


username
root


[/code]
有什么问题吗 ? 为什么在DAO中Session session = super.getSession();//得不到session

  • 写回答

7条回答 默认 最新

  • majiajia_ 2010-01-20 13:36
    关注

    而且事物管理好像没有,事务的传播也没有。。。。。[code="java"]<!-- 配置事务管理器 -->




    <!-- 配置事务的传播特性 -->
    <tx:advice id="txAdvice" transaction-manager="transactionManager" >
        <tx:attributes>
            <!-- 在开发的时候可以这样定义,但部署的时候一定要详细定义 -->
            <tx:method name="*" propagation="REQUIRED"/>
        <!--  
            <tx:method name="add*" propagation="REQUIRED"/>
            <tx:method name="del*" propagation="REQUIRED"/>
            <tx:method name="update*" propagation="REQUIRED"/>
            <tx:method name="*" read-only="true"/>
        -->
        </tx:attributes>
    </tx:advice>[/code]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题