//UserTable.java
package model;/**
 * UserTable entity. @author MyEclipse Persistence Tools
 */public class UserTable implements java.io.Serializable { // Fields private Integer id;
private String username;
private String password; // Constructors /** default constructor */
public UserTable() {
} /** full constructor */
public UserTable(String username, String password) {
this.username = username;
this.password = password;
} // Property accessors public Integer getId() {
return this.id;
} public void setId(Integer id) {
this.id = id;
} public String getUsername() {
return this.username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return this.password;
} public void setPassword(String password) {
this.password = password;
}}//DlDao.java
package dao;
import model.UserTable;
public interface DlDao {
public UserTable validate(String username, String password);
}
//DlDaoImp.java
package dao;
import dao.DlDao;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;import sessionfactory.HibernateSessionFactory;
import model.UserTable;
public class DlDaoImp implements DlDao{
public UserTable validate(String username, String password)
{
try{
Session session=HibernateSessionFactory.getSession();
Transaction ts=session.beginTransaction();
Query query=session.createQuery("from UserTable where username=? and password=?");
query.setParameter(0,username);
query.setParameter(1,password);
query.setMaxResults(1);
UserTable userTable=(UserTable)query.uniqueResult();
if(userTable!=null){
return userTable;
}else{
return null;
}
}catch(Exception e){
e.printStackTrace();
return null;
}

}
}//MainAction .java
package action;
import java.util.Map;
import model.UserTable;
import dao.DlDao;
import dao.DlDaoImp;
import dao.UserTableDao;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class MainAction  extends ActionSupport{
private UserTable ut;
public UserTable getUserTable() {
return ut;
}
public void setUserTable(UserTable ut) {
this.ut = ut;
}
public String execute() throws Exception {
// TODO Auto-generated method stub
DlDao utd=new DlDaoImp();
UserTable user=utd.validate(ut.getUsername(),ut.getPassword());
if(user!=null){
Map session= (Map)ActionContext.getContext().getSession();
session.put("user", user);
return SUCCESS;
}else
return ERROR;
}
}//hibernate.cfg.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration> <session-factory>
<property name="connection.username">testload</property>
<property name="connection.url">
jdbc:sqlserver://127.0.0.1:1433;databaseName=XSCJ
</property>
<property name="dialect">
org.hibernate.dialect.SQLServerDialect
</property>
<property name="myeclipse.connection.profile">MyConn</property>
<property name="connection.password">123456</property>
<property name="connection.driver_class">
com.microsoft.sqlserver.jdbc.SQLServerDriver
</property>
<mapping resource="model/UserTable.hbm.xml" />
</session-factory></hibernate-configuration>

解决方案 »

  1.   

    把UserTable user=utd.validate(ut.getUsername(),ut.getPassword()); 中返回的user打印出来看是啥 null 还是其他的
      

  2.   

    1、debug启动项目
    2、在方法双击打断点
    3、发起Action请求
    4、f6慢慢步进执行,鼠标上去应该可以看到值(或右击user选择watch)
      

  3.   

    或者system.out.println(打印是否接收到用户名和密码);
      

  4.   

    我试了下的确是user为空,但我感觉代码没错呀,控制台里报了这样的错误是,这个原因造成的吗?
    严重: Exception starting filter struts2
    java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.FilterDispatcher
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:269)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4072)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4726)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1079)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1002)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:506)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
    2013-11-5 11:24:30 org.apache.catalina.core.StandardContext start
    严重: Error filterStart
    2013-11-5 11:24:30 org.apache.catalina.core.StandardContext start
    严重: Context [/Example_Struts] startup failed due to previous errors
    2013-11-5 11:24:30 org.apache.catalina.startup.HostConfig deployDirectory
    信息: Deploying web application directory ROOT
    2013-11-5 11:24:30 org.apache.catalina.startup.HostConfig deployDirectory
    信息: Deploying web application directory Struts_Hibernate
    2013-11-5 11:24:32 org.apache.catalina.startup.HostConfig deployDirectory
    信息: Deploying web application directory zjw
    2013-11-5 11:24:32 org.apache.coyote.http11.Http11Protocol start
    信息: Starting Coyote HTTP/1.1 on http-8080
    2013-11-5 11:24:32 org.apache.jk.common.ChannelSocket init
    信息: JK: ajp13 listening on /0.0.0.0:8009
    2013-11-5 11:24:32 org.apache.jk.server.JkMain start
    信息: Jk running ID=0 time=0/18  config=null
    2013-11-5 11:24:32 org.apache.catalina.startup.Catalina start
    信息: Server startup in 2771 ms
    log4j:WARN No appenders could be found for logger (com.opensymphony.xwork2.config.providers.XmlConfigurationProvider).
    log4j:WARN Please initialize the log4j system properly.
      

  5.   

    检查ut的值,可能页面传过来的值没有赋值到ut