重拾

重拾起博客,发现好久没写了,竟然孵化出了懒惰,还是像重新建起来,写写。

过去的几个月,自己做了好多决定,回想,一切都是不可思议,人生,就是这样,只有写在记忆里面的,才能明白,才能细细品味。享受人生要往前看,感悟人生只能往后看。

2011年9月7日于曾厝垵。

自己说过的一些话

翻开以前的一些记录,发现自己说过以下话,有点意思,无聊一下,特此记录。

有关技术:

1、ERP的核心是“每个人都应该面向系统操作”;

2、协同工作的关键是实现“你能知道我所知道的,而我能知道你的需求”

3、中国移动是最大的SNS。

4、ERP的用处就是农民将锄头换成拖拉机。

5、什么是ERP,ERP就是用电脑记账。

6、学编程就是哥哥追美眉,生活就像美眉追哥哥 。

7、中国的电子商务必将向国外进军,特别是传统线下品牌。

8、传统线下企业的电子商务的核心不是淘宝是自有平台。

9、技术的核心不是技术,而是业务。

10、人之所以称之为人,因为我们犯错误的频度远高于电脑。

有关电视剧杂感

1、电影永远是人们抽取的生活的一部分并删掉的一部分的那部分,但仍然为那一部分努力着。

2、每个男人都应该学会珍惜,每个女人都应学会满足。

3、是什么力量能让两个人拿一生当承诺?

4、男人以真心去守护爱情,以事业来守卫爱情!
5、爱一个人不是爱他全部,而是知其所需。

有关生活
1、什么事情到最后都归根结底还是钱的问题。

2、真正的幸福是自己知道要什么并且得到。

3、总是到下雨才想到雨伞,总是到拿雨伞时才发现不见了。总是到下雨才想到雨伞,总是到拿雨伞时才发现不见了。

4、不怕做错,只是怕做错没人提醒;不怕有人提醒,就怕自己当时没有接受。

5、从一个过程到另一个过程之中,你会发现很多东西。你以为懂了,当到最后,你才会发现,这是一个低级错。

6、最大的梦想就是最简单的、最平凡的。

7、我发现QQ空间里面无非两种:一是秀幸福,一种诉痛苦。

8、赚一辈子的钱,还是一辈子赚钱?

9、学经济的人中我计算机最好,学计算机的人中我经济学最好。

10、其实坚持不是那么难,只要不要有那么多借口外加少一点健忘。

amCharts入门教程1:什么是Amcharts?

Amcharts是一个非常优秀的FLASH图标组件,最新版本为可以接收CSV或XML文件数据,使用起来非常方便,支持HTML5,界面比JFreeChart华丽很多,而且可以与用户交互,动画效果非常漂亮。
它的官网:http://www.amcharts.com
下载地址:http://www.amcharts.com/download

AmCharts可以免费使用,但免费使用的时候会在图表的左上角显示该网站的链接。网上有很多破解版本,其中有一种在flash的目录下加key文件的,经测试,这个方法已经失效。

Json下的Positioned Update not supported解决方法

今天使用json输出的时候报了这个错误,原因找了一下,发现使用hibernate自动生成的一些类会出现这个情况,主要是因为hibernate使用了延迟加载所造成的缘故。
因为我的系统前台使用的jquery-easeyui的dataGrid表格,所以,只能重新建一个类来进行。代码如下
package com.mrzeng.action;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.huashui.authentication.AuthName;
import org.huashui.dto.PageBean;
import org.huashui.service.IPaginate;
import org.huashui.util.StringUtils;
import org.huashui.util.WebUtils;

import com.mrzeng.hibernate.Category;
import com.mrzeng.hibernate.Crawlrecord;
import com.mrzeng.hibernate.Saleinfo;
import com.mrzeng.hibernate.Shop;
import com.mrzeng.hibernate.Shopdetail;
import com.mrzeng.service.IAnalysisService;

/**
 * @fileName ShopdetailAction.java
 * @author  曾华水
 * @email zenghuashui@gmail.com
 * @date Jun 10, 2011
 * @time 9:07:13 AM
 * 代码类代码编写规约:add-增加,edit修改,remove删除,list列出全部,排除用ex,tree代表树
 */
@ParentPackage("huashui-default")
@Namespace("/admin")
@Results( {
		@Result(name = "saleinfo", location = "/WEB-INF/data/saleinfo.jsp"),
		@Result(name = "json", location = "/WEB-INF/view/json.jsp"),
		@Result(name = "jsonfilter", location = "/WEB-INF/view/jsonfilter.jsp"),
		@Result(name = "jsonfiltertype", location = "/WEB-INF/view/jsonfiltertype.jsp") })
