数据库中没有iid这条记录。。试试~~  :)
----
用load()无记录时报异常,用get()时返回null.
记得是这样。先看下是不是这个原因。呵呵。

解决方案 »

  1.   

    楼上的,不好意思哦
    数据库里肯定有这条记录的,现在发现action
    News eNews = this.getNewsService().getSelectId(iid);
    里面根本没有调用NewsService层里的public News getSelectId(int id) {
    return this.getNewsDao().getSelectId(id);
    }
    这个方法,是我的理解错了,还是配置错了,高手指点啊
      

  2.   

    newsService对象在Action中是通过注入得到的吧可能是你的newsService在配置文件中指向的并不是NewsService这个类
      

  3.   

    已经指向了,我的applicationContext.xml代码:<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
    <bean id="placeholderConfig"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location">
    <value>classpath:init.properties</value>
    </property>
    </bean> <bean id="dataSource"
    class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName">
    <value>${datasource.driverClassName}</value>
    </property>
    <property name="url">
    <value>${datasource.url}</value>
    </property>
    <property name="username">
    <value>${datasource.username}</value>
    </property>
    <property name="password">
    <value>${datasource.password}</value>
    </property>
    <property name="maxActive">
    <value>${datasource.maxActive}</value>
    </property>
    <property name="maxIdle">
    <value>${datasource.maxIdle}</value>
    </property>
    <property name="maxWait">
    <value>${datasource.maxWait}</value>
    </property>
    <property name="defaultAutoCommit">
    <value>${datasource.defaultAutoCommit}</value>
    </property>
    </bean> <bean id="mySessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
    <ref local="dataSource" />
    </property>
    <property name="mappingResources">
    <list>
    <value>cn/com/chenq/bean/News.hbm.xml</value>
    </list>
    </property> <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">
    ${hibernate.dialect}
    </prop>
    <prop key="hibernate.show_sql">
    ${hibernate.show_sql}
    </prop>
    <prop key="hibernate.jdbc.fetch_size">
    ${hibernate.jdbc.fetch_size}
    </prop>
    <prop key="hibernate.jdbc.batch_size">
    ${hibernate.jdbc.batch_size}
    </prop>
    </props>
    </property>
    </bean> <bean id="newsDao" class="cn.com.chenq.dao.hibernate.NewsDAO">
    <property name="sessionFactory">
    <ref local="mySessionFactory" />
    </property>
    </bean> <bean id="newsService"
    class="cn.com.chenq.business.service.NewsService">
    <property name="newsDao">
    <ref local="newsDao" />
    </property>
    </bean>
    </beans>
      

  4.   

    楼主对newsDao这个对象进行setter了么?如果没有的话,应该会报空指针异常。
    把你的错误日志贴出来,看看就知道了。
    另外,看看你在DAO中用getSelectId()这个方法取到的值是什么,看是否为空,如果为空的话,检查一下你的id类型,用new Long(id)是否合适,如果不合适,会报类型转换错误异常。
      

  5.   

    id类型是bigint,通过
    public void setServlet(ActionServlet actionServlet) {
    super.setServlet(actionServlet);
    ServletContext servletContext = actionServlet.getServletContext();
    WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
    this.newsService = (INewsService) wac.getBean("newsService");
    }
    进行setter的