码迷,mamicode.com
首页 > 编程语言 > 详细

【j2ee spring】36、巴巴运动网的产品品牌图片

时间:2015-06-18 11:42:12      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:io   图片上传   spring   action   

巴巴运动网的产品品牌图片

 

1、项目图解

 

 技术分享


技术分享

 

 

 

这里做的是图片的存储和显示

 

 

2、我们开始做我们的相应的功能模块

页面的素材我会上传的,链接是:http://download.csdn.net/detail/cutter_point/8803985

 

 

BrandAction.java

 

 

/**

 * 功能:这个是实现品牌类和web层的交互

 * 时间:2015年5月23日10:31:07

 * 文件:BrandAction.java

 * 作者:cutter_point

 */

packagecom.cutter_point.web.action.product;

 

import java.util.ArrayList;

importjava.util.LinkedHashMap;

import java.util.List;

import java.util.Map;

 

importjavax.annotation.Resource;

 

importorg.springframework.context.annotation.Scope;

importorg.springframework.stereotype.Controller;

 

importcom.cutter_point.bean.PageView;

importcom.cutter_point.bean.QueryResult;

importcom.cutter_point.bean.product.Brand;

importcom.cutter_point.service.product.BrandService;

importcom.opensymphony.xwork2.ActionContext;

importcom.opensymphony.xwork2.ActionSupport;

 

@Controller

@Scope("prototype")

public class BrandActionextends ActionSupport

{

         @Resource

         private BrandService brandService;         //通过接口注入,aop默认的方式

         private int page;

        

        

         @Override

         public String execute() throws Exception

         {

                   Map request =(Map)ActionContext.getContext().get("request");

                   PageView<Brand> pageview = newPageView<Brand>(12, this.getPage());

                   int firstindex = (pageview.getCurrentpage() - 1) *pageview.getMaxresult();        //得到从哪个开始索引的值

                   LinkedHashMap<String, String> orderby = newLinkedHashMap<String, String>();

                   orderby.put("code", "asc");

                   StringBuilder hsql = newStringBuilder("o.visible = ?");

                   List<Object> params = newArrayList<Object>();   //这个用来存放需要的排序方式

                   params.add(true);

                  

                   QueryResult<Brand> qr =brandService.getScrollData(Brand.class, firstindex, pageview.getMaxresult(),hsql.toString(),

                                     params.toArray(), orderby);

                   pageview.setQueryResult(qr);

                   request.put("pageView", pageview);

                  

                   return "list";

         }

        

         public void setPage(int page)

         {

                   this.page = page;

         }

        

         public int getPage()

         {

                   return page < 1 ? 1 : page;

         }

}

 

ProductTypeManageAction.java

 

/**

 * 功能:这个是品牌产品的管理动作

 * 时间:2015年5月20日15:40:17

 * 文件:ProductTypeManageAction.java

 * 作者:cutter_point

 */

packagecom.cutter_point.web.action.product;

 

import java.io.File;

importjava.io.FileInputStream;

importjava.io.FileOutputStream;

importjava.text.SimpleDateFormat;

import java.util.Date;

import java.util.Map;

import java.util.UUID;

 

importjavax.annotation.Resource;

 

importorg.apache.commons.io.FileUtils;

importorg.apache.struts2.ServletActionContext;

importorg.springframework.context.annotation.Scope;

importorg.springframework.stereotype.Controller;

 

importcom.cutter_point.bean.product.Brand;

importcom.cutter_point.service.product.BrandService;

importcom.opensymphony.xwork2.ActionContext;

importcom.opensymphony.xwork2.ActionSupport;

 

@Controller

@Scope("prototype")

public class BrandManageActionextends ActionSupport

{

         @Resource

         private BrandService brandService;         //通过接口注入,aop默认的方式

         private File logofile;          //上传的文件

         private String logofileContentType;         //这个是struts2自动传进来的属性,文件的内容类型

         private String logofileFileName;      //这个是struts2自动传进来的属性,上传文件名

         private String name;                  //上传的品牌的名字

        

