**action:**
准备数据,跳转到主界面
GoMessageUi.java
package com.frank.action;
import java.util.List;
import org.apache.struts2.ServletActionContext;
import com.frank.domain.Message;
import com.frank.domain.User;
import com.frank.service.imp.MessageServiceImp;
import com.frank.service.inter.MessageServiceInter;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class GoMessageUi extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println("#########GoMessageUi###########");
User user=(User) ActionContext.getContext().getSession().get("userinfo");
System.out.println(user.getName());
MessageServiceInter messageService=new MessageServiceImp();
List<Message> message=messageService.showMessage(user);
System.out.println(message.size());
ServletActionContext.getRequest().setAttribute("messageList",message);
return SUCCESS;
}
}
GoSendMessageUi.java
跳转到发送信息界面
package com.frank.action;
import com.opensymphony.xwork2.ActionSupport;
public class GoSendMessageUi extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println("##########GoSendMessageUi#########");
return SUCCESS;
}
}
处理用户登录登出
LoginAction.java
package com.frank.action;
import com.frank.domain.User;
import com.frank.service.imp.UserServiceImp;
import com.frank.service.inter.UserServiceInter;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
private String userId;
private String password;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String Login() throws Exception {
// TODO Auto-generated method stub
System.out.println("#######login#########");
User user=new User();
UserServiceInter userservice=new UserServiceImp();
user.setUserId(Integer.parseInt( this.getUserId() ) );
user.setPassword(this.getPassword());
user=userservice.checkUser(user);
if(user!=null){
//将user信息放入session
ActionContext.getContext().getSession().put("userinfo", user);
System.out.println(user.getName());
return SUCCESS;
}
else{
System.out.println("the password of user is worng");
return LOGIN;
}
}
public String Logout() throws Exception{
System.out.println("#########logout#########");
ActionContext context=ActionContext.getContext();
context.getSession().clear(); //清空session
return LOGIN;
}
}
SendMessageAction.java
发布信息
package com.frank.action;
import java.util.Date;
import com.frank.domain.Message;
import com.frank.domain.User;
import com.frank.service.imp.MessageServiceImp;
import com.frank.service.imp.UserServiceImp;
import com.frank.service.inter.MessageServiceInter;
import com.frank.service.inter.UserServiceInter;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class SendMessageAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
private String getterId;
private String content;
public String getGetterId() {
return getterId;
}
public void setGetterId(String getterId) {
this.getterId = getterId;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println("########SendMessageAction#########");
//获得sender和getter
User sender=(User) ActionContext.getContext().getSession().get("userinfo");
UserServiceInter userService=new UserServiceImp();
System.out.println(this.getterId);
System.out.println(this.getContent());
User getter=(User) userService.findById(User.class, this.getterId);
Message message=new Message();
message.setContent(this.getContent());
message.setGetter(getter);
message.setSender(sender);
message.setMesTime(new Date());
//保存message到数据库
MessageServiceInter messageService=new MessageServiceImp();
messageService.save(message);
return SUCCESS;
}
}
domain
Message.java
many的一端,要在这里把延迟加载取消。否则在取的时候hibernate不会取其中的User属性。如果不想取消延迟加载,可以使用opensessionInView,扩大session的作用范围。
package com.frank.domain;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name="Message_inf")
public class Message {
@Id @Column(name="mesId")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer mesId;
private java.util.Date mesTime;
private String content;
//对象
//关闭延迟加载
@ManyToOne(targetEntity=User.class,fetch=FetchType.EAGER)
private User se