public class SaleinfoAction {

	@Resource
	private IPaginate paginate;
	@Resource
	private IAnalysisService analysisService;
	private Integer rows;
	private Integer page;
	private Integer total;
	private String sort;
	private String order;

	public String getSort() {
		return sort;
	}
	public void setSort(String sort) {
		this.sort = sort;
	}
	public String getOrder() {
		return order;
	}
	public void setOrder(String order) {
		this.order = order;
	}
	public Integer getRows() {
		return rows;
	}
	public void setRows(Integer rows) {
		this.rows = rows;
	}
	public Integer getPage() {
		return page;
	}
	public void setPage(Integer page) {
		this.page = page;
	}
	public Integer getTotal() {
		return total;
	}
	public void setTotal(Integer total) {
		this.total = total;
	}
	@Action("data_saleinfo")
	@AuthName("DATA_SALEINFO")
	public String index(){
		List shops = analysisService.listShop();
		List crawls = analysisService.listCrawlrecord();
		StringBuilder sb = new StringBuilder();
		for (Shop shop : shops) {
			if (!StringUtils.isNull(sb.toString())) {
				sb.append(",\r\n");
			}
			sb.append("{").append("id:").append(shop.getId()).append(
					",name:\"").append(shop.getName()).append(
					"\"}\r\n");
		}
		WebUtils.getRequest().setAttribute("shops", sb.toString());

		StringBuilder sb2 = new StringBuilder();
		for (Crawlrecord crawlrecord : crawls) {
			if (!StringUtils.isNull(sb2.toString())) {
				sb2.append(",\r\n");
			}
			sb2.append("{").append("id:").append(crawlrecord.getId()).append(
					",name:\"").append(StringUtils.dateToString(crawlrecord.getCrawltime(), "yyyy-MM-dd hh:mm:ss")).append(
					"\"}\r\n");
		}
		WebUtils.getRequest().setAttribute("crawls", sb2.toString());
		return "saleinfo";
	}
	@Action("data_saleinfo_list")
	@AuthName("DATA_SALEINFO")
	public String list(){
		Map data = new HashMap();
		StringBuilder sql = new StringBuilder();
		sql.append("from ").append(Saleinfo.class.getSimpleName());
		sql.append(" where 1=1");

		if (!StringUtils.isNull(sort) && !StringUtils.isNull(order)) {
			if (order.trim().equalsIgnoreCase("desc")
					|| order.trim().equalsIgnoreCase("asc"))
				sql.append(" order by ").append(sort).append(" ").append(order);
		}
		PageBean pageBean = new PageBean();
		pageBean.setPage(page);
		pageBean.setPageSize(rows);

		pageBean.setListSQL(sql.toString());
		try {
			pageBean.setCount(paginate.getTotalCount(pageBean).intValue());
		} catch (Exception e) {
			e.printStackTrace();
		}

		List list = paginate.getList(pageBean);
		List rList = new ArrayList();
		for (Saleinfo saleinfo : list) {
			SaleinfoBean bean = new SaleinfoBean();
			bean.setBuyer(saleinfo.getBuyer());
			bean.setBuyerCode(saleinfo.getBuyerCode());
			bean.setBuyerLevel(saleinfo.getBuyerLevel());
			bean.setBuyNum(saleinfo.getBuyNum());
			bean.setBuyTime(saleinfo.getBuyTime());
			bean.setCrawlId(saleinfo.getCrawlrecord().getId());
			bean.setGoodDesc(saleinfo.getGoodDesc());
			bean.setGoodPrice(saleinfo.getGoodPrice());
			bean.setGoodTitle(saleinfo.getGoodTitle());
			bean.setGoodUrl(saleinfo.getGoodUrl());
			bean.setId(saleinfo.getId());
			bean.setShopId(saleinfo.getShop().getId());
			rList.add(bean);
		}
		data.put("rows", rList);
		data.put("total", pageBean.getCount());

		WebUtils.getRequest().setAttribute("data", data);
		WebUtils.getRequest().setAttribute("type", "Set");
		return "jsonfiltertype";

	}