         /**

          * 显示品牌添加界面

          * @return Stringstruts2的返回跳转result

          * @throws Exception

          */

         public String addUI() throws Exception

         {

                   return "add";

         }

        

         /**

          * 品牌添加操作,上传文件方式2

          * @return

          * @throws Exception

          */

         public String add2() throws Exception

         {

                   Map request = (Map)ActionContext.getContext().get("request");

                   //我们保存文件的格式是images/brand/2015/5/23/ssss.gif

                   //G:\Program Files\Apache SoftwareFoundation\Tomcat 8.0\webapps\babaSport_1100_brand\images\ 这个就是realpath

                   String realpath =ServletActionContext.getServletContext().getRealPath("/images");

                   //这里我们规定一下格式

                  SimpleDateFormatdateformat = new SimpleDateFormat("yyy\\MM\\dd\\HH");

                   String logopath = realpath + "brand\\" +dateformat.format(new Date());   //构建图片保存的目录

                   Brand brand = new Brand();

                   brand.setName(this.getName());

                   //判断文件是否获取,文件获取到,且长度大于0

                   if(this.getLogofile() != null &&this.getLogofile().length() > 0)

                   {

                            File logosavedir = new File(logopath);     //文件的保存路径

                            if(!logosavedir.exists())

                            {

                                     //如果文件保存路径不存在,我们就创建这个路径

                                     logosavedir.mkdirs();

                            }

                            //文件的名字

//                         String imagename = UUID.randomUUID().toString();    //构建文件名称

                            //文件输出到相应的目录,根据 parent 抽象路径名和 child 路径名字符串创建一个新File 实例。

                            File savefile = new File(logosavedir,this.getLogofileFileName());

                            FileUtils.copyFile(logofile, savefile);

                   }

                   brandService.save(brand);

                   request.put("message", "添加品牌成功");

                   return "message";

         }

        

         /**

          * 品牌添加操作,上传文件方式1

          * @return

          * @throws Exception

          */

         public String add() throws Exception

         {

                   Map request = (Map)ActionContext.getContext().get("request");

                   //我们保存文件的格式是images/brand/2015/5/23/ssss.gif

                   //G:\Program Files\Apache SoftwareFoundation\Tomcat 8.0\webapps\babaSport_1100_brand\images\ 这个就是realpath

                   String realpath =ServletActionContext.getServletContext().getRealPath("/images");

                   //这里我们规定一下格式

                   SimpleDateFormat dateformat = new SimpleDateFormat("yyy\\MM\\dd\\HH");

                   String logopathdir = realpath +"brand\\" + dateformat.format(new Date());       //构建图片保存的目录

                   Brand brand = new Brand();

                   brand.setName(this.getName());

                   //判断文件是否获取,文件获取到,且长度大于0

                   if(this.getLogofile() != null &&this.getLogofile().length() > 0)

                   {

                            File logosavedir = new File(logopathdir); //文件的保存路径

                            if(!logosavedir.exists())

                            {

                                     //如果文件保存路径不存在,我们就创建这个路径

                                     logosavedir.mkdirs();

                            }

                            //得到图片后缀

                            String ext =this.getLogofileFileName().substring(this.getLogofileFileName().lastIndexOf('.'));

                            //文件的名字

                            String showpath = "..\\" +logosavedir.toString().substring(logosavedir.toString().lastIndexOf("\\images"));

                            String imagename = UUID.randomUUID().toString()+ ext;   //构建文件名称

                            System.out.println(imagename +"?????????????????????");

                            //这里用文件流来传进来

                            FileOutputStream fos = null;

                            FileInputStream fis = null;

                            try

                            {

                                     String logopath = logosavedir +"\\" + imagename;

                                     showpath += "\\" +imagename;

                                     //建立文件输出流

                                     fos = newFileOutputStream(logopath);

                                     //建立文件上传流

                                     fis = newFileInputStream(this.getLogofile());

                                     //设定一个字节缓存

                                     byte[] buffer = new byte[2048];

                                     int len = 0;                  //每次上传的长度

                                     //不断地从文件上传流输出到输出流

                                     while((len = fis.read(buffer))!= -1)

                                     {

                                               //输出

                                               fos.write(buffer, 0,len);

                                     }

                                     brand.setLogopath(showpath);

                            }

                            catch (Exception e)

                            {

                                     System.out.println("文件上传失败");

                                     e.printStackTrace();

                            }

                            finally

                            {

                                     this.close(fos, fis);

                            }

                   }

                   brandService.save(brand);

                   request.put("message", "添加品牌成功");

                   return "message";

         }

        

         //管理文件流

         protected void close(FileOutputStream fos, FileInputStreamfis)

         {

                   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();

                            }

                   }

         }

        

 

         public File getLogofile()

         {

                   return logofile;

         }

 

         public void setLogofile(File logofile)

         {

                   this.logofile = logofile;

         }

 

         public BrandService getBrandService()

         {

                   return brandService;

         }

 

         public void setBrandService(BrandService brandService)

         {

                   this.brandService = brandService;

         }

 

         public String getName()

         {

                   return name;

         }

 

         public void setName(String name)

         {

                   this.name = name;

         }

 

         public String getLogofileContentType()

         {

                   return logofileContentType;

         }

 

         public void setLogofileContentType(StringlogofileContentType)

         {

                   this.logofileContentType = logofileContentType;

         }

 

         public String getLogofileFileName()

         {

                   return logofileFileName;

         }

 

         public void setLogofileFileName(String logofileFileName)

         {

                   this.logofileFileName = logofileFileName;

         }

}


 

显示界面

 

brandlist.jsp

<%@ page isELIgnored="false"contentType="text/html;charset=UTF-8" %>

<%@taglib uri="/struts-tags"  prefix="s"%>

<html>

<head>

<title>产品类别管理</title>

<meta http-equiv="Content-Type"content="text/html; charset=UTF-8">

<link rel="stylesheet"href="../css/vip.css" type="text/css">

<script type="text/javascript">

 

    //到指定的分页页面

    function topage(page)

    {

        document.getElementById("page").value = page;

        //alert(document.getElementById("page").value);

        //document.form1.method= 'post';

        //document.form1.submit();

        var obj = document.getElementsByName("form1").item(0).submit();

 

    }

 

</script>

<SCRIPT language=JavaScript src="../js/FoshanRen.js"></SCRIPT>

</head>

 

<body bgcolor="#FFFFFF"text="#000000" marginwidth="0" marginheight="0">

<form id="form11"name="form1" action="brandlist"method="post">

<s:hidden id="page" name="page"/>

  <table width="98%"border="0" cellspacing="1"cellpadding="2" align="center">

    <tr ><td colspan="4" bgcolor="6f8ac4" align="right" >

   <%@ include file="../share/fenye.jsp"%>

    </td></tr>

    <tr>

      <td width="20%" bgcolor="6f8ac4"><div align="center"><fontcolor="#FFFFFF">代号</font></div></td>

      <td width="5%" nowrapbgcolor="6f8ac4"><div align="center"><fontcolor="#FFFFFF">修改</font></div></td>

      <td width="45%" bgcolor="6f8ac4"><div align="center"><fontcolor="#FFFFFF">名称</font></div></td>

      <td width="30%" nowrapbgcolor="6f8ac4"><div align="center"><fontcolor="#FFFFFF">Logo</font></div></td>

    </tr>

<!---------------------------LOOPSTART------------------------------>

<s:iterator value="#request.pageView.records" var="entry">

    <tr>

      <td bgcolor="f5f5f5">

         <div align="center"><s:property value="#entry.code"/></div>

      </td>

      <td bgcolor="f5f5f5">

         <div align="center">

             <a href="<s:url action="edit-producttypemanage"/>?typeid=<s:property value="#entry.typeid"/>">

                <img src="../images/edit.gif"width="15" height="16"border="0">

            </a>

        </div>

      </td>

      <td bgcolor="f5f5f5" align="center">

        <s:property value="#entry.name"/>

      </td>

      <td bgcolor="f5f5f5">

        <s:if test="#entry.logopath== null">没有Logo</s:if>

        <s:if test="#entry.logopath!= null"><img width="100"src="${entry.logopath}"></s:if>

      </td>

    </tr>

