⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 orderdetailaction.java

📁 一个利用struts hibernate开发的精致购物网站
💻 JAVA
字号:
package bookstore;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.hibernate.Query;
import org.hibernate.Session;

import bookstore.database.HibernateUtil;
import bookstore.database.Order;
import bookstore.database.Userinfo;

public class OrderDetailAction extends Action {

    public ActionForward execute(ActionMapping mapping, ActionForm srcForm,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        ActionMessages errors = new ActionMessages();
        // 验证是否已经登录
        if(request.getSession().getAttribute("user") == null) {
            return mapping.findForward("frontPage");
        }
        Userinfo user = (Userinfo) request.getSession().getAttribute("user");
        // 验证是否给出了合法的订单ID
        if (request.getParameter("id") == null
                || request.getParameter("id").equals("")) {
            errors.add("noid", new ActionMessage("orderdetail.noid"));
            this.saveErrors(request, errors);
            return mapping.findForward("errorPage");
        }
        // 开始查询订单
        int id = Integer.parseInt(request.getParameter("id"));
        Order order = loadOrderInfo(id, user.getId().intValue(), errors);
        if(order == null) {
            this.saveErrors(request, errors);
            return mapping.findForward("errorPage");
        }
        request.setAttribute("order", order);
        return mapping.findForward("orderdetail");
    }

    private Order loadOrderInfo(int id, int userid, ActionMessages errors) {
        Session dbSession = HibernateUtil.currentSession();
        // 查询订单中订单号是给定号码,
        // 并且该订单的用户ID是当前用户(不允许查询其他用户的订单)
        try {
            HibernateUtil.beginTransaction();
            Query query = dbSession.createQuery(" from Order as o where o.id=:id and userid=:userid")
                .setInteger("id", id)
                .setInteger("userid", userid)
                .setMaxResults(1);
            List result = query.list();
            HibernateUtil.commitTransaction();
            if(result.size() != 0) {
                return (Order) result.get(0);
            }
            errors.add("noOrder", new ActionMessage("orderdetail.noOrder"));
        } catch(Exception e) {
            errors.add("dbError", new ActionMessage("globle.dbError"));
        }
        return null;
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -