<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>飘雪无痕</title>
    <description></description>
    <link>http://zhxp791008.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>终于完成我的电脑的linux安装</title>
        <author>zhxp791008</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhxp791008.javaeye.com">zhxp791008</a>&nbsp;
          链接：<a href="http://zhxp791008.javaeye.com/blog/195369" style="color:red;">http://zhxp791008.javaeye.com/blog/195369</a>&nbsp;
          发表时间: 2008年05月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          以前第一次安装linux,一次搞定.自从换了电脑后.安装N多次都没有成功.. <br />就在我没有信心的时候.搞定了.可以! <br /><br />vmware要用5.5以上,linux用的是rea hat9. <br />具体原因没有搞清楚.但是可以肯定的是双核和硬盘的原因. <br />一直说找不到文件(设备).<br />不管啥原因,终于搞定了.可以开始研究那个东东.<br />同时完成网络的设置,又花去了半天的时间.还过还是搞通了...
          <br/>
          <span style="color:red;">
            <a href="http://zhxp791008.javaeye.com/blog/195369#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 21 May 2008 17:40:09 +0800</pubDate>
        <link>http://zhxp791008.javaeye.com/blog/195369</link>
        <guid>http://zhxp791008.javaeye.com/blog/195369</guid>
      </item>
      <item>
        <title>数组快速查找算法</title>
        <author>zhxp791008</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhxp791008.javaeye.com">zhxp791008</a>&nbsp;
          链接：<a href="http://zhxp791008.javaeye.com/blog/192839" style="color:red;">http://zhxp791008.javaeye.com/blog/192839</a>&nbsp;
          发表时间: 2008年05月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          给你一个固定的数组  比如  1,200,231,200,12,200,1<br />你把2个1和3个200选出来 .<br />大家讨论下.
          <br/>
          <span style="color:red;">
            <a href="http://zhxp791008.javaeye.com/blog/192839#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 14 May 2008 09:54:52 +0800</pubDate>
        <link>http://zhxp791008.javaeye.com/blog/192839</link>
        <guid>http://zhxp791008.javaeye.com/blog/192839</guid>
      </item>
      <item>
        <title>JBPM如何支持用户自定义流程(讨论)</title>
        <author>zhxp791008</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhxp791008.javaeye.com">zhxp791008</a>&nbsp;
          链接：<a href="http://zhxp791008.javaeye.com/blog/192828" style="color:red;">http://zhxp791008.javaeye.com/blog/192828</a>&nbsp;
          发表时间: 2008年05月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          上次搞了个spring与jpbm的集成后.就一直放下没有继续深入研究..<br />现在想研究下JBPM如何支持用户自定义流程.想学习下大家的思路和经验..<br />欢迎大家发表...
          <br/>
          <span style="color:red;">
            <a href="http://zhxp791008.javaeye.com/blog/192828#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 14 May 2008 09:32:42 +0800</pubDate>
        <link>http://zhxp791008.javaeye.com/blog/192828</link>
        <guid>http://zhxp791008.javaeye.com/blog/192828</guid>
      </item>
      <item>
        <title>利用validator.js完成必填内容的红&quot;*&quot;提示</title>
        <author>zhxp791008</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhxp791008.javaeye.com">zhxp791008</a>&nbsp;
          链接：<a href="http://zhxp791008.javaeye.com/blog/182565" style="color:red;">http://zhxp791008.javaeye.com/blog/182565</a>&nbsp;
          发表时间: 2008年04月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在js中用Validator.Validate($("form1"),3)进行验证.<br />同时有必填的内容后也要用红"*"进行标识.<br />1种方法.在必填的输入框后加入红"*",工作量大.难维护.<br />2种方法.在window的onload事件中加入Validator.Validate($("form1"),4);<br />完成所有页面的修改.<br />当然修改下validator.js的代码,将提示的CSS改下(改成小红**)就可以了.
          <br/>
          <span style="color:red;">
            <a href="http://zhxp791008.javaeye.com/blog/182565#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 14 Apr 2008 14:12:50 +0800</pubDate>
        <link>http://zhxp791008.javaeye.com/blog/182565</link>
        <guid>http://zhxp791008.javaeye.com/blog/182565</guid>
      </item>
      <item>
        <title>第一次整的ajax分页</title>
        <author>zhxp791008</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhxp791008.javaeye.com">zhxp791008</a>&nbsp;
          链接：<a href="http://zhxp791008.javaeye.com/blog/182559" style="color:red;">http://zhxp791008.javaeye.com/blog/182559</a>&nbsp;
          发表时间: 2008年04月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          列可进行配置和自定义渲染方法.<br />需要prototype.js和一个HashMap的js实现,在JSP中用<br />//分页的公有方法<br />function render(parmetersName,tableName,url)<br />{<br />	var parmeters = "name="+$(parmetersName).value;<br />			var grid = new Grid(tableName,url,parmeters);<br />			grid.render();}<br /><br /><br />//存放页面grid的HashMap<br />var gridmap = new HashMap();<br />//页面表格类<br />var Grid = Class.create();<br />Grid.prototype = {initialize:function(tableName,url,parmeter)<br />	{<br />		//表格的ID<br />		this.tableName = tableName;<br />		//获取数据的URL<br />		this.url = url;<br />		//查询参数<br />		this.parmeter = parmeter;<br />		//记录分页的信息<br />		this.page = new PageEntity();<br />		gridmap.put(this.tableName,this);<br />	},<br />	getData:function()<br />	{<br />		var tempParmeter = this.parmeter + "&currentPage=" + this.page.getCurrentPage()+"&pageSize="+this.page.getPageSize();<br />		var myAjax = new Ajax.Request(this.url,{method: 'post', parameters: tempParmeter, onSuccess:function(originalRequest){<br />			var data = new Data(eval(originalRequest.responseText),myAjax.tableName,myAjax.pageEntity);<br />			data.render();	<br />		},<br />		onFailure:function(originalRequest){alert("获取数据出错！请重试！");}});<br />		myAjax.tableName = this.tableName;<br />		myAjax.pageEntity = this.page;<br />	},<br />	render:function()<br />	{<br />		//先得到数据，后清除表格．在响应快的情况下．可以导致数据错误．因为表格还未清除完，而数据开始render.<br />		//本机测试．没有出现异常<br />		this.getData();<br />		this.clear();<br />	},<br />	//清除表格内容<br />	clear:function()	<br />	{<br />		var oTable = $(this.tableName);<br />		var oRows = oTable.rows;<br />		for(var i=oRows.length-1;i>0;i--)<br />		{<br />			oTable.deleteRow(i);<br />		}<br />	}<br />};<br />//解析返回的数据，生成表格<br />function Data(data,tableName,page)<br />{<br />	this.tableName = tableName;<br />	//TD映射字符串数组<br />	this.mapping = new Array();<br />	//存放解析返回的数据与映射,生成的表格数据<br />	this.dataArray = new Array();<br />	//服务器返回的数据<br />	this.data = data;<br />	//TD的自定义render<br />	this.renderFu = new HashMap();<br />	this.page = page;<br />	this.render = function()<br />	{<br />		var tb = $(this.tableName);<br />		var childRows = tb.rows;<br />		var childCells = childRows[0].cells;<br />		for(var i=0; i&lt;childCells.length; i++) {<br />			this.mapping.push(childCells[i].mapping);<br />			if(childCells[i].render)<br />			{<br />				this.renderFu.put(childCells[i].mapping,childCells[i].render);<br />			}<br />		}<br />		this.parseData();<br />		this.addData();<br />		this.addPage();<br />	};<br />	this.parseData=function()<br />	{<br />		var count = this.data[0];<br />		this.page.init(count.totalCount,this.page.pageSize);<br />		var dataList = count.List;<br />		for(var i=0;i&lt;dataList.length;i++)<br />		{<br />			var temp = dataList[i];<br />			var hash=new HashMap(); <br />			for(var j=0;j&lt;this.mapping.length;j++)<br />			{<br />				var virable = this.mapping[j];<br />				hash.put(virable,eval("temp."+virable));<br />			}<br />			this.dataArray.push(hash);<br />		}<br />	};<br />	this.addData=function()<br />	{<br />		var oTable = $(this.tableName);<br />		for(var i=0;i&lt;this.dataArray.length;i++)<br />		{<br />			var hashData = this.dataArray[i];<br />			var oRow=oTable.insertRow(oTable.rows.length);<br />			oRow.onmouseover =function(){<br />				this.bgColor='#e5edf7';<br />			};<br />			oRow.onmouseout=function(){<br />				this.bgColor='#FFFFFF';<br />			};<br />			for(var j=0;j&lt;this.mapping.length;j++)<br />			{<br />				var oCell=oRow.insertCell();<br />				if(this.renderFu.get(this.mapping[j]))<br />				{<br />					var fu = this.renderFu.get(this.mapping[j])+"('"+hashData.get(this.mapping[j])+"')";<br />					oCell.innerHTML=eval(fu);<br />				}<br />				else<br />				{<br />					oCell.innerText=hashData.get(this.mapping[j]);<br />				}<br />				oCell.className="table_table";<br />			}<br />		}<br />	};<br />	this.addPage = function()<br />	{<br />		var oTable = $(this.tableName);<br />		var oRow = oTable.insertRow(oTable.rows.length);<br />		var oCell = oRow.insertCell();<br />		oCell.colSpan = this.mapping.length;<br />		oCell.className = "table_page";<br />		oCell.innerHTML = this.page.buildHTML(this.tableName);<br />	};<br />}<br /><br /><br />//分页信息类<br />function PageEntity()<br />{<br />	this.totalRows = 0; // 记录总数<br />	this.totalPages = 0; // 总页数<br />	this.pageSize = 20; // 每页显示数据条数，默认为10条记录<br />	this.currentPage = 1; // 当前页数<br />	this.endPage = 1; // 结束页数<br />	this.hasPrevious = false; // 是否有上一页<br />	this.hasNext = false; // 是否有下一页<br />	this.buildHTML = function(tableName)<br />	{<br />		var html = "";<br />		html += "每页显示"+this.pageSize+"条&nbsp;共"+this.totalRows+"条/共"+this.totalPages+"页&nbsp;&nbsp;&nbsp;&nbsp;";<br />		if(this.currentPage!=1)<br />		{<br />			html += "&nbsp;&lt;a href='#' onclick=\"return submitPageQuery(1,'"+tableName+"')\">首页&lt;/a>";<br />		}<br />		if(this.currentPage!=1&&this.hasPrevious)<br />		{<br />			html += "&nbsp;&lt;a href='#' onclick=\"return submitPageQuery("+(parseInt(this.currentPage)-1)+",'"+tableName+"')\">上一页&lt;/a>";<br />		}<br />		if(this.currentPage!=this.totalPages&&this.hasNext)<br />		{<br />			html += "&nbsp;&lt;a href='#' onclick=\"return submitPageQuery("+(parseInt(this.currentPage)+1)+",'"+tableName+"')\">下一页&lt;/a>";<br />		}<br />		if(this.currentPage!=this.totalPages&&this.totalPages!=0)<br />		{<br />			html += "&nbsp;&lt;a href='#' onclick=\"return submitPageQuery("+this.endPage+",'"+tableName+"')\">尾页&lt;/a>";<br />		}<br />		if(this.totalPages!=0)<br />		{<br />			html += "&nbsp;跳转到&lt;select name='select' class='input' id='select' onchange=\"return submitPageQuery(this.value,'"+tableName+"')\">";<br />			for(var i=1;i&lt;=this.totalPages;i++)<br />			{<br />				if(this.currentPage==i)<br />				{<br />					html += "&lt;option value='"+i+"' selected>"+i+"&lt;/option>";<br />				}<br />				else<br />				{<br />					html += "&lt;option value='"+i+"'>"+i+"&lt;/option>";<br />				}<br />			}<br />		}<br />		return html;<br />	};<br />	this.init = function(totalRows,pageSize)<br />	 {<br />		this.totalRows = totalRows;<br />		this.pageSize = pageSize;<br />		this.totalPages = ((parseInt(this.totalRows) + parseInt(this.pageSize)) - 1) / parseInt(this.pageSize);<br />		this.totalPages = parseInt(this.totalPages);<br />		this.setEndPage(totalRows, pageSize);<br />		this.refresh(); // 刷新当前页面信息<br />	};<br />    this.setEndPage = function(totalRows,pageSize) {<br />		var pageNumber = totalRows / pageSize;<br />		pageNumber = parseInt(pageNumber);<br />		var pageRemainder = totalRows % pageSize;<br />		if (pageRemainder > 0) {<br />			this.endPage = pageNumber + 1;<br />		} else {<br />			this.endPage = pageNumber;<br />		}<br />	};<br />	this.getCurrentPage = function() <br />	{<br />		return this.currentPage;<br />	};<br />	this.setCurrentPage = function(currentPage)<br />	 {<br />		this.currentPage = currentPage;<br />		this.refresh();<br />	};<br />	this.getPageSize = function()<br />	 {<br />		return this.pageSize;<br />	};<br />	this.setPageSize = function(pageSize) {<br />		this.pageSize = pageSize;<br />		this.refresh();<br />	};<br />	this.getTotalPages = function() <br />	{<br />		return this.totalPages;<br />	};<br />	this.setTotalPages = function(totalPages) {<br />		this.totalPages = totalPages;<br />		this.refresh();<br />	};<br />	this.getTotalRows = function() <br />	{<br />		return this.totalRows;<br />	};<br />	this.setTotalRows = function(totalRows) {<br />		this.totalRows = totalRows;<br />		this.refresh();<br />	};<br />	this.first = function() <br />	{<br />		this.currentPage = 1;<br />		this.setHasPrevious(false);<br />		this.refresh();<br />	};<br />	this.previous = function()<br />	 {<br />		this.currentPage--;<br />		this.refresh();<br />	};<br />	this.next = function() <br />	{<br />		if (this.currentPage &lt; this.totalPages) {<br />			this.currentPage++;<br />		}<br />		this.refresh();<br />	};<br />	this.last = function() <br />	{<br />		this.currentPage = this.totalPages;<br />		this.setHasNext(false);<br />		this.refresh();<br />	};<br />	this.isHasNext = function()<br />	 {<br />		return this.hasNext;<br />	};<br />	this.setHasNext = function(hasNext) {<br />		this.hasNext = hasNext;<br />	};<br />	this.isHasPrevious = function()<br />	 {<br />		return this.hasPrevious;<br />	};<br />	this.setHasPrevious  =function(hasPrevious)<br />	{<br />		this.hasPrevious = hasPrevious;<br />	};<br />	this.refresh = function()<br />	 {<br />		if (this.totalPages &lt;= 1) {<br />			this.hasPrevious = false;<br />			this.hasNext = false;<br />		} else if (this.currentPage == 1) {<br />			this.hasPrevious = false;<br />			this.hasNext = true;<br />		} else if (this.currentPage == this.totalPages) {<br />			this.hasPrevious = true;<br />			this.hasNext = false;<br />		} else {<br />			this.hasPrevious = true;<br />			this.hasNext = true;<br />		}<br />	};<br />	this.getEndPage = function()<br />	{<br />		return this.endPage;<br />	}<br />}
          <br/>
          <span style="color:red;">
            <a href="http://zhxp791008.javaeye.com/blog/182559#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 14 Apr 2008 14:03:44 +0800</pubDate>
        <link>http://zhxp791008.javaeye.com/blog/182559</link>
        <guid>http://zhxp791008.javaeye.com/blog/182559</guid>
      </item>
      <item>
        <title>JBPM与Spring的集成开发(包括可视化,事务,业务关联,扩展等)</title>
        <author>zhxp791008</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhxp791008.javaeye.com">zhxp791008</a>&nbsp;
          链接：<a href="http://zhxp791008.javaeye.com/blog/182551" style="color:red;">http://zhxp791008.javaeye.com/blog/182551</a>&nbsp;
          发表时间: 2008年04月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          本人QQ号:107607700,欢迎交流<br /><br />1、  加入JBPM支持包<br /><br />下载jbpm-starters-kit-3.1.4在项目的classPath中加入jbpm-3.1.4.jar、jbpm-identity-3.1.2.jar、jbpm-webapp-3.1.2.jar,<br /><br />jbpm-3.1.4.jar必须加入，是JBPM的核心包；bpm-identity-3.1.2.jar为JBPM的用户权限验证包，如使用系统自身的用户表可不加入；jbpm-webapp-3.1.2.jar是WEB项目的包，包括流程发布，流程图显示，流程定义上传等。<br /><br />2、  与现有SSH系统集成<br /><br />A、 加入Spring支持包spring-modules-jbpm31.jar,该包加入了Spring对JBPM的包装，的有的集成都是在此包基础之上。<br /><br />B、 配置sessionFactoryForJbpm ,jbpmConfiguration,jbpmTemplate, jbpmDao<br /><br />    &lt;bean id="sessionFactoryForJbpm"       class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">       &lt;property name="mappingLocations">           &lt;list>              &lt;!-- 加载jbpm的配置文件,如不要jbpm的权限控制，可以在lib中去掉jbpm-identity-3.1.2.jar -->              &lt;value>classpath*:/org/jbpm/**/*.hbm.xml&lt;/value>           &lt;/list>       &lt;/property>       &lt;property name="hibernateProperties"           ref="myHibernateProperties" />       &lt;property name="dataSource" ref="myDataSource" /> <br />&lt;/bean><br /><br />    &lt;bean id="jbpmConfiguration"    class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">       &lt;property name="sessionFactory" ref="sessionFactoryForJbpm" />       &lt;property name="configuration" value="classpath:jbpm.cfg.xml" />&lt;!-- jbpm.cfg.xml 配置JBPM的参数，如邮件服务器地址等,保持默认即可,此文件需加入以SRC目录下。如目录不同，需同步更改此处配置&lt;/bean>&lt;!—如需加入更多的方法，可以在CustomerJbpmTemplate 中加入-->    &lt;bean id="jbpmTemplate"       class="com.col.frame.dao.jbpmDao.CustomerJbpmTemplate">       &lt;property name="jbpmConfiguration" ref="jbpmConfiguration" />&lt;/bean> &lt;!—jbpmDao是系统加入的abstract BEAN，所有的DAO都Extends此BEAN，这样子DAO可以不关心具体的JbpmTemplate是什么，是需要用getTemplate即可操作JBPM-->    &lt;bean id="jbpmDao" abstract="true"       class="com.col.frame.dao.jbpmDao.JbpmDaoHibernate">       &lt;property name="template" ref="jbpmTemplate" />&lt;/bean>这样就完成了JBPM与SPRING的集成，现在JBPM就可以和业务操作在一个事务完成。附：事务参考配置&lt;bean id="myTransactionManager"       class="org.springframework.orm.hibernate3.HibernateTransactionManager">       &lt;property name="sessionFactory" ref="sessionFactoryForJbpm" />    &lt;/bean>    &lt;bean id="beanNameProxy"       class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">       &lt;property name="beanNames">           &lt;value>*Manager&lt;/value>       &lt;/property>       &lt;property name="interceptorNames">           &lt;list>              &lt;value>transactionInterceptor&lt;/value>           &lt;/list>       &lt;/property>    &lt;/bean>    &lt;bean id="transactionInterceptor"       class="org.springframework.transaction.interceptor.TransactionInterceptor">       &lt;property name="transactionManager">           &lt;ref bean="myTransactionManager" />       &lt;/property>       &lt;property name="transactionAttributes">           &lt;props>              &lt;prop key="*">PROPAGATION_REQUIRED&lt;/prop>           &lt;/props>       &lt;/property> <br />&lt;/bean><br /><br />3、  加入可视化流程编辑器<br /><br />jbpm-starters-kit-3.1.4\jbpm-designer\jbpm-gpd-feature\eclipse中的两个目录中的文件就是Eclipse是JBPM可视化编辑器，建议以link方式加入。注意Eclipse版本的。<br /><br />完成后可以找到 <br /><br />加入JBPM的Eclipse配置，目的是新建一个JBPM项目时，Eclipse可以找到对应的JBPM包并加入到项目中来. <br /><br /> <br /><br />Location定位到\jbpm-starters-kit-3.1.4\jbpm下。<br /><br />4、  新建一个JBPM流程定义<br /><br /> <br /><br />目录位置最好是单独一个,如org.test.jpdl<br /><br />5、  新建完成后，在对应目录下将有三个文件，processimage.jpg是流程定义的效果图，gpd.xml是流程定义各任务的位置数据，processdefinition.xml是真正的流程定义。我们只是对processdefinition.xml进行更改。<br /><br />6、  一个简单的流程定义<br /><br /> <br /><br />processdefinition.xml内容<br /><br />&lt;?xml version="1.0" encoding="UTF-8"?>&lt;!—name为流程定义的名-->&lt;process-definition xmlns="" name="hello">&lt;!—泳道配置，主要是用于设置任务的确良Actor-->    &lt;swimlane name="user">       &lt;assignment class="org.assignment.MyAssignment" />    &lt;/swimlane>    &lt;start-state name="start">       &lt;task name="input message">           &lt;controller>              &lt;variable name="message" access="read,write,required">&lt;/variable>           &lt;/controller>       &lt;/task>       &lt;transition name="send" to="show message">           &lt;action name="firstHandler" config-type="bean"           &lt;!—-如Handler中需用到Spring的资源，可以用spring的proxy-->    class="org.springmodules.workflow.jbpm31.JbpmHandlerProxy">&lt;!-- messageActionHandler 在Spring配置文件中的Bean-->              &lt;targetBean>messageActionHandler&lt;/targetBean>              &lt;factoryKey>jbpmConfiguration&lt;/factoryKey>           &lt;/action>       &lt;/transition>    &lt;/start-state>    &lt;end-state name="end1">&lt;/end-<br />processdefinition.xml内容 <br />&lt;?xml version="1.0" encoding="UTF-8"?> <br />&lt;!—name为流程定义的名--> <br />&lt;process-definition xmlns="" name="hello"> <br />&lt;!—泳道配置，主要是用于设置任务的Actor--> <br />&lt;swimlane name="user"> <br />&lt;assignment class="org.assignment.MyAssignment" /> <br />&lt;/swimlane> <br />&lt;start-state name="start"> <br />&lt;task name="input message"> <br />&lt;controller> <br />&lt;variable name="message" access="read,write,required">&lt;/variable> <br />&lt;/controller> <br />&lt;/task> <br />&lt;transition name="send" to="show message"> <br />&lt;action name="firstHandler" config-type="bean" <br />&lt;!—-如Handler中需用到Spring的资源，可以用spring的proxy--> class="org.springmodules.workflow.jbpm31.JbpmHandlerProxy"> <br />&lt;!-- messageActionHandler 在Spring配置文件中的Bean--> <br />&lt;targetBean>messageActionHandler&lt;/targetBean> <br />&lt;factoryKey>jbpmConfiguration&lt;/factoryKey> <br />&lt;/action> <br />&lt;/transition> <br />&lt;/start-state> <br />&lt;end-state name="end1">&lt;/end-state> <br />&lt;task-node name="show message"> <br />&lt;task name="message show" swimlane="user"> <br />&lt;controller> <br />&lt;variable name="message" access="read">&lt;/variable> <br />&lt;/controller> <br />&lt;/task> <br />&lt;transition name="ok" to="end1">&lt;/transition> <br />&lt;/task-node> <br />&lt;/process-definition> <br />7、 发布流程，各join,fork,task的处理(各具体的流程相关，可以参看JBPM文档) <br />8、 与业务的集成 <br />可以在流程任务上加入变量，如变量名为MyRequestID，存贮MyRequest业务表的ＩＤ，就可以详细记录每个任务的执行信息。 <br />9、 对JBPM的扩展 <br />如果JBPM的hibernate的操作不够，可以修改org.jbpm.db.hibernate.queries.hbm.xml加入对应的query,然后再在对应的类中加入相应的方法。
          <br/>
          <span style="color:red;">
            <a href="http://zhxp791008.javaeye.com/blog/182551#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 14 Apr 2008 13:49:20 +0800</pubDate>
        <link>http://zhxp791008.javaeye.com/blog/182551</link>
        <guid>http://zhxp791008.javaeye.com/blog/182551</guid>
      </item>
      <item>
        <title>理想的分页方案</title>
        <author>zhxp791008</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhxp791008.javaeye.com">zhxp791008</a>&nbsp;
          链接：<a href="http://zhxp791008.javaeye.com/blog/182548" style="color:red;">http://zhxp791008.javaeye.com/blog/182548</a>&nbsp;
          发表时间: 2008年04月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          首先明确的是:此方案不是解决怎样分页,而是解决page参数在service和dao中大量存在的问题.让程序员完全从分页中解脱出来. <br />大家可以尝试下.程序是否更加干净,程序员工作是否更少.现我的系统就是采用此种方式.<br />效果很好!  <br />以前的分页总是Action中获取分页信息.然后在service,dao的方法中传递参数进行分页查询,返回分页的信息.<br />   我上一个项目就是这样.导致service,dao中有大量的page参数.曾经想过用AOP方式进行分页参数的获取.填充.但是分页与不分页混乱,不易控制.<br /><br />改进了下用AOP的思路.完成此种分页方案.欢迎大家批评.但不要过激哟!我只是一个java新人而已,这样会打击我的....$#^%^&<br />系统采用SSH2.<br />整体有文件五个.<br /> 1.page.jsp.在需要分页的jsp中用&lt;jsp:include>包含.<br />2.page.js负责分页的js.<br />3.page的java类.包括totalRows,pageSize等.就是网上到处可见的page类写法.<br />如上三个文件中的属性要一致.<br />4.在ActionSupport中提供preparePage()方法.该方法负责收集jsp传递过来的分页信息,将生成的page对时象入到request的attribute中,供page.jsp使用.并且放到PageUtils类中.endPage()方法,结束分页.<br />5.PageUtils是该分页的核心所在.但是很简单.他有一个静态变量(TheadLocal类型)<br />6.修改Spring的源码.在查询之前取出PageUtils的值,如有进行分页,没有则不分页.<br /><br />整个分页架构完成.<br />程序员的工作.<br />1.在JSP中包含page.jsp<br />2.在Action中,如:<br />preparePage();<br />List&lt;User> userList = userManager.findAll();<br />endPage();<br /><br />List&lt;User> userList1 = userManager.findAll();<br />userList是分页,而userList1不分页.<br /><br />其余service,dao不需要关心分页东东.和不分页一样编写代码.<br /><br />本人QQ号:107607700,欢迎交流
          <br/>
          <span style="color:red;">
            <a href="http://zhxp791008.javaeye.com/blog/182548#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 14 Apr 2008 13:44:27 +0800</pubDate>
        <link>http://zhxp791008.javaeye.com/blog/182548</link>
        <guid>http://zhxp791008.javaeye.com/blog/182548</guid>
      </item>
  </channel>
</rss>