</s:iterator>

    <!----------------------LOOPEND------------------------------->

    <tr>

      <td bgcolor="f5f5f5" colspan="4"align="center"><table width="100%"border="0" cellspacing="1"cellpadding="3">

          <tr>

            <td width="5%"></td>

              <td width="85%">

              <input name="AddDic" type="button"class="frm_btn" id="AddDic"onClick="javascript:window.location.href='<s:url action="add-brandmanage" />'"value="添加品牌">  

              <input name="query" type="button"class="frm_btn" id="query"onClick="javascript:window.location.href='<s:url action="query-brandmanage" />'"value=" 查询 ">  

            </td>

          </tr>

        </table></td>

    </tr>

  </table>

  </form>

</body>

</html>


 

Add_brand.jsp

 

<%@ page isELIgnored="false"contentType="text/html;charset=UTF-8" %>

<%@ taglib uri="/struts-tags"  prefix="s"%>

<html>

<head>

<title>添加类别</title>

<meta http-equiv="Content-Type"content="text/html; charset=UTF-8">

<link rel="stylesheet"href="/css/vip.css" type="text/css">

<SCRIPT language=JavaScript src="/js/FoshanRen.js"></SCRIPT>

<script language="JavaScript">

function checkfm(form)

{

    if (trim(form.name.value)=="")

    {

        alert("品牌名称不能为空!");

        form.name.focus();

        return false;

    }

    /*

    if(byteLength(form.note.value)>200)

    {

        alert("备注不能大于100字!");

        form.note.focus();

        returnfalse;

    }  

    */

    return true;

}

</script>

</head>

<body bgcolor="#FFFFFF"text="#000000" leftmargin="0" topmargin="0"marginwidth="0" marginheight="0">

<s:form action="brandmanage-add" method="post" enctype="multipart/form-data"  onsubmit="returncheckfm(this)">

<br>

  <table width="90%"border="0" cellspacing="2"cellpadding="3" align="center">

    <tr bgcolor="6f8ac4">

    <td colspan="2" >

         <fontcolor="#FFFFFF">添加品牌:</font>

    </td>

    </tr>

    <tr bgcolor="f5f5f5">

      <td width="22%" >

         <div align="right">品牌名称:</div>

      </td>

      <td width="78%">

         <input name="name" size="50"maxlength="40" />

        <fontcolor="#FF0000">*</font>

      </td>

    </tr>

    <tr bgcolor="f5f5f5">

      <td width="22%"><div align="right">Logo图片:</div></td>

      <td width="78%">

          <input name="logofile"type="file" size="50"maxlength="100" />

       </td>

    </tr>

    <tr bgcolor="f5f5f5">

      <td colspan="2"><div align="center">

          <input type="submit" value=" 确定 " class="frm_btn">

        </div></td>

    </tr>

  </table>

</s:form>

<br>

</body>

</html>


 

4、struts2的配置

 

<?xml version="1.0"encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD StrutsConfiguration 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>

        <!--    <interceptor-refname="fileUpload">

                文件大小, 以字节为单位

                <paramname="maximumSize">1025956</param>

            </interceptor-ref>

            默认拦截器必须放在fileUpload之后,否则无效

            <interceptor-refname="defaultStack" /> -->

        </action>

       

    </package>

</struts>


5、接下来我们测试一下页面的效果

我们访问这个网站

 

http://localhost:8080/babaSport_2100_cart/control/center-main




 技术分享技术分享技术分享




 技术分享


 

关于网站为什么要这样写,上几篇blog有介绍

 

6、总结

 

这里我们做的就是如何把图片上传到服务器,怎么保存,保存到那里去,用什么样的格式保存

 

 

 

 

 

 

 

 

【j2ee spring】36、巴巴运动网的产品品牌图片

标签:io   图片上传   spring   action   

原文地址:http://blog.csdn.net/cutter_point/article/details/46544603

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!