首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

Struts2+Spring+JPA+FREEMARKER 登录程序异常

2012-12-23 
Struts2+Spring+JPA+FREEMARKER 登录程序错误本帖最后由 sunlarry 于 2012-12-04 18:06:23 编辑表结构如下

Struts2+Spring+JPA+FREEMARKER 登录程序错误
本帖最后由 sunlarry 于 2012-12-04 18:06:23 编辑 表结构如下:


create table SYSUSER
(
  loginid      VARCHAR2(20) not null,
  pwd          VARCHAR2(20),
 )

MODEL:

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "SYSUSER", schema = "TEST")
public class Sysuser implements java.io.Serializable {

private String loginid; 
private String pwd;

@Id
@Column(name = "LOGINID", unique = true, nullable = false, length = 20)
public String getLoginid() {
return this.loginid;
}
public void setLoginid(String loginid) {
this.loginid = loginid;
}
@Column(name = "PWD", length = 20)
public String getPwd() {
return this.pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}

SERVICE:

import java.util.ArrayList;
import java.util.List;
public interface SysuserService {
public void save(Sysuser sysuser);

public void delete(Sysuser sysuser);

public void update(Sysuser sysuser);

public ArrayList<Sysuser> find(final String username, final String password);


}



import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.springframework.transaction.annotation.Transactional;

@Transactional
public class SysuserServiceImpl implements SysuserService {
private EntityManager entityManager;
public void delete(Sysuser sysuser) {
sysuser = entityManager.getReference(Sysuser.class, sysuser.getLoginid());
entityManager.remove(sysuser);
}
public void save(Sysuser sysuser) {
entityManager.persist(sysuser);
}
public void update(Sysuser sysuser) {
entityManager.merge(sysuser);
}

public ArrayList<Sysuser> find(String username, String password) {
String jpql="select u from Sysuser u where u.loginid like :username and u.pwd like :password";
Query query=getEntityManager().createQuery(jpql);
query.setParameter("username", username);
query.setParameter("password", password);
List<Sysuser> list=query.getResultList();
return (ArrayList<Sysuser>) list;
}
public EntityManager getEntityManager() {
return entityManager;
}
@PersistenceContext
public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}
}

action:

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;


import com.office.model.Sysuser;
import com.office.service.SysuserService;
import com.office.util.ChanageLetter;
import com.office.util.MD5;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
  private String loginid;
  private String pwd;
  private String checkcode;
  private Sysuser sysuser;
  private ArrayList<Sysuser> sysusers;
 
public ArrayList<Sysuser> getSysusers() {
return sysusers;
}
public void setSysusers(ArrayList<Sysuser> sysusers) {
this.sysusers = sysusers;
}
private SysuserService sysuserService;
public SysuserService getSysuserService() {
return sysuserService;
}
public void setSysuserService(SysuserService sysuserService) {
this.sysuserService = sysuserService;
}

  public String execute() throws Exception{

  ActionContext actionContext = ActionContext.getContext();
      Map<?, ?> session = actionContext.getSession();                
  String code = ChanageLetter.chg(session.get("rand").toString());
  MD5 md5 = new MD5();  
    String pwd=md5.getMD5ofStr(this.getPwd());
    String um=this.getLoginid();
    this.setSysusers(this.sysuserService.find(um, pwd));
System.out.println(this.sysusers);
System.out.println(this.sysusers.size());

if(0==this.sysusers.size()){
return "errorlogin";
}
else{

return "loginsuccess";
}
    
   
  }
  
public String getLoginid() {
return loginid;
}
public void setLoginid(String loginid) {
this.loginid = loginid;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}

public String getCheckcode() {
return checkcode;
}


public void setCheckcode(String checkcode) {
this.checkcode = checkcode;

}


struts配置:

 <action name="userlogin" class="LoginAction">
            <result name="loginsuccess" type="freemarker">/WEB-INF/templates/user.ftl</result>        
            <result name="errorlogin" type="freemarker">/WEB-INF/templates/admin/login.ftl</result>
                </action>

报错如下:

十二月 04, 2012 6:03:11 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.lang.NullPointerException
at com.office.action.LoginAction.execute(LoginAction.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)


at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)


[解决办法]
那位大大给个回复
[解决办法]
41行报错了,看看sysuserService这个对象是否为空。

热点排行