哪位大哥帮我看看偶滴代码哪里出问题了呀UserActionpackage com.frank.action;
import java.util.List;
import com.frank.dao.UserDAo;
import com.frank.obj.User;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
 private UserDAo userDao;
 private User user;
 private List users;
 private int userid;
 private int pageNo;
 private int pageCount;
 public int getPageNo() {
  return pageNo;
 }
 public void setPageNo(int pageNo) {
  this.pageNo = pageNo;
 }
 public void setUsers(List users) {
  this.users = users;
 }
 public int getUserid() {
  return userid;
 }
 public void setUserid(int userid) {
  this.userid = userid;
 }
 public User getUser() {
  return user;
 }
 public void setUser(User user) {
  this.user = user;
 }
 public String readyUpdate() throws Exception{
  user=this.getUserDao().getUserById(userid);
  if(user!=null){
   return SUCCESS;
  }
  return INPUT;
 }
 public String login() throws Exception{
  if(this.getUserDao().checkUser(user)){
   computePageCount();
   users=this.getUserDao().getAllUsers(pageNo);
   return SUCCESS;
  }
  return INPUT;
 }
 public String updateUser() throws Exception{
  if(this.getUserDao().updateUser(user)){
   computePageCount();
   users=this.getUserDao().getAllUsers(pageNo);
   return SUCCESS;
  }
  return INPUT;
 }
 public String deleteUser() throws Exception{
  User user=this.getUserDao().getUserById(userid);
  if(this.getUserDao().deleteUser(user)){
   computePageCount();
   users=this.getUserDao().getAllUsers(pageNo);
   return SUCCESS;
  }
  return INPUT;
 }
 public String insertUser() throws Exception{
  if(this.getUserDao().insertUser(user)){
   computePageCount();
   
   users=this.getUserDao().getAllUsers(pageNo);
   return SUCCESS;
  }
  return INPUT;
 }
 public String selectUser() throws Exception{
  computePageCount();
  users=this.getUserDao().getAllUsers(pageNo);
  return SUCCESS;
  
 }
 public void computePageCount(){
  int tempCount=this.getUserDao().getItemCount();
  pageCount=tempCount%10==0?tempCount/10:tempCount/10+1;  
 }
 @Override
 public String execute() throws Exception {
  // TODO Auto-generated method stub
  return super.execute();
 }
 public List getUsers() {
  return users;
 }
 public void setUsrs(List users) {
  this.users = users;
 }
 public int getPageCount() {
  return pageCount;
 }
 public void setPageCount(int pageCount) {
  this.pageCount = pageCount;
 }
public UserDAo getUserDao() {
return userDao;
}
public void setUserDao(UserDAo userDao) {
this.userDao = userDao;

}

