javashop如何做商品图片上传的插件

插件
首先插件方法需继承 AbstractGoodsPlugin 实现IGoodsTabShowEvent
例: public class GoodsPicturelistPlgin extends AbstractGoodsPlugin implements IGoodsTabShowEvent

插件HTML模板需写在插件方法的同一目录下,并且名字需跟插件命相同

插件使用HTML模板:

FreeMarkerPaser freeMarkerPaser = FreeMarkerPaser.getInstance();
  freeMarkerPaser.proessPageContent();

例子:

public String getAddHtml(HttpServletRequest request) {
        FreeMarkerPaser freeMarkerPaser = FreeMarkerPaser.getInstance();
        return freeMarkerPaser.proessPageContent();
      }

插件向HTML模板传值:

freeMarkerPaser.putData("值名称",值参数);

HTML中使用插件传入的值:
${值名称!”}

例子:

freeMarkerPaser.putData("filepic",goods.get("thumbnail"));

HTML模板:
<#assign pic = filepic />
${pic!”}

HTML
<!–前端使用ajax一步提交就好,参考例子:–>
例子:

var options = {
        url : "/wine/admin/goods-savepic!savepicture.do?ajax=yes",
        type : "POST",
        dataType : "json",
        success : function(result) {                                     $("#picturelist").val(result.data.fsImgPath);
    $("#imgfile").html("<img width='240' height='220' border='0'/>"                                    src='"+result.data.imgPath+"'>");
                        },
        error : function(e) {
                            alert("出现错误 ,请重试");
                        }
            };
$('#theForm').ajaxSubmit(options);

Action
上传首先需要两个属性:

  File file; //上传流
  String fileFileName;//上传地址
String subFolder = "goodslist"; //上传文件夹Name

//需判断上传文件类型
例:

String allowTYpe = "gif,jpg,bmp,png";
    if (!fileFileName.trim().equals("") && fileFileName.length() > 0) {
        String ex = fileFileName.substring(fileFileName.lastIndexOf(".")+1, fileFileName.length());
        if(allowTYpe.toString().indexOf(ex.toLowerCase()) < 0){
        this.showErrorJson("对不起,只能上传gif,jpg,bmp,png格式的图片!");
                        return this.JSON_MESSAGE;
                    }
    }

//判断文件大小
例:

if(pic.length() > 900 * 1024){
                this.showErrorJson("'对不起,图片不能大于900K!");
                return this.JSON_MESSAGE;

//上传文件:
例:

String fsImgPath=    UploadUtil.upload(pic, picFileName, subFolder);

因为存入数据库图片地址是fs:**** ,所以使用图片时需调用UploadUtil方法获得图片正常地址:
String imgPath = UploadUtil.replacePath(图片路径);

javashop做最好的Java网店系统

Java b2b2c系统

Java 多用户商城

Java 多店铺商城

Java 多店铺系统

Java CMS系统

Java O2O系统

Java 商城APP

官网请访问:www.javamall.com.cn

javashop email 邮箱发送

Javashop邮箱发送的方法
//发送邮箱
EopSite site  = EopContext.getContext().getCurrentSite();

定义用户在邮箱中点击回到本站的连接
String loginurl  = “http://vip.365vin.com”;

以下是为,当给用户发送邮箱的内容时,为模板发送所需要的一些值。
EmailModel emailModel = new EmailModel();
emailModel.getData().put(“username”, newMember.getUname());
emailModel.getData().put(“loginurl”, loginurl);
emailModel.getData().put(“sitename”, site.getSitename());
emailModel.getData().put(“logo”, site.getLogofile());
emailModel.getData().put(“password”, pwd);
emailModel.getData().put(“parentname”, member.getName());

设置邮箱的标题
emailModel.setTitle(“尊敬的”+newMember.getUname()+”您好,”+member.getName()+”邀请您加入”+site.getSitename()+”会员”);

设置收件人的邮箱
emailModel.setEmail(newMember.getEmail());

设置邮箱内容模板的路径
emailModel.setTemplate(“email_invitation.html”);
emailModel.setEmail_type(“注册成功提示”);

发送邮件
mailMessageProducer.send(emailModel);

javashop做最好的Java网店系统

Java b2b2c系统

Java 多用户商城

Java 多店铺商城

Java 多店铺系统

Java CMS系统

Java O2O系统

Java 商城APP

官网请访问:www.javamall.com.cn

javashop log4j使用手册

Log4j
功能:

log4j 为记录项目日常日志的记录功能,可以把项目的所有级别的日志信息都放在本地来进行管理。方便查找记录各种错误信息。

A)  Log4j 路径
在本项目的resource包下可以找到log4j的配置文件,log4j.properties
B)  Log4j的日志输出路径
log4j.appender.CBB.File=d:/redwine/logs/eop/enation.log  日志输出的本地路径
C)  使用方法:
级别顺序(低到高): DEBUG < INFO < WARN < ERROR < FATAL
设置输出的级别以及日志输出的目的地                log4j.rootLogger=ERROR,CZZ
设置com.enation包下的所有类日志输出级别                                                                           log4j.category.com.enation=ERROR ,CBB,
还有其他的是为spring,struts2,xwork,配置输出的级别和目的地、
Log4j.appender 设置日志输出的目的地位置,
log4j.appender.CAA=org.apache.log4j.ConsoleAppender 为CAA设置日志输出的类型可以是以下几种
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
log4j.appender.CAA.layout=org.apache.log4j.PatternLayout    为CAA的输出端的layout是哪种类型,可以是以下几种
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
6. log4j.appender.CAA.layout.ConversionPattern=[%p] %-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c.%M:%L]  %m%n    如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern,打印参数如下:
l   [QC]是log信息的开头,可以为任意字符,例如项目简称。
l   %p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
l   %d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
l  %r: 输出自应用启动到输出该log信息耗费的毫秒数
l   %c: 输出日志信息所属的类目,通常就是所在类的全名
l   %t: 输出产生该日志事件的线程名
l   %l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10)……….不一 一列举了

D)  代码中调用
在完成某个功能后调用,例如:
if (logger.isDebugEnabled()) {
logger.debug(“保存商品数据完成”);
}

javashop做最好的Java网店系统

Java b2b2c系统

Java 多用户商城

Java 多店铺商城

Java 多店铺系统

Java CMS系统

Java O2O系统

Java 商城APP

官网请访问:www.javamall.com.cn