	public class SaleinfoBean{
		private Long id;
		private Integer shopId;
		private Long  crawlId;
		private Date buyTime;
		private Integer buyNum;
		private String buyer;
		private String buyerCode;
		private Integer buyerLevel;
		private String goodTitle;
		private String goodDesc;
		private Double goodPrice;
		private String goodUrl;
		public Long getId() {
			return id;
		}
		public void setId(Long id) {
			this.id = id;
		}
		public Integer getShopId() {
			return shopId;
		}
		public void setShopId(Integer shopId) {
			this.shopId = shopId;
		}
		public Long getCrawlId() {
			return crawlId;
		}
		public void setCrawlId(Long crawlId) {
			this.crawlId = crawlId;
		}
		public Date getBuyTime() {
			return buyTime;
		}
		public void setBuyTime(Date buyTime) {
			this.buyTime = buyTime;
		}
		public Integer getBuyNum() {
			return buyNum;
		}
		public void setBuyNum(Integer buyNum) {
			this.buyNum = buyNum;
		}
		public String getBuyer() {
			return buyer;
		}
		public void setBuyer(String buyer) {
			this.buyer = buyer;
		}
		public String getBuyerCode() {
			return buyerCode;
		}
		public void setBuyerCode(String buyerCode) {
			this.buyerCode = buyerCode;
		}
		public Integer getBuyerLevel() {
			return buyerLevel;
		}
		public void setBuyerLevel(Integer buyerLevel) {
			this.buyerLevel = buyerLevel;
		}
		public String getGoodTitle() {
			return goodTitle;
		}
		public void setGoodTitle(String goodTitle) {
			this.goodTitle = goodTitle;
		}
		public String getGoodDesc() {
			return goodDesc;
		}
		public void setGoodDesc(String goodDesc) {
			this.goodDesc = goodDesc;
		}
		public Double getGoodPrice() {
			return goodPrice;
		}
		public void setGoodPrice(Double goodPrice) {
			this.goodPrice = goodPrice;
		}
		public String getGoodUrl() {
			return goodUrl;
		}
		public void setGoodUrl(String goodUrl) {
			this.goodUrl = goodUrl;
		}

	}
}

jqGrid进阶教程:3、jqGrid的数据格式化二

jqGrid是非常强大的,除了上一讲提到的预置的格式化外,还提供自定义的格式化方法,这种方法也是我比较喜欢的方法。
我们接上面的例子

$("#grid_id").jqGrid({
...
   colModel : [ {name:'sex', edittype:'select', editoptions:{value:"1:男;2:女"}} ... ],
...
});

此时,我们增加格式化

$("#grid_id").jqGrid({
...
   colModel : [ {name:'sex', edittype:'select', editoptions:{value:"1:男;2:女"}},formatter:function(cellvalue, options, row){
     if(cellvalue==1){
         return "男";
    }else{
        return "女";
   }
   } ... ],
...
});

这样操作起来就比较方便。我们也可以把这个方法独立出来,例如:我们在数据库设置的时候常用1来标示“是”,0标示“否”,这时候我们前台展示的时候肯定不能只显示1或者0,于是必须转换,如果比较多字段用到,我们就采用独立出来写一个。

function sexFmatter(cellvalue, options, rowObject){
         if(cellvalue==1){
         return "男";
    }else{
        return "女";
   }
}

在formatter属性后面填写方法名

$("#grid_id").jqGrid({
...
   colModel : [ {name:'sex', edittype:'select', editoptions:{value:"1:男;2:女"}},formatter: sexFmatter... ],
...
});

Centos的vsftp搭建方法

公司要架一台新的图片服务器,对比了centos下的几款ftp,最后还是继续选择vsftp。
搭建的方法如下:
一、下载安装
1、安装Vsftpd

yum -y install vsftpd*
  

2、安装PAM

yum -y install pam*
   

3、安装db4

yum -y install db4*

Read More »

jqGrid例子文件下载

最近慵懒了很多,很少来上面博一博,发下jqGrid的例子的全部文件。
jqGrid
由于文件太大,删掉了所有的jar包,jar是整合struts2.1+spring2.5+hibernate3.2

jqGrid进阶教程:1、jqGrid的样式无法正确显示的原因和解决办法

jqGrid引入后,执行,常常会碰到css无法像官方的demo一样正常显示,特别是字体还有一些弹出框,
Read More »

Centos/RedHat下安装gcc的方法

许多人安装centos和redhat的时候没有将开发工具包和开发库给打钩,从而在安装后要编译一些程序出现错误。
此时,安装方法有以下几种:fdc5f25c

Read More »

Linux中修改ip的办法

切换到root账户下
Read More »