解决方案 »

  1.   

    package com.frank.dao;
    import org.hibernate.HibernateException;
    import org.hibernate.Query;
    import java.util.List;
    import org.springframework.orm.hibernate3.HibernateTemplate;import com.frank.dao.UserDAo;
    import com.frank.obj.User;
    public class UserDAo{
     private HibernateTemplate hibernateTemplate;
     public HibernateTemplate getHibernateTemplate() {
      return hibernateTemplate;
     }
     public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
      this.hibernateTemplate = hibernateTemplate;
     }
     
     public boolean checkUser(User user){
     boolean checkUser = false;
     try{
       String queryString="from User user where user.username=? and user.password=?";
       List list=hibernateTemplate.find(queryString,new Object[]{user.getUsername(),user.getPassword()});
       if(list.size()>0){
        return true;
       }else{
        return false;
       }
      }catch(HibernateException ex){
       ex.printStackTrace();
       return false;
      }
     }
     public boolean updateUser(User user){
      try{
       hibernateTemplate.update(user);
       return true;
      }catch(HibernateException ex){
       ex.printStackTrace();
       return false;
      }
     }
     public boolean deleteUser(User user){
      try{
       hibernateTemplate.delete(user);
       return true;
      }catch(HibernateException ex){
       ex.printStackTrace();
       return false;
      }
     }
     public boolean insertUser(User user){
      try{
       hibernateTemplate.save(user);
       return true;
      }catch(HibernateException ex){
       ex.printStackTrace();
       return false;
      }
     }
     public User getUserById(int userid){
      try{
       User user=(User)hibernateTemplate.load(User.class, new Integer(userid));
       user.getUsername();
       return user;
      }catch(HibernateException ex){
       ex.printStackTrace();
       return null;
      }
     }
     public List getAllUsers(int pageNo){
      try{
       Query query=hibernateTemplate.getSessionFactory().openSession().createQuery("from User");
       query.setFirstResult(pageNo*10);
       query.setMaxResults(10);
       //String queryString="from Userinfo";
       //hibernateTemplate.setMaxResults(10);
       List list=query.list();
       return list;
      }catch(HibernateException ex){
       ex.printStackTrace();
       return null;
      }
     }
     public int getItemCount(){
      try{
       Query query=hibernateTemplate.getSessionFactory().openSession().createQuery("select count(*) from User user");
       Object obj=query.uniqueResult();
       int count=Integer.parseInt(obj.toString());
       return (int)count;
      }catch(HibernateException ex){
       ex.printStackTrace();
       return 0;
      }
     }
    }
      

  2.   

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:aop="http://www.springframework.org/schema/aop"
        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.0.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
     <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
      <property name="driverClassName">
       <value>com.mysql.jdbc.Driver</value>
      </property>
      <property name="url">
       <value>jdbc:mysql://localhost:3306/mydb</value>
      </property>
      <property name="username">
       <value>root</value>
      </property>
      <property name="password">
       <value>8625739</value>
      </property>
     </bean>
     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
      <property name="dataSource">
       <ref bean="dataSource"/>
      </property>
      <property name="mappingResources">
       <list>
        <value>com/frank/obj/User.hbm.xml</value>
       </list>
      </property>
      <property name="hibernateProperties">
       <props>
        <prop key="hibernate.show_sql">true</prop>
        <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
       </props>
      </property>
     </bean>
     <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
      <property name="sessionFactory">
       <ref bean="sessionFactory"/>
      </property>
     </bean>
     <bean id="userDao" class="com.frank.dao.UserDAo">
      <property name="hibernateTemplate">
       <ref bean="hibernateTemplate"/>
      </property>
     </bean>
     <bean id="userAction" class="com.frank.action.UserAction">
     <property name="userDao">
     <ref bean="userDao"/> 
     </property>
     </bean>
     <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
      <property name="sessionFactory">
       <ref bean="sessionFactory"/>
      </property>
     </bean>
     <tx:advice id="myadvice" transaction-manager="txManager">
      <tx:attributes>
       <tx:method name="insert*" propagation="REQUIRED"/>
       <tx:method name="update*" propagation="REQUIRED"/>
       <tx:method name="delete*" propagation="REQUIRED"/>
       <tx:method name="*" propagation="SUPPORTS" read-only="true"/>
      </tx:attributes>
     </tx:advice>
     <aop:config>
      <aop:pointcut id="userPointcut" expression="execution(* com.frank.dao..*.*(..))"/>
      <aop:advisor advice-ref="myadvice" pointcut-ref="userPointcut"/>
     </aop:config>
    </beans>
      

  3.   

    HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception java.lang.NullPointerException
    com.frank.action.UserAction.login(UserAction.java:44)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:440)
    com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:279)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
    com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:163)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:249)
    org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:128)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:148)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:128)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.
    --------------------------------------------------------------------------------Apache Tomcat/6.0.29
      

  4.   

    java.lang.NullPointerException
    com.frank.action.UserAction.login(UserAction.java:44)
      

  5.   

     <bean id="userDao" class="com.frank.dao.UserDAo">
      <property name="hibernateTemplate">
      <ref bean="hibernateTemplate"/>
      </property>
     </bean>
     <bean id="userAction" class="com.frank.action.UserAction">
     <property name="userDao">
     <ref bean="userDao"/>  
     </property>检查拼写  !!!我xxxx  我第一次这么有耐心看代码,.....我数44行 数了好几遍....
      

  6.   

    是的,我知道是空指针,但是我哪都查过了,不知道哪里有写错,不知道是不是spring引入的时候出错了
      

  7.   

    错了错了 是这个地方public void setUserDao(UserDAo userDao) {
    this.userDao = userDao;应该是  setUserDAo吧
      

  8.   

    原来的项目中多了这个文件package com.frank.action;
    import javax.servlet.ServletContext;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import org.apache.struts2.ServletActionContext;
    import org.springframework.web.context.WebApplicationContext;
    import org.springframework.web.context.support.WebApplicationContextUtils;
    import com.frank.dao.RuleDAO;
    import com.opensymphony.xwork2.ActionSupport;
    public class BaseAction extends ActionSupport {
     public RuleDAO getRuleDAO(){
      ServletContext servletContext=ServletActionContext.getServletContext();
      WebApplicationContext webApplicationContext=WebApplicationContextUtils.getWebApplicationContext(servletContext);
      return (RuleDAO)webApplicationContext.getBean("ruleDAO");
     }
     public HttpServletRequest request(){
      return ServletActionContext.getRequest();
     }
     public HttpServletResponse response(){
      return ServletActionContext.getResponse();
     }
     public HttpSession session(){
      return ServletActionContext.getRequest().getSession();
     }
     public ServletContext application(){
      return ServletActionContext.getServletContext();
     }
      

  9.   

    package com.frank.dao;
    public class RuleDAO {
     private UserDAo userDAo;
     public UserDAo getUserDAo() {
      return userDAo;
     }
     public void setUserDAo(UserDAo userDAo) {
      this.userDAo = userDAo;
     }
     
    }
      

  10.   

    com.frank.action.UserAction.login(UserAction.java:44)你贴的时候贴这里关键啊把这个方法贴出来看看就行了你贴这么多  晕啊
      

  11.   

    public String login() throws Exception{
      if(this.getUserDao().checkUser(user)){
      computePageCount();
      users=this.getUserDao().getAllUsers(pageNo);
      return SUCCESS;
      }
      return INPUT;
     }
      

  12.   

    问题解决了,哎其实没啥错。。就是项目缓存的问题我重启了Myeclipse后就运行成功了第一次发帖。。发的有点乱,罪过,罪过,再次谢谢帮助过我的叔叔阿姨们~~~^_^