<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>guo_david_wei</title>
    <description></description>
    <link>http://guo-david-wei.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>项目中重要的代码</title>
        <author>guo_david_wei</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://guo-david-wei.javaeye.com">guo_david_wei</a>&nbsp;
          链接：<a href="http://guo-david-wei.javaeye.com/blog/202148" style="color:red;">http://guo-david-wei.javaeye.com/blog/202148</a>&nbsp;
          发表时间: 2008年06月11日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          web.xml<br />&lt;?xml version="1.0" encoding="UTF-8"?><br />&lt;web-app xmlns="http://java.sun.com/xml/ns/j2ee"<br />	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"<br />	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><br />	&lt;!--配置spring的applicationContext配置文件	--><br />	&lt;context-param><br />		&lt;param-name>contextConfigLocation&lt;/param-name><br />		&lt;param-value><br />			/WEB-INF/applicationContext*.xml<br />		&lt;/param-value><br />	&lt;/context-param><br />	&lt;servlet><br />		&lt;servlet-name>context&lt;/servlet-name><br />		&lt;servlet-class><br />			org.springframework.web.context.ContextLoaderServlet<br />		&lt;/servlet-class><br />		&lt;load-on-startup>1&lt;/load-on-startup><br />	&lt;/servlet><br />	&lt;!--配置struts的控制器组件	--><br />	&lt;servlet><br />		&lt;servlet-name>action&lt;/servlet-name><br />		&lt;servlet-class><br />			org.apache.struts.action.ActionServlet<br />		&lt;/servlet-class><br />		&lt;init-param><br />			&lt;param-name>config&lt;/param-name><br />			&lt;param-value><br />				/WEB-INF/struts-config.xml<br />			&lt;/param-value><br />		&lt;/init-param><br />		&lt;init-param><br />			&lt;param-name>debug&lt;/param-name><br />			&lt;param-value>3&lt;/param-value><br />		&lt;/init-param><br />		&lt;init-param><br />			&lt;param-name>detail&lt;/param-name><br />			&lt;param-value>3&lt;/param-value><br />		&lt;/init-param><br />		&lt;load-on-startup>0&lt;/load-on-startup><br />	&lt;/servlet><br />	&lt;!--该操作用于对dwr进行配置	--><br />	&lt;servlet><br />		&lt;servlet-name>dwr-invoker&lt;/servlet-name><br />		&lt;servlet-class><br />			org.directwebremoting.servlet.DwrServlet<br />		&lt;/servlet-class><br />		&lt;init-param><br />			&lt;param-name>debug&lt;/param-name><br />			&lt;param-value>true&lt;/param-value><br />		&lt;/init-param><br />		&lt;load-on-startup>2&lt;/load-on-startup><br />	&lt;/servlet><br /><br />	&lt;servlet-mapping><br />		&lt;servlet-name>action&lt;/servlet-name><br />		&lt;url-pattern>*.do&lt;/url-pattern><br />	&lt;/servlet-mapping><br />	&lt;servlet-mapping><br />		&lt;servlet-name>dwr-invoker&lt;/servlet-name><br />		&lt;url-pattern>/dwr/*&lt;/url-pattern><br />	&lt;/servlet-mapping><br />	&lt;welcome-file-list><br />		&lt;welcome-file>index.html&lt;/welcome-file><br />		&lt;welcome-file>index.jsp&lt;/welcome-file><br />	&lt;/welcome-file-list><br />&lt;/web-app><br />dwr.xml<br />&lt;?xml version="1.0" encoding="UTF-8"?><br />&lt;!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd"><br />&lt;!--&lt;!DOCTYPE dwr SYSTEM "dwr20.dtd" >--><br />&lt;dwr><br />	&lt;allow><br />		&lt;create javascript="showVote" creator="spring" scope="script"><br />			&lt;param name="beanName" value="voteDwr" /><br />			&lt;include method="getAllVote" /><br />			&lt;include method="createVote" /><br />			&lt;include method="deleteVote" /><br />			&lt;include method="createVoteCounter" /><br />			&lt;include method="findVoteByid" /><br />			&lt;include method="updateVote"/><br />		&lt;/create><br />		&lt;convert match="org.david.hib.model.Vote" converter="bean"><br />			&lt;param name="include" value="id,name,counter" /><br />		&lt;/convert><br />	&lt;/allow><br />&lt;/dwr><br />struts-config.xml<br />&lt;controller<br />		processorClass="org.springframework.web.struts.DelegatingRequestProcessor" /><br />application.xml<br />&lt;?xml version="1.0" encoding="UTF-8"?><br />&lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><br /><br />&lt;beans><br /><br /><br />	&lt;bean id="datasource"<br />		class="org.apache.commons.dbcp.BasicDataSource"><br />		&lt;property name="driverClassName"><br />			&lt;value>com.microsoft.jdbc.sqlserver.SQLServerDriver&lt;/value><br />		&lt;/property><br />		&lt;property name="url"><br />			&lt;value>jdbc:microsoft:sqlserver://localhost:1433&lt;/value><br />		&lt;/property><br />		&lt;property name="username"><br />			&lt;value>sa&lt;/value><br />		&lt;/property><br />		&lt;property name="password"><br />			&lt;value>sa&lt;/value><br />		&lt;/property><br />	&lt;/bean><br />	&lt;bean id="sessionFactoryId"<br />		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><br />		&lt;property name="dataSource"><br />			&lt;ref bean="datasource" /><br />		&lt;/property><br />		&lt;property name="hibernateProperties"><br />			&lt;props><br />				&lt;prop key="hibernate.dialect"><br />					org.hibernate.dialect.SQLServerDialect<br />				&lt;/prop><br />				&lt;prop key="hibernate.show_sql"><br />					true<br />				&lt;/prop><br />			&lt;/props><br />		&lt;/property><br />		&lt;property name="mappingResources"><br />			&lt;list><br />				&lt;value>org/accp/hib/model/CustomerType.hbm.xml&lt;/value><br />				&lt;value>org/accp/hib/model/ManagerInfo.hbm.xml&lt;/value><br />				&lt;value>org/accp/hib/model/StockIn.hbm.xml&lt;/value><br />				&lt;value>org/accp/hib/model/Consume.hbm.xml&lt;/value><br />				&lt;value>org/accp/hib/model/Hardware.hbm.xml&lt;/value><br />				&lt;value><br />					org/accp/hib/model/ThingBusinessSingle.hbm.xml<br />				&lt;/value><br />				&lt;value>org/accp/hib/model/HandDuty.hbm.xml&lt;/value><br />				&lt;value>org/accp/hib/model/StockOut.hbm.xml&lt;/value><br />				&lt;value><br />					org/accp/hib/model/RoomBusinessSingle.hbm.xml<br />				&lt;/value><br />				&lt;value>org/accp/hib/model/RoomType.hbm.xml&lt;/value><br />				&lt;value>org/accp/hib/model/CheckOut.hbm.xml&lt;/value><br />				&lt;value>org/accp/hib/model/ChangeRoom.hbm.xml&lt;/value><br />				&lt;value>org/accp/hib/model/ThingInfo.hbm.xml&lt;/value><br />				&lt;value>org/accp/hib/model/Type.hbm.xml&lt;/value><br />				&lt;value>org/accp/hib/model/BusinessTotal.hbm.xml&lt;/value><br />				&lt;value>org/accp/hib/model/RoomInfo.hbm.xml&lt;/value><br />				&lt;value>org/accp/hib/model/ListConsume.hbm.xml&lt;/value><br />				&lt;value>org/accp/hib/model/CustomerInfo.hbm.xml&lt;/value><br />				&lt;value>org/accp/hib/model/Preconcert.hbm.xml&lt;/value><br />				&lt;value>org/accp/hib/model/OpenInfo.hbm.xml&lt;/value><br />				&lt;value>org/accp/hib/model/SysEmail.hbm.xml&lt;/value><br />				&lt;value>org/accp/hib/model/HardwareList.hbm.xml&lt;/value>&lt;/list><br />		&lt;/property>&lt;/bean><br />	&lt;/beans><br />application-cmd.xml<br />&lt;bean id="transactionManager"<br />		class="org.springframework.orm.hibernate3.HibernateTransactionManager"><br />		&lt;property name="sessionFactory"><br />			&lt;ref bean="sessionFactoryId" /><br />		&lt;/property><br />	&lt;/bean><br />	&lt;!--设置事务通知对象--><br />	&lt;bean id="interceptor"<br />		class="org.springframework.transaction.interceptor.TransactionInterceptor"><br />		&lt;!--指定所要引用的事物管理;	--><br />		&lt;property name="transactionManager"><br />			&lt;ref bean="transactionManager" /><br />		&lt;/property><br />		&lt;!--指定当触发了目标对象的哪些方法时，引用事物管理	--><br />		&lt;property name="transactionAttributes"><br />			&lt;props><br />				&lt;prop key="create*">PROPAGATION_REQUIRED&lt;/prop><br />				&lt;prop key="delete*">PROPAGATION_REQUIRED&lt;/prop><br />				&lt;prop key="update*">PROPAGATION_REQUIRED&lt;/prop><br />			&lt;/props><br />		&lt;/property><br />	&lt;/bean><br />	&lt;!--定义代理,该代理用于指定一个通知对象，让它监视住某个对象<br />		注意：不需要设置该代理对象的id属性和name属性;--><br />	&lt;bean<br />		class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"><br />		&lt;!--	指定所要做通知的通知对象	--><br />		&lt;property name="interceptorNames"><br />			&lt;list><br />				&lt;value>interceptor&lt;/value><br />			&lt;/list><br />		&lt;/property><br />		&lt;!--指定所要拦截目标对象;		--><br />		&lt;property name="beanNames"><br />			&lt;list><br />				&lt;value>roomInfoCmd&lt;/value><br />			&lt;/list><br />		&lt;/property><br />	&lt;/bean><br /><br />jsp页面<br />&lt;%@ page language="java" pageEncoding="gbk"%><br /><br />&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><br />&lt;html><br />	&lt;head><br /><br />		&lt;title>My JSP 'index.jsp' starting page&lt;/title><br />		&lt;meta http-equiv="pragma" content="no-cache"><br />		&lt;meta http-equiv="cache-control" content="no-cache"><br />		&lt;meta http-equiv="expires" content="0"><br />		&lt;meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><br />		&lt;meta http-equiv="description" content="This is my page"><br />		&lt;!--<br />	&lt;link rel="stylesheet" type="text/css" href="styles.css"><br />	--><br />		&lt;script type="text/javascript"<br />			src="/BallotSystem/dwr/interface/showVote.js">&lt;/script><br />		&lt;script type="text/javascript" src="/BallotSystem/dwr/engine.js">&lt;/script><br />		&lt;script type="text/javascript" src="/BallotSystem/dwr/util.js">&lt;/script><br />		&lt;script type="text/javascript"><br />				/*总票数*/<br />				var totalCount=0;<br />				var begin = 0;<br />				var voteId=null;<br />				var updateId=null;<br />				/*将数据库中的数据加载到也页面*/<br />				function init()<br />				{<br />					totalCount=0;<br />					begin=0;<br />					$("voteResult").style.display="none";<br />					$("votePage").style.display="";<br />					$("voteManage").style.display="none";<br />					showVote.getAllVote(createTable);<br />				}<br />				/*将读取出来的数据填充到表格中*/<br />				function createTable(data)<br />				{<br />					DWRUtil.removeAllRows("allVote");<br />					DWRUtil.setEscapeHtml(false);<br />					DWRUtil.addRows("allVote",data,cellfuncs,options);<br />				}<br />				/*行处理函数*/<br />				var cellfuncs=[<br />					function(data)<br />					{<br />						return "&lt;input type='radio' value='"+data.id+"' name='type' onchange='createVoteId(this.value)'>";<br />					},<br />					function(data)<br />					{<br />						return data.name;<br />					}<br />				];<br />				/*行样式处理*/<br />				var options =<br />				{<br />					rowCreator:function(options)<br />					{<br />						var row = document.createElement("tr");<br />						row.style.backgroundColor = "white";<br />						return row;<br />					}<br />				};<br />				/*获取点击事件*/<br />				function getClick(value)<br />				{<br />					if(value==1)<br />					{<br />						/*投票*/<br />						if(voteId==null)<br />						{<br />							alert("请选择选项!");	<br />							return ;<br />						}<br />						showVote.createVoteCounter(voteId);<br />						voteId=null;<br />						$("voteResult").style.display="";<br />						$("votePage").style.display="none";<br />						showVote.getAllVote(createTableSelect);		<br />					}<br />					else if(value==2)<br />					{<br />						/*查看投票*/<br />						$("voteResult").style.display="";<br />						$("votePage").style.display="none";<br />						showVote.getAllVote(createTableSelect);			<br />					}<br />					else<br />					{	<br />						/*管理投票*/<br />						totalCount=0;<br />						begin=0;<br />						$("voteResult").style.display="none";<br />						$("votePage").style.display="none";<br />						$("voteManage").style.display="";<br />						showVote.getAllVote(createTableManage);			<br />					}<br />				}<br />				/*查看投票结果*/<br />				function createTableSelect(data)<br />				{<br />					for(var i=0;i&lt;data.length;i++)<br />					{<br />						totalCount=totalCount+data[i].counter;<br />					}<br />					DWRUtil.removeAllRows("allVoteResult");<br />					DWRUtil.setEscapeHtml(false);<br />					DWRUtil.addRows("allVoteResult",data,cellfuncResult,options);<br />				}<br />				/*将查看结果信息添加到表格中*/<br />				var cellfuncResult=[<br />					function(data){<br />						begin=begin+1;<br />						return "["+begin+"]";<br />					},<br />					function(data)<br />					{<br />						return data.name;<br />					},<br />					function(data)<br />					{<br />						var mid=(data.counter/totalCount)*100;<br />						var hr="&lt;img src='image/mm.jpg' width='"+mid*5+"' height='25'>";<br />						var str = "投票率:   "+hr+Math.round(mid)+"%  [得:"+data.counter+"票 共: "+totalCount+"票]";<br />						return str;<br />					}<br />				];<br />				/*添加投票选项*/<br />				function createVote()<br />				{<br />					var projectName=$("projectName").value;<br />					if(projectName==""||projectName.length&lt;1)<br />					{<br />						alert("请输入！");<br />						return ;<br />					}<br />					$("projectName").value="";<br />					DWREngine.beginBatch();<br />					showVote.createVote(projectName);<br />					showVote.getAllVote(createTableManage);			<br />					DWREngine.endBatch();<br />				}<br />				/*管理投票部分*/<br />				function createTableManage(data)<br />				{<br />					totalCount=0;<br />					begin=0;<br />					for(var i=0;i&lt;data.length;i++)<br />					{<br />						totalCount=totalCount+data[i].counter;<br />					}<br />					DWRUtil.removeAllRows("allVoteManage");<br />					DWRUtil.setEscapeHtml(false);<br />					DWRUtil.addRows("allVoteManage",data,cellfuncManage,options);<br />				}<br />				/*管理投票的行处理*/<br />				var cellfuncManage=[<br />					function(data){<br />						begin=begin+1;<br />						return "["+begin+"]";<br />					},<br />					function(data)<br />					{<br />						return data.name;<br />					},<br />					function(data)<br />					{<br />						var mid=(data.counter/totalCount)*100;<br />						var hr="&lt;img src='image/mm.jpg' width='"+mid*4+"' height='25'>";<br />						var str = "投票率:   "+hr+Math.round(mid)+"%  [得:"+data.counter+"票 共: "+totalCount+"票]";<br />						return str;<br />					},<br />					function(data)<br />					{<br />						return "&lt;a href='#' name='"+data.id+"' onclick='showUpdateVote(this.name)'>[修改]&lt;/a>";<br />					},<br />					function(data)<br />					{<br />						return "&lt;a href='#' name='"+data.id+"' onclick='deleteVote(this.name)'>[删除]&lt;/a>";<br />					}<br />				];<br />				/*删除投票*/<br />				function deleteVote(value)<br />				{<br />					DWREngine.beginBatch();<br />					showVote.deleteVote(value);		<br />					showVote.getAllVote(createTableManage);						<br />					DWREngine.endBatch();<br />				}<br />				/*给投票id赋值*/<br />				function createVoteId(value)<br />				{<br />					voteId=value;<br />				}<br />				/*显示修改投票项*/<br />				function showUpdateVote(value)<br />				{<br />					$("voteManage").style.display="none";<br />					$("voteUpdate").style.display="";<br />					showVote.findVoteByid(value,function(data){<br />						DWRUtil.setValues(data);<br />					});<br />					updateId=value;<br />				}<br />				/*修改投票项，返回*/<br />				function updateReturn()<br />				{<br />					$("voteManage").style.display="";<br />					$("voteUpdate").style.display="none";<br />				}<br />				/*修改投票项*/<br />				function updateVote()<br />				{<br />					var vote={id:updateId,name:null,counter:null};<br />					DWREngine.beginBatch();<br />					DWRUtil.getValues(vote);<br />					updateReturn();<br />					showVote.updateVote(vote);<br />					showVote.getAllVote(createTableManage);			<br />					DWREngine.endBatch();<br />				}<br />		&lt;/script><br />	&lt;/head><br /><br />	&lt;body onload="init();"><br />		&lt;div id="votePage"><br />			&lt;table bgcolor="sky-blue" border="1" width="950"><br />				&lt;tr><br />					&lt;th width="150"><br />						投票<br />					&lt;/th><br />					&lt;th align="center" width="800"><br />						选项<br />					&lt;/th><br />				&lt;/tr><br />				&lt;tbody id="allVote"><br />				&lt;/tbody><br />				&lt;tr><br />					&lt;th align="center" colspan="2"><br />						&lt;a href="#" onclick="getClick(this.name)" name="1"> [投票] &lt;/a><br />						&lt;a href="#" onclick="getClick(this.name)" name="2"> [查看投票结果] &lt;/a><br />						&lt;a href="#" onclick="getClick(this.name)" name="3"> [管理投票] &lt;/a><br />					&lt;/th><br />				&lt;/tr><br />			&lt;/table><br />		&lt;/div><br />		&lt;div id="voteResult" style="display: none"><br />			&lt;table bgcolor="sky-blue" border="1" width="950"><br />				&lt;tr><br />					&lt;th width="150"><br />						序号<br />					&lt;/th><br />					&lt;th width="150"><br />						选项<br />					&lt;/th><br />					&lt;th width="650"><br />						投票率<br />					&lt;/th><br />				&lt;/tr><br />				&lt;tbody id="allVoteResult"><br />				&lt;/tbody><br />				&lt;tr><br />					&lt;th colspan="3" align="center"><br />						&lt;a href="#" onclick="init()"> [返回首页] &lt;/a><br />					&lt;/th><br />				&lt;/tr><br />			&lt;/table><br />		&lt;/div><br />		&lt;div id="voteManage" style="display: none"><br />			&lt;center><br />				&lt;table bgcolor="sky-blue" border="1" width="600"><br />					&lt;tr><br />						&lt;th width="200"><br />							添加投票项目<br />						&lt;/th><br />						&lt;td width="300"><br />							&lt;input type="text" id="projectName"><br />						&lt;/td><br />						&lt;td><br />							&lt;input type="button" value="添加" onclick="createVote()"><br />						&lt;/td><br />					&lt;/tr><br />				&lt;/table><br />			&lt;/center><br />			&lt;br><br />			&lt;table bgcolor="sky-blue" border="1" width="950"><br />				&lt;tr><br />					&lt;th width="120"><br />						序号<br />					&lt;/th><br />					&lt;th width="120"><br />						选项<br />					&lt;/th><br />					&lt;th width="550"><br />						投票率<br />					&lt;/th><br />					&lt;th colspan="2"><br />						行为<br />					&lt;/th><br />				&lt;/tr><br />				&lt;tbody id="allVoteManage"><br />				&lt;/tbody><br />				&lt;tr><br />					&lt;th colspan="5" align="center"><br />						&lt;a href="#" onclick="init()"> [返回首页] &lt;/a><br />					&lt;/th><br />				&lt;/tr><br />			&lt;/table><br />		&lt;/div><br />		&lt;div id="voteUpdate" style="display: none"><br />			&lt;center><br />				&lt;table bgcolor="sky-blue" border="1" width="450"><br />					&lt;tr><br />						&lt;th align="center" colspan="2"><br />							修改投票选项<br />						&lt;/th><br />					&lt;/tr><br />					&lt;tbody><br />						&lt;tr bgcolor="white"><br />							&lt;th align="center"><br />								项目名称<br />							&lt;/th><br />							&lt;td align="left"><br />								&lt;input type="text" id="name"><br />							&lt;/td><br />						&lt;/tr><br />						&lt;tr bgcolor="white"><br />							&lt;th align="center"><br />								票数<br />							&lt;/th><br />							&lt;td align="left"><br />								&lt;input type="text" id="counter"><br />							&lt;/td><br />						&lt;/tr><br />					&lt;/tbody><br />					&lt;tr><br />						&lt;th align="center" colspan="2"><br />							&lt;a href="#" onclick="updateVote();"> [修改] &lt;/a><br />							&lt;a href="#" onclick="updateReturn();"> [返回] &lt;/a><br />						&lt;/th><br />					&lt;/tr><br />				&lt;/table><br />			&lt;/center><br />		&lt;/div><br />	&lt;/body><br />&lt;/html>
          <br/>
          <span style="color:red;">
            <a href="http://guo-david-wei.javaeye.com/blog/202148#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/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 11 Jun 2008 14:45:39 +0800</pubDate>
        <link>http://guo-david-wei.javaeye.com/blog/202148</link>
        <guid>http://guo-david-wei.javaeye.com/blog/202148</guid>
      </item>
  </channel>
</rss>