<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>what is the RIA?  just it…&#124;&#124;咖啡兔个人作品</title>
	<atom:link href="http://www.wsria.cn/archives/tag/works/feed" rel="self" type="application/rss+xml" />
	<link>http://www.wsria.cn</link>
	<description>我们要的就是RIA……Let&#039;s do it now.</description>
	<lastBuildDate>Tue, 24 Aug 2010 01:46:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>工欲善其事，必先利其器</title>
		<link>http://www.wsria.cn/archives/1026</link>
		<comments>http://www.wsria.cn/archives/1026#comments</comments>
		<pubDate>Fri, 30 Jul 2010 02:29:17 +0000</pubDate>
		<dc:creator>咖啡兔</dc:creator>
				<category><![CDATA[程序员]]></category>
		<category><![CDATA[jqGrid]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[ria]]></category>
		<category><![CDATA[个人作品]]></category>
		<category><![CDATA[工作]]></category>
		<category><![CDATA[账务管理]]></category>

		<guid isPermaLink="false">http://www.wsria.cn/?p=1026</guid>
		<description><![CDATA[子曰:“工欲善其事,必先利其器。居是邦也,事其大夫之贤者,友其士之仁者 这句话是我近两年的座右铭，引用百科的解释：“工匠想要使（他的）工作做好，一定要先使工具锋利。比喻要做好一件事，准备工作非常重要。”；解释的很清楚，这就和做事要有计划是一个道理。 还有一个我欣赏的话： 无欲速，无见小利。欲速，则不达；见小利，则大事不成。 引用百科的解释：“欲：想要；速：快速；达：达到（目的）。过于急性反而不能达到目的。” 这些真理就如同孙子兵法一样适用，咱们也可以拿到今天来分析一下现在的情况；顺便说一下我写这篇文章的目的，因为开博客同时也建立了2个有关RIA开发的群所以有很多网友找我问问题，询问问题的可以分为两类： 第一类：新手 刚刚接触jQuery或者是Java Web编程的新人，Java和Javascript(jQuery)的基础比较薄弱，有些是刚刚接触SSH架构，有些是刚刚学习web编程，共同特点都是不知道自己要学习什么、怎么学习技术…… 他们来我博客找我或者在QQ群里面问，对于这类童鞋我的回答首先问了3个问题： 找准学习的目标 你是否准好了进入IT行业（当民工） 是否有编程的兴趣 对于第一点是给自己在IT路上找准定位，当然对于程序员来说是学习哪一门语言，例如：Java、C++、C#、PHP、.NET等等，当然如果从事基于Web的编程还要学习CSS、Javascript……，你找准了吗？ 对于第二点和第三点是心态，很多新人刚刚进入IT行业都会问同样的话题：IT行业发展好吗？IT行业累吗？ 我的回答很简单只有两个字：好、累。 就像今天一个到群里面来的一个正在培训的学生，公布一下聊天记录： Alexandra 23:07:25 it行业如何了 Alexandra 23:07:32 是不是可累了。。 咖啡兔 23:07:34 看你是否喜欢了 Alexandra 23:07:37 。。。 咖啡兔 23:07:41 IT累是肯定的 看得出这个新人有点汗了……他担心自己能不能承受，还有IT技术更新非常快，需要不间断的学习新技术才可以跟得上发展才不会被社会淘汰 Alexandra 23:03:53 晕，技术更新那么快，，，不活了。。。 像这种态度是万万不能有的，既然你选择了这一行就要坚持做下去；所以这里说到了对于软件的兴趣，兴趣是我们大家的良师益友是我们事半功倍的利器，如果没有兴趣再聪明的人也成不了气候，看大这里问一下自己有兴趣吗？ 就像我一样初三的时候用借亲戚的学习机和同学的学习机说明书学习五笔，后来学习basic语言一样，你有这样的兴趣吗？ 看完这些如果是新人仔细考虑一下吧……#&#38;（#&#38;￥（##&#38;（#&#38; 如果是选择了“没有”的人或许不再继续看下去了，那就留给那些选择“有”的童鞋们： 1、问问题 这里要说的是学习技术的心态，这么长时间来很多人在群里面问问题都是直接说XXX问题怎么解决，有没有使用XXX软件或者插件之类的；群是什么？群是大家讨论问题的一个平台，而有一部分人把群当成了所有知识的来源，就想咱们平常用到的框架或者各种插件使用方法，这些知识在哪里？怎么获取？这两个问题是新童鞋们要搞清楚的，当然还有一些经常这么问问题的老童鞋们；但凡开源软件（鄙视微软）都有官方的文档，而这种文档时机器重要的武器，他是我们获取技术的最佳途径也是最标准的途径，所以你要多看官网文档，像大家经常用到的SSH架构遍地都是，例如那些《无师自通XXX》、《21天精通XXX》，《XXX秘籍》等等……而且还有很多外国牛人写的书国人翻译的，所以这个没有什么问题，在SSH开发中遇到的问题首先要Google（不建议使用百度，技术百度不行，内事还凑合）有没有相同的问题，如果实在找不到再到群里面询问，问的时候也不要急如果有人知道肯定会帮你解决，要不然怎么会有那么多的开源软件供你用呀…… 2、学习新技术 而对于目前前端开发使用比较多的jQuery的插件就没有像SSH那么多的书可以看了，当然国内的和国外也有人写关于这方面的书，像国外的《jQuery实践》和国内的cssrain和小飞写的《锋利的jQuery》，都是讲jQuery核心库的知识……当然你也可以不看书而是看jQuery的API文档，官方的文档东西基本都是面面俱到因为这个也是判定一个程序、插件好坏的一个要素，就像我08年学习jQuery一样花了一周看了小飞那帮人翻译制作的CHM的API文档+写测试代码直接就在项目中使用了，大概记下了jQuery提供的功能知道能实现什么，看文档的时候比较难理解的就写代码加深记忆…… 上面这些就当做是对新手的入门指引吧 得得得……有点跑题了，该说说那些正在代码海洋中挣扎的民工了 第二类：处在(牛A与牛C)之外的 我也是这一类人。 这里要说说在实际的企业应用中的规则了，拿Java企业应用来说吧（Java之外的朋友别骂我……我只会Java），Java这家伙是一杯香浓的咖啡也是一杯混合了各种调料的与咖啡豆的水；把Java当做水来看把基于Java开发的框架和插件当做是咖啡豆与调料，N多的插件把咖啡调成多种口味，多种吃法。先感叹一下：当民工3年多到现在感觉我要学习的东西还很多……。 企业应用如同多种口味的咖啡，Java发展10余年全球的开发者们也开发除了上万的各种插件供企业开发应用，感谢你们…… 企业应用的开发可不是像你写一个DEMO或者测试那么简单，用的技术很多例如：Struts、Hibernate、Spring、WebService、Jms和前端的[X]HTML、CSS、Javascript、Flash、Flex等等，当然还有企业的宝库-数据库，面对这么多的东西对于不在 (牛A与牛C)之间的我们怎么办？我的想法是——逐个击破，平常工作没有时间就挤时间学习你欠缺的技术，学习和提问题方法上面已经提到了就是三步走：官网文档&#8211;&#62;Google&#8211;&#62;技术群； 1、准备好技术（未雨绸缪） 既然要开发出高质量、搞用户体验的易用系统那就要准备好开发所需要使用的各方面的技术知识，比如坚固的后台架构和搞用户体验+美观的UI，当然这个都有很多人共同完成（像我在小公司里面前后台都得搞，大公司就分工比较清晰了）；如果你负责后台的编码工作那就要有坚实的Java基础，比如一些模式、第三方提供的jar包等等，这些东西会让你在开发过程中祈祷事半功倍的效果，因为你不需要闭门造车而是学会怎么使用就可以了（除非你想深入了解它们）； 如果你是前端或者专注前端开发那你需要准备好比如XHTML\CSS\Javascript\JSON等这些常用的技术（具体的内容不在本文讨论范围不再解释） [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>子曰:“工欲善其事,必先利其器。居是邦也,事其大夫之贤者,友其士之仁者</p></blockquote>
<p><img class="alignright" title="孔子" src="http://www.xuefo.net/user/%E5%BF%83%E6%BA%90/%E5%AD%94%E5%AD%90%E5%83%8F.jpg" alt="孔子" width="217" height="240" /><br />
这句话是我近两年的座右铭，引用百科的<strong>解释</strong>：“工匠想要使（他的）<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/%e5%b7%a5%e4%bd%9c" title="查看 工作 中所有日志" target="_blank">工作</a></span>做好，一定要先使工具锋利。比喻要做好一件事，准备<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/%e5%b7%a5%e4%bd%9c" title="查看 工作 中所有日志" target="_blank">工作</a></span>非常重要。”；解释的很清楚，这就和做事要有计划是一个道理。<br />
还有一个我欣赏的话：</p>
<blockquote><p>无欲速，无见小利。<span style="color: #339966;"><strong>欲速，则不达</strong></span>；见小利，则大事不成。</p></blockquote>
<p>引用百科的<strong>解释</strong>：“欲：想要；速：快速；达：达到（目的）。过于急性反而不能达到目的。”</p>
<p>这些真理就如同孙子兵法一样适用，咱们也可以拿到今天来分析一下现在的情况；顺便说一下我写这篇文章的目的，因为开博客同时也建立了2个有关RIA开发的群所以有很多网友找我问问题，询问问题的可以分为两类：</p>
<h2>第一类：新手</h2>
<p><span id="more-1026"></span></p>
<p>刚刚接触<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/jquery" title="查看 jQuery 中所有日志" target="_blank">jQuery</a></span>或者是Java Web编程的新人，Java和Javascript(<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/jquery" title="查看 jQuery 中所有日志" target="_blank">jQuery</a></span>)的基础比较薄弱，有些是刚刚接触SSH架构，有些是刚刚学习web编程，共同特点都是不知道自己要学习什么、怎么学习技术……</p>
<p>他们来我博客找我或者在QQ群里面问，对于这类童鞋我的回答首先问了3个问题：</p>
<ol>
<li>找准学习的目标</li>
<li>你是否准好了进入IT行业（当民工）</li>
<li>是否有编程的兴趣</li>
</ol>
<p>对于<strong>第一点</strong>是给自己在IT路上找准定位，当然对于<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/programmer" title="查看 程序员 中所有日志" target="_blank">程序员</a></span>来说是学习哪一门语言，例如：Java、C++、C#、PHP、.NET等等，当然如果从事基于Web的编程还要学习CSS、Javascript……，你找准了吗？</p>
<p>对于<strong>第二点</strong>和<strong>第三点</strong>是<strong>心态</strong>，很多新人刚刚进入IT行业都会问同样的话题：IT行业发展好吗？IT行业累吗？</p>
<p>我的回答很简单只有<strong>两个字</strong>：好、累。</p>
<p>就像今天一个到群里面来的一个正在培训的学生，公布一下聊天记录：</p>
<blockquote><p>Alexandra  23:07:25<br />
it行业如何了<br />
Alexandra  23:07:32<br />
是不是可累了。。<br />
咖啡兔  23:07:34<br />
看你是否喜欢了<br />
Alexandra  23:07:37<br />
。。。<br />
咖啡兔  23:07:41<br />
IT累是肯定的</p></blockquote>
<p>看得出这个新人有点汗了……他担心自己能不能承受，还有IT技术更新非常快，需要不间断的学习新技术才可以跟得上发展才不会被社会淘汰</p>
<blockquote><p>Alexandra  23:03:53<br />
晕，技术更新那么快，，，不活了。。。</p></blockquote>
<p>像这种态度是万万不能有的，既然你选择了这一行就要坚持做下去；所以这里说到了对于软件的兴趣，兴趣是我们大家的良师益友是我们事半功倍的利器，如果没有兴趣再聪明的人也成不了气候，看大这里问一下自己有兴趣吗？<br />
就像我一样初三的时候用借亲戚的学习机和同学的学习机说明书学习五笔，后来学习basic语言一样，你有这样的兴趣吗？</p>
<p><a href="http://www.wsria.cn/wordpress/wp-content/uploads/2010/07/it-select.png"><img class="size-full wp-image-1037 aligncenter" title="it-select" src="http://www.wsria.cn/wordpress/wp-content/uploads/2010/07/it-select.png" alt="" width="371" height="376" /></a><br />
看完这些如果是新人仔细考虑一下吧……#&amp;（#&amp;￥（##&amp;（#&amp;</p>
<p>如果是选择了“没有”的人或许不再继续看下去了，那就留给那些选择“有”的童鞋们：</p>
<h3>1、问问题</h3>
<p>这里要说的是学习技术的心态，这么长时间来很多人在群里面问问题都是直接说XXX问题怎么解决，有没有使用XXX软件或者插件之类的；<strong>群是什么</strong>？群是大家<strong>讨论问题</strong>的一个平台，而有一部分人把群当成了所有知识的来源，就想咱们平常用到的框架或者各种插件使用方法，这些知识在哪里？怎么获取？这两个问题是新童鞋们要搞清楚的，当然还有一些经常这么问问题的老童鞋们；但凡开源软件（鄙视微软）都有官方的文档，而这种文档时机器重要的武器，他是我们获取技术的最佳途径也是最标准的途径，所以你要<strong>多看官网文档，</strong>像大家经常用到的SSH架构遍地都是，例如那些《无师自通XXX》、《21天精通XXX》，《XXX秘籍》等等……而且还有很多外国牛人写的书国人翻译的，所以这个没有什么问题，在SSH开发中遇到的问题首先要Google（不建议使用百度，技术百度不行，内事还凑合）有没有相同的问题，如果实在找不到再到群里面询问，问的时候也不要急如果有人知道肯定会帮你解决，要不然怎么会有那么多的开源软件供你用呀……</p>
<h3>2、学习新技术</h3>
<p>而对于目前前端开发使用比较多的<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/jquery" title="查看 jQuery 中所有日志" target="_blank">jQuery</a></span>的插件就没有像SSH那么多的书可以看了，当然国内的和国外也有人写关于这方面的书，像国外的《jQuery实践》和国内的cssrain和小飞写的《锋利的jQuery》，都是讲jQuery核心库的知识……当然你也可以不看书而是看jQuery的API文档，官方的文档东西基本都是面面俱到因为这个也是判定一个程序、插件好坏的一个要素，就像我08年学习jQuery一样花了一周看了小飞那帮人翻译制作的CHM的API文档+写测试代码直接就在项目中使用了，大概记下了jQuery提供的功能知道能实现什么，看文档的时候比较难理解的就写代码加深记忆……</p>
<p>上面这些就当做是对新手的入门指引吧</p>
<p>得得得……有点跑题了，该说说那些正在代码海洋中挣扎的民工了</p>
<h2>第二类：处在(牛A与牛C)之外的</h2>
<p>我也是这一类人。</p>
<p>这里要说说在实际的企业应用中的规则了，拿Java企业应用来说吧（Java之外的朋友别骂我……我只会Java），Java这家伙是一杯香浓的咖啡也是一杯混合了各种调料的与咖啡豆的水；把Java当做水来看把基于Java开发的框架和插件当做是咖啡豆与调料，N多的插件把咖啡调成多种口味，多种吃法。先感叹一下：当民工3年多到现在感觉我要学习的东西还很多……。</p>
<p>企业应用如同多种口味的咖啡，Java发展10余年全球的开发者们也开发除了上万的各种插件供企业开发应用，感谢你们……</p>
<p>企业应用的开发可不是像你写一个DEMO或者测试那么简单，用的技术很多例如：Struts、Hibernate、Spring、WebService、Jms和前端的[X]HTML、CSS、Javascript、Flash、Flex等等，当然还有企业的宝库-数据库，面对这么多的东西对于不在</p>
<p><span style="font-weight: normal;">(牛A与牛C)之间的我们怎么办？我的想法是——</span><strong>逐个击破</strong><span style="font-weight: normal;">，平常<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/%e5%b7%a5%e4%bd%9c" title="查看 工作 中所有日志" target="_blank">工作</a></span>没有时间就挤时间学习你欠缺的技术，学习和提问题方法上面已经提到了就是<span style="color: #ff0000;">三步走</span>：官网文档&#8211;&gt;Google&#8211;&gt;技术群；</span></p>
<h3><span style="font-weight: normal;"><strong>1、准备好技术（未雨绸缪）</strong></span></h3>
<p><span style="font-weight: normal;">既然要开发出高质量、搞用户体验的易用系统那就要准备好开发所需要使用的各方面的技术知识，比如坚固的后台架构和搞用户体验+美观的UI，当然这个都有很多人共同完成（像我在小公司里面前后台都得搞，大公司就分工比较清晰了）；如果你负责后台的编码工作那就要有坚实的Java基础，比如一些模式、第三方提供的jar包等等，这些东西会让你在开发过程中祈祷事半功倍的效果，因为你不需要闭门造车而是学会怎么使用就可以了（除非你想深入了解它们）；</span></p>
<p><span style="font-weight: normal;">如果你是前端或者专注前端开发那你需要准备好比如XHTML\CSS\Javascript\JSON等这些常用的技术（具体的内容不在本文讨论范围不再解释）</span></p>
<p><span style="font-weight: normal;">好，需要什么技术都清楚了那么给你一个场景，老板让你开发一个B/S的财务软件，这个就可以使用标准的SSH2架构和RIA方式开发再合适不过了，那么你现在具备这样的能力吗？SSH架构会搭建吗？Ajax方式的RIA会些吗？引入下一话题</span></p>
<h3><span style="font-weight: normal;">2、时刻准备着</span></h3>
<p>国内软件行业的情形和国外不通，你可能听过一些牛人都是精通或者熟练几种语言，精通或者熟练应用各种模式，这是为什么呢？国情决定了我们必须这么做而且还是时刻……因为国内的公司需要的是<strong><span style="color: #ff0000;">全才</span></strong>，每年毕业的那么多大学生，2009年有611万大学毕业生，这么多毕业生和你竞争，是，他们刚刚毕业对你影响好像很小或许你认为对你没有威胁，但是他们在工作中进步一年两年后呢？而且他们工资又比你低相对于他们来说你还有优势吗？</p>
<p>说着说着有些激动了……社会是残酷的，还是说技术吧</p>
<p>我先举个例子，看过我博客的童鞋可能知道我08年开发了一个简单的<a title="2008年开发的个人账务管理系统" href="http://www.wsria.cn/archives/73" target="_blank">个人账务管理系统</a>，当时也是为了学习一些技术才写的，为的就是在Java中和jQuery集成，就是不想让自己落伍跟得上技术的进步，因为这个我09年有机会接了一个私活（嘿嘿），拿到单子很快就用我自己写的那个小系统的架子开始开发了……</p>
<p><span style="color: #339966;"><strong>所以既然我们站在了这个行业就要遵守游戏规则，一些新的、利于企业应用的技术我们都要学习以备以后开发中使用，这才是作为一个标准的IT人才所要做的也是必须做的，只有这样我们才有资本和别人竞争。</strong></span></p>
<p><span style="color: #339966;"><strong> </strong></span><br />
如果你有空余时间可以看看技术方面的书籍，或者研究一些新技术以后日后使用这是为自己增加资本，对于你和公司来说是双赢，何以不为？</p>
<p>========================华丽的分割线========================<br />
说说网友问的比较多的jQuery吧，看看他们都是怎么提问的：</p>
<blockquote><p>A君：怎么获取一个元素的高度？<br />
B君：有用过XXX插件的吗？<br />
C君：<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/jqgrid" title="查看 jqGrid 中所有日志" target="_blank">jqGrid</a></span>怎么用？</p></blockquote>
<p>看到这些问题我真的很无奈……我说过多少次了先去看文档看文档看文档，看API……那么详细的文档为什么不利用起来呢？要不然官方还写这些干嘛，既然你要使用这个软件、产品或者插件就要从官方了解它可以做什么然后再逐个看演示或者文档说明，这样你在使用的时候才知道怎么设计出好的作品才会得心应手，就拿我最近在用<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/jqgrid" title="查看 jqGrid 中所有日志" target="_blank">jqGrid</a></span>插件吧，是我认为很好的插件，一个是功能很全面，另外一个就是衡量插件是否好的——文档齐全，我是看的<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/jqgrid" title="查看 jqGrid 中所有日志" target="_blank">jqGrid</a></span>官方提供的DEMO和<a href="http://www.trirand.com/jqgridwiki/doku.php?id=wiki:jqgriddocs" target="_blank">WIKI</a>文档顺利开发了基于列表的功能；有很多群里面的童鞋一个接一个的问jqGrid的XXX功能怎么实现，如果你要实现编辑功能那就去搜索edit，如果你要实现搜索功能那就找search，文档的参数列表很清晰的说明哪一个参数的功能，还有一些默认值的配置，看看验证一下下一次就手到擒来不是吗……</p>
<h2>结束语：</h2>
<p>很少写这样的文章感觉要说的话很多却不知道表达出来，可能这是搞技术的共同特点，而且还是闷骚型的（前公司的部门经理说的）</p>
<p>说实话感觉写的这篇文章比较乱，因为很少写类似的东西给大家看，我也是想到什么写什么，写的不好还望见谅，总之一句话：“工欲善其事必先利其器”，机会是留给有准备的人，要知道学什么和怎么学……祝你事业有成！</p>
<p style="text-align: right;">咖啡兔于2010年7月30日</p>
<p class="copyright_info"><strong class="icon">声明:</strong>该日志由<a title="由 咖啡兔 发表" href="http://www.wsria.cn/archives/author/admin/" linkindex="13">咖啡兔</a>发表,你可以自由发表评论或转载到你的网站或博客。 <br/><span style="padding-left:20px">转载请注明转自<a rel="bookmark inlinks" href="http://www.wsria.cn/wordpress/" title="what is the RIA?  just it…||咖啡兔" linkindex="14"> what is the RIA?  just it…||咖啡兔 &trade;</a></span><br />
<strong class="icon">原始链接:</strong><a href="http://www.wsria.cn/archives/1026">http://www.wsria.cn/archives/1026 | 工欲善其事，必先利其器</a>
</p>
<h3>相关文章</h3>
<ul class="related_posts">
<li><a href="http://www.wsria.cn/archives/659" title="[推荐]改进的提示插件-jQuery.hiAlerts.1.0" rel="bookmark inlinks">[推荐]改进的提示插件-jQuery.hiAlerts.1.0</a><span class="count">( 1 )</span></li>
<li><a href="http://www.wsria.cn/archives/918" title="直逼 Flash 的流畅感：jQuery 运动特效展示" rel="bookmark inlinks">直逼 Flash 的流畅感：jQuery 运动特效展示</a><span class="count">( 4 )</span></li>
<li><a href="http://www.wsria.cn/archives/827" title="新年新气象，博客新面貌" rel="bookmark inlinks">新年新气象，博客新面貌</a><span class="count">( 3 )</span></li>
<li><a href="http://www.wsria.cn/archives/412" title="HR教你怎么投简历" rel="bookmark inlinks">HR教你怎么投简历</a><span class="count">( 2 )</span></li>
<li><a href="http://www.wsria.cn/archives/588" title="简单实现在基于Java的AJAX环境下未登录自动跳转流程详解(spring代理struts的action)" rel="bookmark inlinks">简单实现在基于Java的AJAX环境下未登录自动跳转流程详解(spring代理struts的action)</a><span class="count">( 2 )</span></li>
<li><a href="http://www.wsria.cn/archives/429" title="jQuery.plugin——强大的遮罩层(nyroModal)" rel="bookmark inlinks">jQuery.plugin——强大的遮罩层(nyroModal)</a><span class="count">( 2 )</span></li>
<li><a href="http://www.wsria.cn/archives/640" title="推荐一个ajax资源站点" rel="bookmark inlinks">推荐一个ajax资源站点</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/952" title="[转][推荐]jqGrid基础学习系列文章" rel="bookmark inlinks">[转][推荐]jqGrid基础学习系列文章</a><span class="count">( 0 )</span></li>
</ul>
<p>&copy;2010 <a href="http://www.wsria.cn">what is the RIA?  just it…||咖啡兔</a>. All Rights Reserved.</p>.<img src="http://www.wsria.cn/wordpress/?ak_action=api_record_view&id=1026&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.wsria.cn/archives/1026/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>新年新气象，博客新面貌</title>
		<link>http://www.wsria.cn/archives/827</link>
		<comments>http://www.wsria.cn/archives/827#comments</comments>
		<pubDate>Sat, 27 Feb 2010 09:24:52 +0000</pubDate>
		<dc:creator>咖啡兔</dc:creator>
				<category><![CDATA[个人作品]]></category>
		<category><![CDATA[博客公告]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[博客]]></category>

		<guid isPermaLink="false">http://www.wsria.cn/?p=827</guid>
		<description><![CDATA[感谢大家一年来对我的支持，一年来发布了一些技术文章和一个基于Java（SSH架构）、jQuery的开源系统，得到了网友的支持，今年也会多多发表博文，和广大网友共同进步，将技术进行到底…… 这次更换主题添加了几个插件，例如：评分和目前的Buzz推荐文章等等……以后会增加其他功能，敬请期待，当然这些都是次要的 今年计划在6月份前推出基于Strtus2版本的开源账务管理系统 声明:该日志由咖啡兔发表,你可以自由发表评论或转载到你的网站或博客。 转载请注明转自 what is the RIA? just it…&#124;&#124;咖啡兔 &#8482; 原始链接:http://www.wsria.cn/archives/827 &#124; 新年新气象，博客新面貌 相关文章 实例解析java + jQuery + json工作过程(获取JSON数据)( 1 ) [转][推荐]程序员们，请珍爱自己的身体( 0 ) 基于Java、jQuery应用的账务管理系统开源了(09.3.19更新)( 23 ) 实例解析java + jQuery + json工作过程(登录)( 8 ) 从Google搜索联想到了jQuery( 0 ) 工欲善其事，必先利其器( 4 ) jQuery.plugin——滚动条(连贯感觉)( 0 ) 【推荐】jQuery.plugin——对话框jquery.weebox.js( 5 ) &#169;2010 what is the RIA? just it…&#124;&#124;咖啡兔. [...]]]></description>
			<content:encoded><![CDATA[<p>感谢大家一年来对我的支持，一年来发布了一些技术文章和一个基于Java（SSH架构）、<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/jquery" title="查看 jQuery 中所有日志" target="_blank">jQuery</a></span>的开源系统，得到了网友的支持，今年也会多多发表博文，和广大网友共同进步，将技术进行到底……<br />
这次更换主题添加了几个插件，例如：评分和目前的Buzz推荐文章等等……以后会增加其他功能，敬请期待，当然这些都是次要的</p>
<p><!--easy2hide start-->今年计划在6月份前推出基于Strtus2版本的开源账务管理系统<!--easy2hide end-->
<p class="copyright_info"><strong class="icon">声明:</strong>该日志由<a title="由 咖啡兔 发表" href="http://www.wsria.cn/archives/author/admin/" linkindex="13">咖啡兔</a>发表,你可以自由发表评论或转载到你的网站或<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/%e5%8d%9a%e5%ae%a2" title="查看 博客 中所有日志" target="_blank">博客</a></span>。 <br/><span style="padding-left:20px">转载请注明转自<a rel="bookmark inlinks" href="http://www.wsria.cn/wordpress/" title="what is the RIA?  just it…||咖啡兔" linkindex="14"> what is the RIA?  just it…||咖啡兔 &trade;</a></span><br />
<strong class="icon">原始链接:</strong><a href="http://www.wsria.cn/archives/827">http://www.wsria.cn/archives/827 | 新年新气象，博客新面貌</a>
</p>
<h3>相关文章</h3>
<ul class="related_posts">
<li><a href="http://www.wsria.cn/archives/429" title="jQuery.plugin——强大的遮罩层(nyroModal)" rel="bookmark inlinks">jQuery.plugin——强大的遮罩层(nyroModal)</a><span class="count">( 2 )</span></li>
<li><a href="http://www.wsria.cn/archives/818" title="[转][推荐]程序员们，请珍爱自己的身体" rel="bookmark inlinks">[转][推荐]程序员们，请珍爱自己的身体</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/588" title="简单实现在基于Java的AJAX环境下未登录自动跳转流程详解(spring代理struts的action)" rel="bookmark inlinks">简单实现在基于Java的AJAX环境下未登录自动跳转流程详解(spring代理struts的action)</a><span class="count">( 2 )</span></li>
<li><a href="http://www.wsria.cn/archives/1147" title="利用JavaScript获取窗口/Body的宽度和高度(让jqGrid自适应窗口大小)" rel="bookmark inlinks">利用JavaScript获取窗口/Body的宽度和高度(让jqGrid自适应窗口大小)</a><span class="count">( 5 )</span></li>
<li><a href="http://www.wsria.cn/archives/659" title="[推荐]改进的提示插件-jQuery.hiAlerts.1.0" rel="bookmark inlinks">[推荐]改进的提示插件-jQuery.hiAlerts.1.0</a><span class="count">( 1 )</span></li>
<li><a href="http://www.wsria.cn/archives/974" title="[转][推荐]15 个 JavaScript Web UI 库" rel="bookmark inlinks">[转][推荐]15 个 JavaScript Web UI 库</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/links" title="友情链接" rel="bookmark inlinks">友情链接</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/333" title="jQuery入门教程PPT" rel="bookmark inlinks">jQuery入门教程PPT</a><span class="count">( 1 )</span></li>
</ul>
<p>&copy;2010 <a href="http://www.wsria.cn">what is the RIA?  just it…||咖啡兔</a>. All Rights Reserved.</p>.<img src="http://www.wsria.cn/wordpress/?ak_action=api_record_view&id=827&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.wsria.cn/archives/827/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>关于本站开源项目finance的演示视频和源代码不能下载说明</title>
		<link>http://www.wsria.cn/archives/718</link>
		<comments>http://www.wsria.cn/archives/718#comments</comments>
		<pubDate>Sat, 17 Oct 2009 07:32:01 +0000</pubDate>
		<dc:creator>咖啡兔</dc:creator>
				<category><![CDATA[个人作品]]></category>
		<category><![CDATA[开源]]></category>
		<category><![CDATA[源码]]></category>
		<category><![CDATA[视频]]></category>
		<category><![CDATA[账务管理]]></category>

		<guid isPermaLink="false">http://www.wsria.cn/?p=718</guid>
		<description><![CDATA[废话不多说，感谢各位对博客的关注，之前本站提供了开源项目的视频和源代码下载服务，后来由于其他站点盗链博客流量过大所以把文件移到了google code上面提供下载服务，问题就出在这里了，现在我的账号被google code封了，暂时不能提供下载，需要的同学请EMAIL 给我，当然如果谁有服务器可以提供本人感激不尽…… Update 1： 开通了一个网盘，http://www.brsbox.com/yanhonglei，在wsria.cn目录中 声明:该日志由咖啡兔发表,你可以自由发表评论或转载到你的网站或博客。 转载请注明转自 what is the RIA? just it…&#124;&#124;咖啡兔 &#8482; 原始链接:http://www.wsria.cn/archives/718 &#124; 关于本站开源项目finance的演示视频和源代码不能下载说明 相关文章 基于jQuery开发的账务管理系统(个人版)演示( 15 ) 基于Java、jQuery应用的账务管理系统开源了(09.3.19更新)( 23 ) Apache Asia Roadshow 2010 Juven Maven PPT和视频下载( 0 ) 工欲善其事，必先利其器( 4 ) 站点GBK编码下jQuery Ajax中文乱码解决方案( 22 ) 基于Java、jQuery开发的账务管理系统(个人版)即将开源( 13 ) 新年新气象，博客新面貌( 3 ) 转：jquery1.2.6源码分析( 0 ) &#169;2010 what is the [...]]]></description>
			<content:encoded><![CDATA[<p>废话不多说，感谢各位对博客的关注，之前本站提供了<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/%e5%bc%80%e6%ba%90" title="查看 开源 中所有日志" target="_blank">开源</a></span>项目的<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/video" title="查看 视频 中所有日志" target="_blank">视频</a></span>和源代码下载服务，后来由于其他站点盗链博客流量过大所以把文件移到了google code上面提供下载服务，问题就出在这里了，现在我的账号被google code封了，暂时不能提供下载，需要的同学请EMAIL</p>
<div id="attachment_517" class="wp-caption alignleft" style="width: 174px"><a href="http://www.wsria.cn/wordpress/wp-content/uploads/2009/02/gmailforyhl.png"><img class="size-full wp-image-517" title="gmailforyhl" src="http://www.wsria.cn/wordpress/wp-content/uploads/2009/02/gmailforyhl.png" alt="email to wsria.cn" width="164" height="21" /></a><p class="wp-caption-text">email to wsria.cn</p></div>
<p>给我，当然如果谁有服务器可以提供本人感激不尽……</p>
<p><strong>Update 1：</strong></p>
<p>开通了一个网盘，<a href="http://www.brsbox.com/yanhonglei">http://www.brsbox.com/yanhonglei</a>，在wsria.cn目录中
<p class="copyright_info"><strong class="icon">声明:</strong>该日志由<a title="由 咖啡兔 发表" href="http://www.wsria.cn/archives/author/admin/" linkindex="13">咖啡兔</a>发表,你可以自由发表评论或转载到你的网站或博客。 <br/><span style="padding-left:20px">转载请注明转自<a rel="bookmark inlinks" href="http://www.wsria.cn/wordpress/" title="what is the RIA?  just it…||咖啡兔" linkindex="14"> what is the RIA?  just it…||咖啡兔 &trade;</a></span><br />
<strong class="icon">原始链接:</strong><a href="http://www.wsria.cn/archives/718">http://www.wsria.cn/archives/718 | 关于本站开源项目finance的演示视频和源代码不能下载说明</a>
</p>
<h3>相关文章</h3>
<ul class="related_posts">
<li><a href="http://www.wsria.cn/archives/1026" title="工欲善其事，必先利其器" rel="bookmark inlinks">工欲善其事，必先利其器</a><span class="count">( 4 )</span></li>
<li><a href="http://www.wsria.cn/archives/73" title="基于jQuery开发的账务管理系统(个人版)演示" rel="bookmark inlinks">基于jQuery开发的账务管理系统(个人版)演示</a><span class="count">( 15 )</span></li>
<li><a href="http://www.wsria.cn/archives/785" title="分享：Java日期工具类" rel="bookmark inlinks">分享：Java日期工具类</a><span class="count">( 2 )</span></li>
<li><a href="http://www.wsria.cn/archives/1139" title="Apache Asia Roadshow 2010 Juven Maven PPT和视频下载" rel="bookmark inlinks">Apache Asia Roadshow 2010 Juven Maven PPT和视频下载</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/827" title="新年新气象，博客新面貌" rel="bookmark inlinks">新年新气象，博客新面貌</a><span class="count">( 3 )</span></li>
<li><a href="http://www.wsria.cn/archives/369" title="实例解析java + jQuery + json工作过程(获取JSON数据)" rel="bookmark inlinks">实例解析java + jQuery + json工作过程(获取JSON数据)</a><span class="count">( 1 )</span></li>
<li><a href="http://www.wsria.cn/archives/136" title="基于Java、jQuery应用的账务管理系统开源了(09.3.19更新)" rel="bookmark inlinks">基于Java、jQuery应用的账务管理系统开源了(09.3.19更新)</a><span class="count">( 23 )</span></li>
<li><a href="http://www.wsria.cn/archives/300" title="实例解析java + jQuery + json工作过程(登录)" rel="bookmark inlinks">实例解析java + jQuery + json工作过程(登录)</a><span class="count">( 8 )</span></li>
</ul>
<p>&copy;2010 <a href="http://www.wsria.cn">what is the RIA?  just it…||咖啡兔</a>. All Rights Reserved.</p>.<img src="http://www.wsria.cn/wordpress/?ak_action=api_record_view&id=718&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.wsria.cn/archives/718/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>实例解析java + jQuery + json工作过程(获取JSON数据)</title>
		<link>http://www.wsria.cn/archives/369</link>
		<comments>http://www.wsria.cn/archives/369#comments</comments>
		<pubDate>Sat, 28 Feb 2009 10:39:27 +0000</pubDate>
		<dc:creator>咖啡兔</dc:creator>
				<category><![CDATA[个人作品]]></category>
		<category><![CDATA[前端技术]]></category>
		<category><![CDATA[后台技术]]></category>
		<category><![CDATA[项目]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Finance]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[json-lib]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[源码]]></category>

		<guid isPermaLink="false">http://www.wsria.cn/?p=369</guid>
		<description><![CDATA[实例解析Java、jQuery前后台使用JSON数据交互过程]]></description>
			<content:encoded><![CDATA[<p>前天刚刚写的一篇关于《<a title=" 实例解析java + ajax(jQuery) + json工作过程(登录) " href="http://www.wsria.cn/archives/300" target="_blank">实例解析java + ajax(jQuery) + json工作过程(登录)</a>》的文章引起了网友们的关注和好评，</p>
<p><span id="more-369"></span>自从本站的<a title="查看关于账务系统的文章" href="http://www.wsria.cn/finance" target="_blank">账务管理系统(个人版)开源</a> 以后很多网友询问系统的实现方式，我一一解释……，为此今天写文章详细讲解系统功能的实现细节。</p>
<p>以本站的开源项目账务管理系统的“债务人”模块为例子讲解</p>
<h2>一、效果预览</h2>
<div id="attachment_387" class="wp-caption aligncenter" style="width: 426px"><img class="size-full wp-image-387" title="userdetail1" src="http://www.wsria.cn/wordpress/wp-content/uploads/2009/02/userdetail1.png" alt="债务人详细页面效果预览" width="416" height="385" /><p class="wp-caption-text">债务人详细页面效果预览</p></div>
<h2>二、实现方式</h2>
<blockquote><p>基本思想就是绑定列表中的人员名称触发事件，获得当前人员的ID发送ajax请求到后台，后台根据ID查询详细信息，返回JSON数据结果至前台，前台通过对话框组件显示人员详细</p></blockquote>
<p><strong>1、绑定click事件到列表的人员名称</strong><br />
在项目中的iouser/js/iouser.js文件中有这样一个方法：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">/**
 * 点击名称弹出详细
 */</span>
<span style="color: #003366; font-weight: bold;">function</span> regShowDetail<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;span[name=iouid]&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">unbind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		showDetail<span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">parent</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">parent</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'input[name=chk]'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>通过regShowDetail绑定了点击人员时执行showDetail的事件，</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">parent</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">parent</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'input[name=chk]'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #006600; font-style: italic;">//上面这句话就是获得列表左侧的复选框的value值以便传送给后台</span></pre></div></div>

<ul>
<li>下面介绍一下<strong>showDetail</strong><em>方法的功能实现：</em></li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"> <span style="color: #339933;">*</span> 查看用户详细资料
 <span style="color: #339933;">*</span> <span style="color: #339933;">@</span>param <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span> userId 用户ID
 <span style="color: #339933;">*/</span>
<span style="color: #003366; font-weight: bold;">function</span> showDetail<span style="color: #009900;">&#40;</span>userId<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #006600; font-style: italic;">// 创建一个对话框组件</span>
	<span style="color: #003366; font-weight: bold;">var</span> dialog <span style="color: #339933;">=</span> $.<span style="color: #660066;">weeboxs</span>.<span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'showDetail.html'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>
		title<span style="color: #339933;">:</span> <span style="color: #3366CC;">'正在加载用户信息……'</span><span style="color: #339933;">,</span>
		contentType<span style="color: #339933;">:</span> <span style="color: #3366CC;">'ajax'</span><span style="color: #339933;">,</span>
		width<span style="color: #339933;">:</span> <span style="color: #CC0000;">600</span><span style="color: #339933;">,</span>
		height<span style="color: #339933;">:</span> <span style="color: #CC0000;">350</span><span style="color: #339933;">,</span>
		animate<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
		clickClose<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span>
		type<span style="color: #339933;">:</span> <span style="color: #3366CC;">'wee'</span><span style="color: #339933;">,</span>
		showOk<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span>
		cancelBtnName<span style="color: #339933;">:</span> <span style="color: #3366CC;">'关 闭'</span><span style="color: #339933;">,</span>
		onopen<span style="color: #339933;">:</span> innerShowDetail
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #006600; font-style: italic;">//内部函数，实现债务人详细信息的载入、设置值</span>
	<span style="color: #003366; font-weight: bold;">function</span> innerShowDetail<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #006600; font-style: italic;">// 获得JSON格式的数据</span>
		$.<span style="color: #660066;">getJSON</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'load.do'</span><span style="color: #339933;">,</span><span style="color: #009900;">&#123;</span>id <span style="color: #339933;">:</span> userId<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #006600; font-style: italic;">// 根据key设置value</span>
			<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>key <span style="color: #000066; font-weight: bold;">in</span> json<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>key <span style="color: #339933;">==</span> <span style="color: #3366CC;">'id'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
					$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#detailDiv #'</span> <span style="color: #339933;">+</span> key<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#91;</span>key<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#91;</span>key<span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
						<span style="color: #006600; font-style: italic;">// 没有值设置为空</span>
						$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#detailDiv #'</span> <span style="color: #339933;">+</span> key<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'?'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>key <span style="color: #339933;">==</span> <span style="color: #3366CC;">'sex'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
						$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#detailDiv #'</span> <span style="color: #339933;">+</span> key<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#91;</span>key<span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">'0'</span> <span style="color: #339933;">?</span> <span style="color: #3366CC;">'女'</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">'男'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>key <span style="color: #339933;">==</span> <span style="color: #3366CC;">'group'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
						<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#91;</span>key<span style="color: #009900;">&#93;</span> <span style="color: #339933;">!=</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
							$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#detailDiv #'</span> <span style="color: #339933;">+</span> key<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#91;</span>key<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'groupName'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #009900;">&#125;</span>
					<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
						$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#detailDiv #'</span> <span style="color: #339933;">+</span> key<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#91;</span>key<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
			<span style="color: #006600; font-style: italic;">//设置对话框标题和内容</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#detailDiv'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeAttr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'class'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			dialog.<span style="color: #660066;">setTitle</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'查看人员['</span> <span style="color: #339933;">+</span> json<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'userName'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">']详细资料'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			dialog.<span style="color: #660066;">setContent</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#detailDiv'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<ul>
<li><em>showDetail</em>方法首先打开一个<a title="本系统使用的对话框插件简介" href="http://www.wsria.cn/archives/342" target="_blank">对话框组件</a> 加载一个静态的模板<a title="查看showDetail.html文件内容  on googlecode" href="http://code.google.com/p/finance-p/source/browse/trunk/iouser/showDetail.html" target="_blank"><em><strong>showDetail.html</strong></em></a>
<ul>
<li> 文件中的ID都是根据信息点命名的，这样便于通过ID设置值</li>
</ul>
</li>
<li>通过路径<strong>load.do</strong> 请求后台查询人员详细，后台处理类为net.yanhl.iouser.action.IOUserAction的loadUser()方法，代码请<a title="加载人员详细的后台源码" href="http://code.google.com/p/finance-p/source/browse/trunk/WEB-INF/src/net/yanhl/iouser/action/IOUserAction.java" target="_blank">点击这里查看</a>
<ul>
<li> 怎么查询一个POJO对象就介绍了，重点说明怎么返回JSON格式的数据</li>
<li>这里还是使用java语言使用的JSON工具<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/json" title="查看 json 中所有日志" target="_blank">json</a></span>-lib，关于<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/json" title="查看 json 中所有日志" target="_blank">json</a></span>-lib的资料上篇文章也已介绍，这里不再重复；

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// 获取一个Iouser对象，包含债务人的信息</span>
Iouser user <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>Iouser<span style="color: #009900;">&#41;</span> getBaseManager<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>Iouser.<span style="color: #000000; font-weight: bold;">class</span>, iouserId<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//使用json-lib工具把一个POJO对象解析为一个JSON格式数据</span>
JSONObject jsonObject <span style="color: #339933;">=</span> JSONObject.<span style="color: #006633;">fromObject</span><span style="color: #009900;">&#40;</span>user, config<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//向前台发送结果集</span>
print<span style="color: #009900;">&#40;</span>response, jsonObject.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>最中返回的结果集如下：</p>
<blockquote><p>{<br />
&#8220;age&#8221; : 56,<br />
&#8220;companyAddress&#8221; : &#8220;32&#8243;,<br />
&#8220;companyName&#8221; : &#8220;未知&#8221;,<br />
&#8220;companyPhone&#8221; : &#8220;&#8211;&#8221;,<br />
&#8220;companyZip&#8221; : &#8220;&#8221;,<br />
&#8220;createDate&#8221; : null,<br />
&#8220;creatorId&#8221; : 1,<br />
&#8220;group&#8221; : {<br />
&#8220;childSize&#8221; : 0,<br />
&#8220;createDate&#8221; : {<br />
&#8220;date&#8221; : 27,<br />
&#8220;day&#8221; : 6,<br />
&#8220;hours&#8221; : 0,<br />
&#8220;minutes&#8221; : 0,<br />
&#8220;month&#8221; : 11,<br />
&#8220;nanos&#8221; : 0,<br />
&#8220;seconds&#8221; : 0,<br />
&#8220;time&#8221; : 1230307200000,<br />
&#8220;timezoneOffset&#8221; : -480,<br />
&#8220;year&#8221; : 108<br />
},<br />
&#8220;creatorId&#8221; : 1,<br />
&#8220;groupName&#8221; : &#8220;商务&#8221;,<br />
&#8220;id&#8221; : 33,<br />
&#8220;orderNum&#8221; : 0,<br />
&#8220;remark&#8221; : &#8220;&#8221;<br />
},<br />
&#8220;homeAddress&#8221; : &#8220;香港九龙&#8221;,<br />
&#8220;homePhone&#8221; : &#8220;&#8221;,<br />
&#8220;homeZip&#8221; : &#8220;&#8221;,<br />
&#8220;id&#8221; : 12,<br />
&#8220;mobilePhone&#8221; : &#8220;15856453456&#8243;,<br />
&#8220;orderNum&#8221; : 0,<br />
&#8220;remark&#8221; : &#8220;香港富豪&#8221;,<br />
&#8220;sex&#8221; : &#8220;1&#8243;,<br />
&#8220;userName&#8221; : &#8220;李嘉诚&#8221;<br />
}</p></blockquote>
</li>
</ul>
</li>
<li> 前台获得了结果集之后就可以根据key获得value来设置详细页面的内容了，代码如下：

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>key <span style="color: #000066; font-weight: bold;">in</span> json<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>key <span style="color: #339933;">==</span> <span style="color: #3366CC;">'id'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#detailDiv #'</span> <span style="color: #339933;">+</span> key<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#91;</span>key<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#detailDiv #'</span> <span style="color: #339933;">+</span> key<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#91;</span>key<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>至此就是我们刚刚看到的效果了，是不是很简单O(∩_∩)O~</li>
</ul>
<p>附：</p>
<ul>
<li><a href="http://www.wsria.cn/archives/73" target="_blank">系统效果预览：http://www.wsria.cn/archives/73</a></li>
<li><a href="http://www.wsria.cn/archives/73" target="_blank">系统源码下载：http://www.wsria.cn/archives/73</a></li>
</ul>
<p class="copyright_info"><strong class="icon">声明:</strong>该日志由<a title="由 咖啡兔 发表" href="http://www.wsria.cn/archives/author/admin/" linkindex="13">咖啡兔</a>发表,你可以自由发表评论或转载到你的网站或博客。 <br/><span style="padding-left:20px">转载请注明转自<a rel="bookmark inlinks" href="http://www.wsria.cn/wordpress/" title="what is the RIA?  just it…||咖啡兔" linkindex="14"> what is the RIA?  just it…||咖啡兔 &trade;</a></span><br />
<strong class="icon">原始链接:</strong><a href="http://www.wsria.cn/archives/369">http://www.wsria.cn/archives/369 | 实例解析java + jQuery + json工作过程(获取JSON数据)</a>
</p>
<h3>相关文章</h3>
<ul class="related_posts">
<li><a href="http://www.wsria.cn/archives/670" title="使用hibernate和json-lib时忽略属性和集合" rel="bookmark inlinks">使用hibernate和json-lib时忽略属性和集合</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/733" title="推荐：2009 年度最佳 jQuery 插件" rel="bookmark inlinks">推荐：2009 年度最佳 jQuery 插件</a><span class="count">( 2 )</span></li>
<li><a href="http://www.wsria.cn/archives/659" title="[推荐]改进的提示插件-jQuery.hiAlerts.1.0" rel="bookmark inlinks">[推荐]改进的提示插件-jQuery.hiAlerts.1.0</a><span class="count">( 1 )</span></li>
<li><a href="http://www.wsria.cn/archives/772" title="jQuery 1.4 正式版发布啦(14 Days of jQuery)" rel="bookmark inlinks">jQuery 1.4 正式版发布啦(14 Days of jQuery)</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/640" title="推荐一个ajax资源站点" rel="bookmark inlinks">推荐一个ajax资源站点</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/796" title="jQuery1.4 API 区别与更新中文版" rel="bookmark inlinks">jQuery1.4 API 区别与更新中文版</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/1026" title="工欲善其事，必先利其器" rel="bookmark inlinks">工欲善其事，必先利其器</a><span class="count">( 4 )</span></li>
<li><a href="http://www.wsria.cn/archives/300" title="实例解析java + jQuery + json工作过程(登录)" rel="bookmark inlinks">实例解析java + jQuery + json工作过程(登录)</a><span class="count">( 8 )</span></li>
</ul>
<p>&copy;2010 <a href="http://www.wsria.cn">what is the RIA?  just it…||咖啡兔</a>. All Rights Reserved.</p>.<img src="http://www.wsria.cn/wordpress/?ak_action=api_record_view&id=369&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.wsria.cn/archives/369/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>实例解析java + jQuery + json工作过程(登录)</title>
		<link>http://www.wsria.cn/archives/300</link>
		<comments>http://www.wsria.cn/archives/300#comments</comments>
		<pubDate>Tue, 24 Feb 2009 13:55:29 +0000</pubDate>
		<dc:creator>咖啡兔</dc:creator>
				<category><![CDATA[个人作品]]></category>
		<category><![CDATA[前端技术]]></category>
		<category><![CDATA[后台技术]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Finance]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[json-lib]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[源码]]></category>

		<guid isPermaLink="false">http://www.wsria.cn/?p=300</guid>
		<description><![CDATA[主要讲解在java环境下使用jQuery进行JSON数据传送的交互过程
实例解析java + ajax(jQuery) + json工作过程]]></description>
			<content:encoded><![CDATA[<p><span style="color: #008000;">本文主要讲解在java环境下使用<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/jquery" title="查看 jQuery 中所有日志" target="_blank">jQuery</a></span>进行JSON数据传送的交互过程</span></p>
<p>参考根据作者的<a href="http://www.wsria.cn/archives/73" target="_blank">账务管理系统(个人版)</a> <a href="http://www.wsria.cn/archives/136" target="_blank">源码下载</a> 讲解<br />
<span id="more-300"></span></p>
<p>一、相关技术、工具简介</p>
<p>1、简单介绍一下<a href="http://www.json.org/json-zh.html" target="_blank">JSON</a>，JSON是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。已键值对形式表示数据，和java中的Map的数据存储形式相似，具体细节请参考<a href="http://www.json.org/json-zh.html" target="_blank">http://www.json.org/json-zh.html</a>。</p>
<p>2、对应后台JSON的数据处理工具<a title="java解析JSON数据使用的工具包" href="http://json-lib.sourceforge.net/" target="_blank">json-lib</a>，包含各种格式数据的工具类，比如：<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/java" title="查看 Java 中所有日志" target="_blank">Java</a></span>Bean、数组、集合(Collection)等，<a href="http://json-lib.sourceforge.net/apidocs/jdk15/index.html" target="_blank">参考API文档</a>。</p>
<p>3、<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/jquery" title="查看 jQuery 中所有日志" target="_blank">jQuery</a></span>框架中的数据表现形式，如果你熟悉jQuery的话就会发现jQuery的使用的数据传输都是JSON格式，比如我们经常使用的$.ajax方法：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$.<span style="color: #660066;">ajax</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
	url <span style="color: #339933;">:</span> url<span style="color: #339933;">,</span>
	data <span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span>
		id <span style="color: #339933;">:</span> chkValue
	<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
	cache <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span>
	dataType <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;json&quot;</span><span style="color: #339933;">,</span>
	success <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>result<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>result<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>其中 {&#8230;} 表示的就是JSON格式的数据</p>
<p>二、前台工作方式<br />
为了能够容易理解以系统登录讲解，最后会以一个实例的方式讲解<br />
1、登录页面<br />
代码请参见 <a href="http://code.google.com/p/finance-p/source/browse/trunk/login.jsp" target="_blank">http://code.google.com/p/finance-p/source/browse/trunk/login.jsp</a></p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">用户名：
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;loginName&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;loginName&quot;</span> <span style="color: #000066;">size</span>=<span style="color: #ff0000;">&quot;20&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
密码：
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;password&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;password&quot;</span> <span style="color: #000066;">size</span>=<span style="color: #ff0000;">&quot;20&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;password&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span></pre></div></div>

<p>2、登录javascript文件 login.js</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">/**
 * 设置表单验证规则
 */</span>
<span style="color: #003366; font-weight: bold;">function</span> regFormValidator<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	$.<span style="color: #660066;">formValidator</span>.<span style="color: #660066;">initConfig</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>formid<span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;loginForm&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#loginName&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">formValidator</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
		onshow <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;请输入用户名&quot;</span><span style="color: #339933;">,</span>
		<span style="color: #000066;">onfocus</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;用户名至少2个字,最多4个字&quot;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">inputValidator</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
		min <span style="color: #339933;">:</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">,</span>
		<span style="color: #000066;">onerror</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;你输入的用户名非法,请确认&quot;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#password&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">formValidator</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
		onshow <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;请输入密码&quot;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">inputValidator</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
		min <span style="color: #339933;">:</span> <span style="color: #CC0000;">6</span><span style="color: #339933;">,</span>
		<span style="color: #000066;">onerror</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;密码在6位以上，请确认&quot;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
$<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #006600; font-style: italic;">// 注册表单验证插件</span>
	regFormValidator<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#submit'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #006600; font-style: italic;">// 验证输入的用户名、密码是否正确</span>
		<span style="color: #003366; font-weight: bold;">var</span> valid <span style="color: #339933;">=</span> jQuery.<span style="color: #660066;">formValidator</span>.<span style="color: #660066;">pageIsValid</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>valid<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'value'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'正在登录……'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'disabled'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #006600; font-style: italic;">// 发送请求</span>
		$.<span style="color: #660066;">ajax</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
			url	<span style="color: #339933;">:</span> <span style="color: #3366CC;">'login.do'</span><span style="color: #339933;">,</span>
			data	<span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span> loginName<span style="color: #339933;">:</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#loginName'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> password<span style="color: #339933;">:</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#password'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
			success <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>result<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				<span style="color: #006600; font-style: italic;">// 根据result返回信息判断是否登录成功</span>
				<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>result <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> result <span style="color: #339933;">==</span> <span style="color: #3366CC;">'success'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					window.<span style="color: #660066;">location</span>.<span style="color: #660066;">href</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'index.jsp'</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'登录失败，用户名或密码错误，请重试！'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>这样当点击“登录”按钮的时候触发ajax请求：</p>
<ol>
<li>验证表单完整性</li>
<li>发送ajax请求到后台，值通过data键已JSON格式传送至后台</li>
<li>如果后台返回的result为success时表示登录成功，页面跳转至首页index.jsp</li>
</ol>
<p>三、后台工作方式</p>
<p>后台要比前台操作复杂一些，以为涉及到<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/%e6%95%b0%e6%8d%ae%e5%ba%93" title="查看 数据库 中所有日志" target="_blank">数据库</a></span>、编码或者一些业务逻辑</p>
<p>1、获得请求参数</p>
<p>有两种方式：</p>
<ul>
<li>通过request.getParameter(&#8220;key&#8221;)的方式</li>
<li>通过<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/json" title="查看 json 中所有日志" target="_blank">json</a></span>-lib工具包获取</li>
</ul>
<p>这我们主要讲解怎么通过<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/json" title="查看 json 中所有日志" target="_blank">json</a></span>-lib获取参数</p>
<p>首先我们来写一个公共的方法，可以返回一个<a title="查看API文档" href="http://json-lib.sourceforge.net/apidocs/jdk15/net/sf/json/JSONObject.html" target="_blank">net.sf.json.JSONObject</a>对象，具体代码如下：</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #008000; font-style: italic; font-weight: bold;">/**
 * 读取请求参数转换JSONObject对象
 *
 * @param request HttpServletRequest 对象
 * @return json格式的String对象
 * @throws Exception
 */</span>
@SuppressWarnings<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;unchecked&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #000000; font-weight: bold;">protected</span> JSONObject readJson<span style="color: #009900;">&#40;</span>HttpServletRequest request<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Exception</span> <span style="color: #009900;">&#123;</span>
	JSONObject jsonObject <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> JSONObject<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">Map</span> parameterMap <span style="color: #339933;">=</span> request.<span style="color: #006633;">getParameterMap</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #666666; font-style: italic;">// 通过循环遍历的方式获得key和value并set到JSONObject中</span>
		<span style="color: #003399;">Iterator</span> paIter <span style="color: #339933;">=</span> parameterMap.<span style="color: #006633;">keySet</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">iterator</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>paIter.<span style="color: #006633;">hasNext</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #003399;">String</span> key <span style="color: #339933;">=</span> paIter.<span style="color: #006633;">next</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> values <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>parameterMap.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>key<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			jsonObject.<span style="color: #006633;">accumulate</span><span style="color: #009900;">&#40;</span>key, values<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		log.<span style="color: #006633;">debug</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;从客户端获得json=&quot;</span> <span style="color: #339933;">+</span> jsonObject.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		log.<span style="color: #006633;">error</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;获取json数据出错，错误信息如下：nt&quot;</span> <span style="color: #339933;">+</span> e.<span style="color: #006633;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">throw</span> e<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">return</span> jsonObject<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>通过这个方法我们可以获得一个JSONObject对象，然后就可以通过key获得对应的value；</p>
<p>2、登录处理Action</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> ActionForward login<span style="color: #009900;">&#40;</span>ActionMapping mapping, ActionForm actionForm,
             HttpServletRequest request,HttpServletResponse response<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Exception</span> <span style="color: #009900;">&#123;</span>
	JSONObject jsonObject <span style="color: #339933;">=</span> readJson<span style="color: #009900;">&#40;</span>request<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003399;">String</span> name <span style="color: #339933;">=</span> jsonObject.<span style="color: #006633;">getString</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;loginName&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003399;">String</span> pass <span style="color: #339933;">=</span> jsonObject.<span style="color: #006633;">getString</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;password&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">int</span> loginFlag <span style="color: #339933;">=</span> userManager.<span style="color: #006633;">validLogin</span><span style="color: #009900;">&#40;</span>name, pass<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>loginFlag <span style="color: #339933;">==</span> UserManager.<span style="color: #006633;">LOGIN_SUCCESS</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			User user <span style="color: #339933;">=</span> userManager.<span style="color: #006633;">getUserByNameAndPass</span><span style="color: #009900;">&#40;</span>name, pass<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			UserUtil.<span style="color: #006633;">saveUser2Session</span><span style="color: #009900;">&#40;</span>user, request<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			log.<span style="color: #006633;">info</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;用户&amp;lt;&quot;</span> <span style="color: #339933;">+</span> user.<span style="color: #006633;">getUserName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
                              <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;,ip=&quot;</span> <span style="color: #339933;">+</span> request.<span style="color: #006633;">getRemoteAddr</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;&amp;gt;登录系统&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			print<span style="color: #009900;">&#40;</span>response, RESBONSE_SUCCESS<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>loginFlag <span style="color: #339933;">==</span> UserManager.<span style="color: #006633;">LOGIN_FAIL</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			print<span style="color: #009900;">&#40;</span>response, RESBONSE_ERROR<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>解释：</p>
<p>在34行我们通过刚刚准备好的readJson方法获得一个JSONObject对象，接下来通过key获得用户名和密码，接下来就是业务逻辑的验证工作了，通过后我们向前台返回请求结果。<br />
我们还需要一个小方法向前台写结果，如上面44、46行</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000066; font-weight: bold;">void</span> print<span style="color: #009900;">&#40;</span>HttpServletResponse response, <span style="color: #003399;">String</span> info<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">IOException</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
		response.<span style="color: #006633;">getWriter</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">print</span><span style="color: #009900;">&#40;</span>info<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">IOException</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">throw</span> e<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<blockquote><p>这里有一点要说明，在获得输出流的时候有个小插曲，我在开发的时候使用的tomcat5.5.26版本，<br />
当时的写法为：</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">response.<span style="color: #006633;">getOutputStream</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">print</span><span style="color: #009900;">&#40;</span>info<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>后来<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/%e6%ba%90%e7%a0%81" title="查看 源码 中所有日志" target="_blank">源码</a></span>开源后一个网友使用的tomcat6版本，说系统不能正常运行，后来他查到了原因，因为获得输出流时出了问题，<br />
改成getWriter就没有问题了，集体也没有搞清除为什么会是这样……</p></blockquote>
<p>基于java开发时会使用struts，struts需要返回一个ActionMapping对象，但是在ajax请求不需要返回特定页面，因为根本没有跳转页面的动作，解决办法很简单，直接<strong>return  null</strong>就可以了</p>
<p>输出结果后jQuery的ajax的success方法就接收到了请求结果，然后就可以根据结果处理业务逻辑了O(∩_∩)O~</p>
<p>OK，到此整个请求结束，有不明白的请留言或者到<a href="http://www.wsria.cn/about" target="_blank">“关于”</a>中联系我</p>
<p>注：本文为原创文章，转载请注明来自 <a href="http://www.wsria.cn/archives/300" target="_blank">http://www.wsria.cn/archives/300</a><br />
作者：<a href="http://www.wsria.cn" target="_blank">www.wsria.cn</a>
<p class="copyright_info"><strong class="icon">声明:</strong>该日志由<a title="由 咖啡兔 发表" href="http://www.wsria.cn/archives/author/admin/" linkindex="13">咖啡兔</a>发表,你可以自由发表评论或转载到你的网站或博客。 <br/><span style="padding-left:20px">转载请注明转自<a rel="bookmark inlinks" href="http://www.wsria.cn/wordpress/" title="what is the RIA?  just it…||咖啡兔" linkindex="14"> what is the RIA?  just it…||咖啡兔 &trade;</a></span><br />
<strong class="icon">原始链接:</strong><a href="http://www.wsria.cn/archives/300">http://www.wsria.cn/archives/300 | 实例解析java + jQuery + json工作过程(登录)</a>
</p>
<h3>相关文章</h3>
<ul class="related_posts">
<li><a href="http://www.wsria.cn/archives/196" title="转：jquery1.2.6源码分析" rel="bookmark inlinks">转：jquery1.2.6源码分析</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/807" title="jQuery 1.4.1 中文文档 CHM 版发布" rel="bookmark inlinks">jQuery 1.4.1 中文文档 CHM 版发布</a><span class="count">( 1 )</span></li>
<li><a href="http://www.wsria.cn/archives/89" title="基于Java、jQuery开发的账务管理系统(个人版)即将开源" rel="bookmark inlinks">基于Java、jQuery开发的账务管理系统(个人版)即将开源</a><span class="count">( 13 )</span></li>
<li><a href="http://www.wsria.cn/archives/369" title="实例解析java + jQuery + json工作过程(获取JSON数据)" rel="bookmark inlinks">实例解析java + jQuery + json工作过程(获取JSON数据)</a><span class="count">( 1 )</span></li>
<li><a href="http://www.wsria.cn/archives/241" title="单表查询树形结构的SQL语句" rel="bookmark inlinks">单表查询树形结构的SQL语句</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/582" title="如何判断一个请求是否为AJAX请求" rel="bookmark inlinks">如何判断一个请求是否为AJAX请求</a><span class="count">( 2 )</span></li>
<li><a href="http://www.wsria.cn/archives/772" title="jQuery 1.4 正式版发布啦(14 Days of jQuery)" rel="bookmark inlinks">jQuery 1.4 正式版发布啦(14 Days of jQuery)</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/342" title="【推荐】jQuery.plugin——对话框jquery.weebox.js" rel="bookmark inlinks">【推荐】jQuery.plugin——对话框jquery.weebox.js</a><span class="count">( 5 )</span></li>
</ul>
<p>&copy;2010 <a href="http://www.wsria.cn">what is the RIA?  just it…||咖啡兔</a>. All Rights Reserved.</p>.<img src="http://www.wsria.cn/wordpress/?ak_action=api_record_view&id=300&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.wsria.cn/archives/300/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>基于Java、jQuery应用的账务管理系统开源了(09.3.19更新)</title>
		<link>http://www.wsria.cn/archives/136</link>
		<comments>http://www.wsria.cn/archives/136#comments</comments>
		<pubDate>Sat, 14 Feb 2009 09:35:00 +0000</pubDate>
		<dc:creator>咖啡兔</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[个人作品]]></category>
		<category><![CDATA[项目]]></category>
		<category><![CDATA[开源]]></category>

		<guid isPermaLink="false">http://www.wsria.cn/?p=136</guid>
		<description><![CDATA[在这个特殊的日子还是继续宅男的生活，过着没有情人的情人节，但是今年这个没有情人的情人节要献给广大Java、jQuery技术爱好者一份大礼，半年来周末、下班时间学习使用的账务管理系统公开源代码了，关于系统的说明请参看本博客相关文章，废话不说了，googlecode地址公布如下]]></description>
			<content:encoded><![CDATA[<p>基于Java、jQuery开发的账务管理系统(个人版)系统演示及源码共享，致力于企业级RIA应用……</p>
<p><span id="more-136"></span></p>
<p>在这个特殊的日子还是继续宅男的生活，过着没有情人的情人节，但是今年这个没有情人的情人节要献给广大Java、jQuery技术爱好者一份大礼，半年来周末、下班时间学习使用的账务管理系统公<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/%e5%bc%80%e6%ba%90" title="查看 开源 中所有日志" target="_blank">开源</a></span>代码了，关于系统的说明请参看本博客相关文章，废话不说了，googlecode地址公布如下：</p>
<p>2009.02.25更新……</p>
<blockquote><p>版本库主页：<a href="http://code.google.com/p/finance-p/" target="_blank">http://code.google.com/p/finance-p/</a><br />
匿名检出版本库：svn checkout http://finance-p.googlecode.com/svn/trunk/ finance<br />
<a href="http://code.google.com/p/finance-p/downloads/list" target="_blank">googlecode</a>上去下载<!--，也可以从从本站下载：<a href="http://www.wsria.cn/wordpress/wp-content/plugins/download-monitor/download.php?id=4" title="版本：1.0.1，类别：[finance]，描述：基于Java、jQuery开发的个人版账务管理系统源代码
版本1.0.1中修改了查询区域的风格，包含了classes目录和eclipse工程信息">finance1.0.1.zip</a>&nbsp;共&nbsp;2320&nbsp;次--></p>
<p><a href="http://www.wsria.cn/archives/73" target="_blank">预览系统演示视频</a></p></blockquote>
<blockquote><p>关于系统功能的内部实现会陆续发布文章供大家研究、学习</p>
<p>如果你想参与到此项目的继续开发请联系博主</p>
<p>代码、功能仅供学习、参考，肯定存在一定问题，希望一块学习</p></blockquote>
<h2>更新2009.2.26</h2>
<blockquote><p>最近有一个网友下载了基于Java、jQuery开发的账务管理系统，上次的文档写的不完整，在这里向各位表示歉意，下面写一个完整的安装文档：</p>
<p style="text-indent: 21pt;"><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL /> <w:BalanceSingleByteDoubleByteWidth /> <w:DoNotLeaveBackslashAlone /> <w:ULTrailSpace /> <w:DoNotExpandShiftReturn /> <w:AdjustLineHeightInTable /> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:UseFELayout /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--></p>
</blockquote>
<blockquote><p><strong>一、</strong><strong>一个仅供学习之用的账务管理系统</strong><strong>(</strong><strong>个人版</strong><strong>)</strong></p>
<p><strong>系统简介</strong>： 1、实现了用户、组管理 2、实现了物品类别、详细管理 3、实现了基本账务(货币)管理</p>
<p>开发此系统的初衷在于学习技术以便更好的应用在公司的项目中，本系统特别注重用户体验方面的设计，友好的界面和傻瓜式的操作</p>
<p><strong>前后台架构</strong>： 1、java语言(jdk1.5)、struts1.2.9、hibernate3.2.6.ga、spring2.0.8 2、前台：主要使用了轻量级的ajax开发框架jQuery，使用jQuery很轻松的降低了服务器压力提高了用户体验并且代码容易维护，尤其是jQuery的插件机制更是简易了代码 3、数据库版本为mysql5.0 4、编码：为防止ajax乱码，所以项目、数据库全部使用UTF-8编码</p>
<p>浏览器兼容性： 目前的设计兼容IE7+、FireFox、Chrome(有一点路径问题) 因为IE6下的CSS文件还为完成所以使用IE6访问系统会出现布局不美观情况</p>
<p><strong>二、系统配置说明</strong></p>
<p>1、<strong>数据库</strong></p>
<ul>
<li>mysql，本人使用版本是5.0.18</li>
<li>建立数据库名称为：finance，字符集设置为UTF-8，然后导入bak/finance.sql文件</li>
</ul>
<div id="attachment_337" class="wp-caption aligncenter" style="width: 285px"><img class="size-full wp-image-337" title="dbinfo" src="http://www.wsria.cn/wordpress/wp-content/uploads/2009/02/dbinfo.png" alt="mysql数据库属性" width="275" height="171" /><p class="wp-caption-text">mysql数据库属性</p></div>
<p>2、<strong>编译项目</strong></p>
<p><strong>说明：本项目没有使用标准的WebRoot格式，源代码文件夹SRC位于/WEB-INF/SRC目录下<br />
</strong></p>
<ul>
<li>SVN版本库和压缩包中没有class文件，即/WEB-INF目录下没有classes目录，<strong><em>需要自己使用eclipse编译</em></strong>，所有用到的jar包都在WEB-INF/lib目录下，即<span style="color: #0000ff;"><em>eclipse中build path&#8211;&gt;libraries</em></span>设置，各个框架的版本上面都已说明</li>
<li>编译时如果使用MyEclipse的话使用J2EE1.4这个library</li>
<li>使用tomcat或者weblogic等服务器jar包的请自行引入</li>
<div id="attachment_338" class="wp-caption alignleft" style="width: 172px"><a href="http://www.wsria.cn/wordpress/wp-content/uploads/2009/02/eclipsedir.png"><img class="size-full wp-image-338" title="eclipsedir" src="http://www.wsria.cn/wordpress/wp-content/uploads/2009/02/eclipsedir.png" alt="配置完成的eclipse目录" width="162" height="430" /></a></p>
<div class="mceTemp mceIEcenter">
<dl id="attachment_357" class="wp-caption aligncenter" style="width: 510px;">
<dt class="wp-caption-dt"><a href="http://www.wsria.cn/wordpress/wp-content/uploads/2009/02/eclipselib.png" target="_blank"><img class="size-medium wp-image-357" title="eclipselib" src="http://www.wsria.cn/wordpress/wp-content/uploads/2009/02/eclipselib-300x169.png" alt="eclipse编译环境" width="500" height="200" /></a><p class="wp-caption-text">eclipse编译环境</p></div>
</dt>
<dd class="wp-caption-dd">配置完成的eclipse目录</dd>
</dl>
</div>
</ul>
<p>3、<strong>设置、启动服务</strong></p>
<ul>
<li>打开finance/WEB-INF/config/applicationContext.xml：</li>
<li>修改<strong>第10、11行的数据库名和密码</strong>为你的mysql数据库用户名、密码</li>
<li><strong>部署tomcat应用：</strong>
<ul>
<li>在tomcat目录confCatalinalocalhost下建立一个finance.xml</li>
<li>内容：&lt;Context docBase=&#8221;D:projectsfinancetrunk&#8221; reloadable=&#8221;true&#8221; privileged=&#8221;true&#8221;&gt;&lt;/Context&gt;<br />
docBase根据自己的情况设置</li>
</ul>
</li>
<li>做完上面两步后就可以启动服务了，如果应用名设置为finance就直接可以访问了，如果自己另外定了应用名称则需要修改common/js/plugin/weebox.js中第17行，改为：url: &#8216;/<strong><em>应用名称</em></strong>/common/js/plugin/bgiframe.js&#8217;即可</li>
<li>访问系统最好使用Firefox浏览器，因为FF内置的JS引擎机制速度比IE快的多，或者google的Chrome浏览器也不错，其内置的JS8引擎比FF的性能还要好</li>
<p><div id="attachment_55" class="wp-caption alignleft" style="width: 501px"><a href="http://www.wsria.cn/wordpress/wp-content/uploads/2009/02/finance.png"><img class="size-full wp-image-55" title="finance" src="http://www.wsria.cn/wordpress/wp-content/uploads/2009/02/finance.png" alt="账务管理系统(个人版)演示" width="491" height="371" /></a><p class="wp-caption-text">账务管理系统(个人版)演示</p></div></ul>
<p><strong>4</strong><strong>、更新最新版本</strong><strong> </strong></p>
<p><em><strong><a href="http://finance-p.googlecode.com/svn/trunk/">http://finance-p.googlecode.com/svn/trunk/</a></strong></em><tt></tt></p>
<p>声明：本系统仅供学习使用，禁止商业应用 版权归<a href="http://www.wsria.cn" target="_blank">http://www.wsria.cn</a>所有</p>
<p>如果有问题请联系作者：</p>
<p>QQ：576525789<br />
MSN：yanhonglei@gmail.com</p></blockquote>
<p class="copyright_info"><strong class="icon">声明:</strong>该日志由<a title="由 咖啡兔 发表" href="http://www.wsria.cn/archives/author/admin/" linkindex="13">咖啡兔</a>发表,你可以自由发表评论或转载到你的网站或博客。 <br/><span style="padding-left:20px">转载请注明转自<a rel="bookmark inlinks" href="http://www.wsria.cn/wordpress/" title="what is the RIA?  just it…||咖啡兔" linkindex="14"> what is the RIA?  just it…||咖啡兔 &trade;</a></span><br />
<strong class="icon">原始链接:</strong><a href="http://www.wsria.cn/archives/136">http://www.wsria.cn/archives/136 | 基于Java、jQuery应用的账务管理系统开源了(09.3.19更新)</a>
</p>
<h3>相关文章</h3>
<ul class="related_posts">
<li><a href="http://www.wsria.cn/archives/369" title="实例解析java + jQuery + json工作过程(获取JSON数据)" rel="bookmark inlinks">实例解析java + jQuery + json工作过程(获取JSON数据)</a><span class="count">( 1 )</span></li>
<li><a href="http://www.wsria.cn/archives/300" title="实例解析java + jQuery + json工作过程(登录)" rel="bookmark inlinks">实例解析java + jQuery + json工作过程(登录)</a><span class="count">( 8 )</span></li>
<li><a href="http://www.wsria.cn/archives/718" title="关于本站开源项目finance的演示视频和源代码不能下载说明" rel="bookmark inlinks">关于本站开源项目finance的演示视频和源代码不能下载说明</a><span class="count">( 1 )</span></li>
<li><a href="http://www.wsria.cn/archives/827" title="新年新气象，博客新面貌" rel="bookmark inlinks">新年新气象，博客新面貌</a><span class="count">( 3 )</span></li>
<li><a href="http://www.wsria.cn/archives/1026" title="工欲善其事，必先利其器" rel="bookmark inlinks">工欲善其事，必先利其器</a><span class="count">( 4 )</span></li>
<li><a href="http://www.wsria.cn/archives/89" title="基于Java、jQuery开发的账务管理系统(个人版)即将开源" rel="bookmark inlinks">基于Java、jQuery开发的账务管理系统(个人版)即将开源</a><span class="count">( 13 )</span></li>
</ul>
<p>&copy;2010 <a href="http://www.wsria.cn">what is the RIA?  just it…||咖啡兔</a>. All Rights Reserved.</p>.<img src="http://www.wsria.cn/wordpress/?ak_action=api_record_view&id=136&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.wsria.cn/archives/136/feed</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
	</channel>
</rss>
