当前位置: 代码迷 >> J2EE >> 【j2ee spring】43、巴巴运动网平添,编辑,上架,下架产品样式
  详细解决方案

【j2ee spring】43、巴巴运动网平添,编辑,上架,下架产品样式

热度:37   发布时间:2016-04-17 23:07:39.0
【j2ee spring】43、巴巴运动网添加,编辑,上架,下架产品样式

【j2ee spring】43、巴巴运动网添加,编辑,上架,下架产品样式

项目结构

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

项目代码

底层接口实现

/** * 功能:这个是品牌样式的接口 * 文件:ProductStyleService.java * 时间:2015年5月31日19:33:19 * 作者:cutter_point */package com.cutter_point.service.product;import com.cutter_point.service.base.DAO;public interface ProductStyleService extends DAO{    //这里面定义ProductStyleService专有的方法    /**     * 这个是为了设置产品是否上架的功能     * @param productids 设置的一堆产品的id号     * @param status 设置状态     */    public void setVisibleStatus(Integer[] productstyleids, boolean status);}/** * 功能:这是品牌样式的服务类 * 文件:ProductStyleServiceBean.java * 时间:2015年5月31日19:34:15 * 作者:cutter_point */package com.cutter_point.service.product.impl;import org.hibernate.Query;import org.hibernate.Session;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import com.cutter_point.service.base.DaoSupport;import com.cutter_point.service.product.ProductStyleService;@Service    //相当于在spring里面定义一个bean,这是注解的方式<context:component-scan base-package="com.cutter_point" />@Transactional      //在方法执行的时候开启事务public class ProductStyleServiceBean extends DaoSupport implements  ProductStyleService {    @Override    public void setVisibleStatus(Integer[] productstyleids, boolean status)     {        //获取数据库的链接        Session session = this.sessionFactory.getCurrentSession();  //得到当前的session连接        //组装sql语句        if(productstyleids != null && productstyleids.length > 0)        {            //组建相应的sql语句            StringBuilder sql = new StringBuilder();            for(int i = 0; i < productstyleids.length; ++i)            {                sql.append(" ?,");            }            //去掉最后一个","            sql.deleteCharAt(sql.length() - 1); //这个索引从0开始,所以最后一个是长度-1            //得到相应的预处理指令            Query query = session.createSQLQuery("update productstyle o set o.visible = ? where o.id in ( " + sql.toString() + ")");            //设置上下架            query.setParameter(0, status);            for(int i = 0; i < productstyleids.length; ++i)            {                //?计数从0开始                query.setParameter(i + 1, productstyleids[i]);            }            //执行sql语句在数据库中更新结果            query.executeUpdate();        }    }}

产品样式

我们的产品样式是依托产品的,每个产品有许多样式,所以我们的样式在每个产品的产品管理里面

这里写图片描述

点击进入产品图片管理

这里写图片描述

这里写图片描述

实现相应的功能

/** * 功能:这个是产品样式的控制器 * 时间:2015年6月1日15:45:22 * 文件:ProductStyleManageAction.java * 作者:cutter_point */package com.cutter_point.web.action.product;import java.io.FileInputStream;import java.io.FileOutputStream;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.ServletActionContext;import org.apache.struts2.interceptor.ServletRequestAware;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Controller;import com.cutter_point.bean.product.ProductInfo;import com.cutter_point.bean.product.ProductStyle;import com.cutter_point.service.product.ProductInfoService;import com.cutter_point.service.product.ProductStyleService;import com.cutter_point.utils.SiteUrl;import com.cutter_point.web.formbean.product.ProductForm;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;@Controller@Scope("prototype")public class ProductStyleManageAction extends ActionSupport implements  ServletRequestAware, ModelDriven<ProductForm>{    private static final long serialVersionUID = 1378025018750845909L;    @Resource    private ProductStyleService productStyleService;    @Resource    private ProductInfoService productInfoService;    private HttpServletRequest request;    private ProductForm pf;    /**     * 设置产品上架     * @return String struts2的返回跳转result     * @throws Exception     */    public String visible() throws Exception    {        productStyleService.setVisibleStatus(pf.getStylesids(), true);  //上架就是可见        request.setAttribute("message", "产品上架成功");        request.setAttribute("urladdress", SiteUrl.readUrl("control.productstyle.list") + "?productid=" + pf.getProductid());        return "message";    }    /**     * 设置产品下架     * @return String struts2的返回跳转result     * @throws Exception     */    public String disable() throws Exception    {        productStyleService.setVisibleStatus(pf.getStylesids(), false); //下架就是不可见        request.setAttribute("message", "产品下架成功");        request.setAttribute("urladdress", SiteUrl.readUrl("control.productstyle.list") + "?productid=" + pf.getProductid());        return "message";    }    /**     * 显示产品修改界面     * @return String struts2的返回跳转result     * @throws Exception     */    public String editUI() throws Exception    {        //根据样式id号获取相应的id        ProductStyle productStyle = productStyleService.find(ProductStyle.class, pf.getProductstyleid());        pf.setStylename(productStyle.getName());    //获取名字        //显示的路径        String imageshowpath = "../images/" + productStyle.getImageFullPath();        request.setAttribute("imageshowpath", imageshowpath);        return "edit";    }    /**     * 产品修改     * @return String struts2的返回跳转result     * @throws Exception     */    public String edit() throws Exception    {        ProductStyle productStyle = productStyleService.find(ProductStyle.class, pf.getProductstyleid());   //查询出这个产品        productStyle.setName(pf.getStylename());  //设置样式的名称        productStyle.setImagename(pf.getImagefileFileName()); //设置图片名称        //还有就是样式里面没有上传文件的话那么就不用处理了,只有文件上传了才会被处理        if(pf.getImagefile() != null && pf.getImagefile().length() > 0)        {            /***************************************************************************************************************             *                  吧新的文件上传到相应的文件夹                                                                      ****             ***************************************************************************************************************/            //首先验证图片的格式是不是正确的            if(!pf.validateFileType(pf.getImagefileFileName()))            {                //如果图片格式不正确                request.setAttribute("message", "产品修改成功");                request.setAttribute("urladdress", SiteUrl.readUrl("control.product.list") + "?productid=" + productStyle.getProduct().getId());                return "message";            }            //验证图片文件的大小            if(pf.getImagefile().length() > 409600)            {                request.setAttribute("message", "图片不能大于400k");                request.setAttribute("urladdress", SiteUrl.readUrl("control.productstyle.list") + "?productid=" + productStyle.getProduct().getId());                return "message";            }            //上传到现有的路径            //G:\Program Files\Apache Software Foundation\Tomcat 8.0\webapps\babaSport_1100_brand\images\ 这个就是realpath            String realpath = ServletActionContext.getServletContext().getRealPath("/images");            ProductForm.saveProductImageFile(pf.getImagefile(), pf.getImagefileFileName(), productStyle.getProduct().getType().getTypeid(), productStyle.getProduct().getId(), realpath);        }        /***************************************************************************************************************         *                  产品信息保存到数据库                                                                          ****         ***************************************************************************************************************/        productStyleService.update(productStyle);   //保存这个产品,当保存完了之后hibernate会吧这个产品的id号赋值给product        /***************************************************************************************************************         *                              跳转成功之后页面传值                                                                **         ***************************************************************************************************************/        request.setAttribute("message", "产品修改成功");        request.setAttribute("urladdress", SiteUrl.readUrl("control.product.list") + "?productid=" + productStyle.getProduct().getId());        return "message";    }    /**     * 显示样式添加界面     * @return String struts2的返回跳转result     * @throws Exception     */    public String addUI() throws Exception    {        return "add";    }    /**     * 显示样式添加处理     * @return String struts2的返回跳转result     * @throws Exception     */    public String add() throws Exception    {        //用来保存图片路径        //再上传之前判断上传图片类型是不是符合要求        if(!pf.validateFileType(pf.getImagefileFileName()))        {            request.setAttribute("message", "图片格式不对");            request.setAttribute("urladdress", SiteUrl.readUrl("control.productstyle.list"));            return "message";        }        //得到图片后缀        //String ext = pf.getImagefileFileName().substring(pf.getImagefileFileName().lastIndexOf('.'));        if(pf.getImagefile().length() > 409600)        {            request.setAttribute("message", "图片不能大于400k");            request.setAttribute("urladdress", SiteUrl.readUrl("control.productstyle.list"));            return "message";        }        ProductInfo productInfo = new ProductInfo();    //查找到的产品        //根据相应的id号得到相应的产品        productInfo = productInfoService.find(ProductInfo.class, pf.getProductid());        /***************************************************************************************************************         *                  产品信息保存到数据库                                                                          ****         ***************************************************************************************************************/        //我们要保存的产品样式        ProductStyle productStyle = new ProductStyle(pf.getStylename(), pf.getImagefileFileName()); //上传的文件信息        productStyle.setProduct(productInfo);        productStyleService.save(productStyle);        /***************************************************************************************************************         *                              文件上传                                                                          **         ***************************************************************************************************************/        //构造产品保存的目录        //G:\Program Files\Apache Software Foundation\Tomcat 8.0\webapps\babaSport_1100_brand\images\ 这个就是realpath        String realpath = ServletActionContext.getServletContext().getRealPath("/images");        ProductForm.saveProductImageFile(pf.getImagefile(), pf.getImagefileFileName(), productInfo.getType().getTypeid(), productInfo.getId(), realpath);        /***************************************************************************************************************         *                              跳转成功之后页面传值                                                                **         ***************************************************************************************************************/        request.setAttribute("message", "产品添加成功");        request.setAttribute("urladdress", SiteUrl.readUrl("control.productstyle.list") + "?productid=" + productInfo.getId());        return "message";    }    //管理文件流    protected void close(FileOutputStream fos, FileInputStream fis)    {        if(fis != null)        {            try            {                fis.close();            }             catch (Exception e)            {                System.out.println("关闭文件输入流失败");                e.printStackTrace();            }        }        if(fos != null)        {            try            {                fos.close();            }             catch (Exception e)            {                System.out.println("关闭文件输出流失败");                e.printStackTrace();            }        }    }    @Override    public void setServletRequest(HttpServletRequest arg0)     {        this.request = arg0;    }    @Override    public ProductForm getModel()     {        if(pf == null)            pf = new ProductForm();        return pf;    }    public ProductForm getPf() {        return pf;    }    public void setPf(ProductForm pf) {        this.pf = pf;    }}

我们的配置文件struts.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"    "http://struts.apache.org/dtds/struts-2.3.dtd"><struts>    <include file="struts-default.xml" />    <constant name="struts.ObjectFactory" value="spring" /> <!--    表示这里面的action由spring进行创建 -->    <constant name="struts.devMode" value="true" />    <!--解决乱码    -->    <constant name="struts.i18n.encoding" value="UTF-8" />    <package name="control" namespace="/control" extends="struts-default">        <global-results>            <result name="message">/page/share/message.jsp</result>        </global-results>        <action name="center-*"><!-- 直接跳转,不需要经过class的验证,默认返回success -->            <result name="success">/page/controlcenter/{1}.jsp</result>        </action>        <!-- 产品类别展示 -->        <action name="producttypelist" class="productTypeAction" method="execute">            <result name="list">/page/product/producttypelist.jsp</result>        </action>        <!-- 产品类别管理 -->        <action name="*-producttypemanage" class="productTypeManageAction" method="{1}UI">            <result name="{1}">/page/product/{1}_productType.jsp</result>        </action>        <action name="producttypemanage-*" class="productTypeManageAction" method="{1}">            <result name="{1}">/page/product/{1}_productType.jsp</result>        </action>        <!-- 品牌类别展示 -->        <action name="brandlist" class="brandAction" method="execute">            <result name="list">/page/product/brandlist.jsp</result>        </action>        <!-- 品牌类别管理 -->        <action name="*-brandmanage" class="brandManageAction" method="{1}UI">            <result name="{1}">/page/product/{1}_brand.jsp</result>        </action>        <action name="brandmanage-*" class="brandManageAction" method="{1}">            <result name="{1}">/page/product/{1}_brand.jsp</result>        </action>        <!-- 文件展示 -->        <action name="uploadfilelist" class="uploadFileAction" method="execute">            <result name="list">/page/uploadfile/uploadfilelist.jsp</result>        </action>        <!-- 文件上传管理 -->        <action name="*-filemanage" class="uploadfileManageAction" method="{1}">            <result name="{1}">/page/uploadfile/{1}.jsp</result>            <result name="fileuploadfinish">/page/uploadfile/fileuploadfinish.jsp</result>            <result name="error">/page/uploadfile/error.jsp</result>        </action>        <!-- 产品分页展示 -->        <action name="productlist" class="productAction" method="execute">            <result name="list">/page/product/productlist.jsp</result>        </action>        <!-- 产品管理 -->        <action name="*-productmanage" class="productManageAction" method="{1}UI">            <result name="{1}">/page/product/{1}_product.jsp</result>            <result name="type{1}">/page/product/productTypeSelect.jsp</result>        </action>        <action name="productmanage-*" class="productManageAction" method="{1}">            <result name="{1}">/page/product/{1}_product.jsp</result>        </action>        <!-- 产品样式分页展示 -->        <action name="productstylelist" class="productStyleAction" method="execute">            <result name="list">/page/product/productstylelist.jsp</result>        </action>        <!-- 产品样式管理 -->        <action name="*-productstylemanage" class="productStyleManageAction" method="{1}UI">            <result name="{1}">/page/product/{1}_productstyle.jsp</result>        </action>        <action name="productstylemanage-*" class="productStyleManageAction" method="{1}">            <result name="{1}">/page/product/{1}_productstyle.jsp</result>        </action>    </package></struts>

总结

这里写图片描述

这个是完成了相应的修改添加和产品的 上下架功能,上下架功能其实就是我们的数据库中设定的一个字段,也就是是否可见的字段,在展示的时候我们需要有一个前提的条件,那就是当产品的可见字段是true 的时候我们才会把它显示出来

版权声明:本文为博主原创文章,未经博主允许不得转载。

  相关解决方案