当前位置:编程学习 > JAVA >>

做登录界面老是报空指针异常,求大神解决

//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>



--------------------编程问答-------------------- 把UserTable user=utd.validate(ut.getUsername(),ut.getPassword()); 中返回的user打印出来看是啥 null 还是其他的 --------------------编程问答-------------------- 怎么个打印啊? --------------------编程问答-------------------- 设置个断点断下来看看, --------------------编程问答-------------------- 1、debug启动项目
2、在方法双击打断点
3、发起Action请求
4、f6慢慢步进执行,鼠标上去应该可以看到值(或右击user选择watch) --------------------编程问答-------------------- 或者system.out.println(打印是否接收到用户名和密码); --------------------编程问答-------------------- 我试了下的确是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.
--------------------编程问答-------------------- 这个原因我在网上找了一下,有各种答案,根本就不知道是什么原因造成控制台那个异常的,哪位大神路过的能帮忙解决下吗? --------------------编程问答-------------------- jar 的问题。检查下。 --------------------编程问答-------------------- 包没导少吧,真心不知道哪里出错了 --------------------编程问答-------------------- 检查ut的值,可能页面传过来的值没有赋值到ut --------------------编程问答--------------------
引用 7 楼 a531626177 的回复:
这个原因我在网上找了一下,有各种答案,根本就不知道是什么原因造成控制台那个异常的,哪位大神路过的能帮忙解决下吗?


你重新编译一下代码试一下,看会不会出现, --------------------编程问答-------------------- 我编译过好多次了,代码那么并没有报错,就只有控制台报错了
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,