struts2+hibernate留言板 练习java ee

项目结构

项目结构

**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
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值