﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-快乐的 想飞 就飞-随笔分类-J2EE</title><link>http://www.blogjava.net/wldandan/category/23452.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 13 Jul 2012 11:13:54 GMT</lastBuildDate><pubDate>Fri, 13 Jul 2012 11:13:54 GMT</pubDate><ttl>60</ttl><item><title>从零开始学习Gradle之二---如何使用Task</title><link>http://www.blogjava.net/wldandan/archive/2012/07/05/382246.html</link><dc:creator>想飞就飞</dc:creator><author>想飞就飞</author><pubDate>Thu, 05 Jul 2012 05:42:00 GMT</pubDate><guid>http://www.blogjava.net/wldandan/archive/2012/07/05/382246.html</guid><wfw:comment>http://www.blogjava.net/wldandan/comments/382246.html</wfw:comment><comments>http://www.blogjava.net/wldandan/archive/2012/07/05/382246.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wldandan/comments/commentRss/382246.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wldandan/services/trackbacks/382246.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Gradle 是以 Groovy 语言为基础，面向Java应用为主，基于DSL语法的自动化构建工具。这次，让我们探讨一下Gradle中更多关于Project或者Task中的玄机。&nbsp;&nbsp;<a href='http://www.blogjava.net/wldandan/archive/2012/07/05/382246.html'>阅读全文</a><img src ="http://www.blogjava.net/wldandan/aggbug/382246.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wldandan/" target="_blank">想飞就飞</a> 2012-07-05 13:42 <a href="http://www.blogjava.net/wldandan/archive/2012/07/05/382246.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>从零开始学习Gradle之一---初识Gradle</title><link>http://www.blogjava.net/wldandan/archive/2012/06/27/381605.html</link><dc:creator>想飞就飞</dc:creator><author>想飞就飞</author><pubDate>Wed, 27 Jun 2012 07:32:00 GMT</pubDate><guid>http://www.blogjava.net/wldandan/archive/2012/06/27/381605.html</guid><wfw:comment>http://www.blogjava.net/wldandan/comments/381605.html</wfw:comment><comments>http://www.blogjava.net/wldandan/archive/2012/06/27/381605.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/wldandan/comments/commentRss/381605.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wldandan/services/trackbacks/381605.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Gradle中有两个基本的概念：project和task。每个Gradle的构建由一个且只有一个project构成，它代表着需要被构建的组件或者构建的整个项目。每个project由一个或者多个task组成。task代表着Gradle构建过程中可执行的最小单元。例如当构建一个组件时，可能需要先编译、打包、然后再生成文档或者发布等，这其中的每个步骤都可以定义成一个task。&nbsp;&nbsp;<a href='http://www.blogjava.net/wldandan/archive/2012/06/27/381605.html'>阅读全文</a><img src ="http://www.blogjava.net/wldandan/aggbug/381605.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wldandan/" target="_blank">想飞就飞</a> 2012-06-27 15:32 <a href="http://www.blogjava.net/wldandan/archive/2012/06/27/381605.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Gradle, 基于DSL的新一代Java构建工具</title><link>http://www.blogjava.net/wldandan/archive/2012/06/26/381532.html</link><dc:creator>想飞就飞</dc:creator><author>想飞就飞</author><pubDate>Tue, 26 Jun 2012 09:38:00 GMT</pubDate><guid>http://www.blogjava.net/wldandan/archive/2012/06/26/381532.html</guid><wfw:comment>http://www.blogjava.net/wldandan/comments/381532.html</wfw:comment><comments>http://www.blogjava.net/wldandan/archive/2012/06/26/381532.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wldandan/comments/commentRss/381532.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wldandan/services/trackbacks/381532.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Gradle 是以 Groovy 语言为基础，面向Java应用为主，基于DSL语法的自动化构建工具。说到java的自动化构建工具，大家一定对Ant和Maven都不会陌生，对，Gradle就是这样一种类似的工具，不过它比Ant和Maven强大的多。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/wldandan/archive/2012/06/26/381532.html'>阅读全文</a><img src ="http://www.blogjava.net/wldandan/aggbug/381532.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wldandan/" target="_blank">想飞就飞</a> 2012-06-26 17:38 <a href="http://www.blogjava.net/wldandan/archive/2012/06/26/381532.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何消除VeraCode检测中的OS Command Injection Issue(CWE ID 78)</title><link>http://www.blogjava.net/wldandan/archive/2011/09/06/358066.html</link><dc:creator>想飞就飞</dc:creator><author>想飞就飞</author><pubDate>Tue, 06 Sep 2011 02:28:00 GMT</pubDate><guid>http://www.blogjava.net/wldandan/archive/2011/09/06/358066.html</guid><wfw:comment>http://www.blogjava.net/wldandan/comments/358066.html</wfw:comment><comments>http://www.blogjava.net/wldandan/archive/2011/09/06/358066.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wldandan/comments/commentRss/358066.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wldandan/services/trackbacks/358066.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Veracode是一个检测应用程序是否存在安全漏洞的工具，更多细节请访问http://www.veracode.com。<br>这里主要总结一下如何消除Veracode检测结果中的OS Command Injection((CWE ID 78)) 的问题......&nbsp;&nbsp;<a href='http://www.blogjava.net/wldandan/archive/2011/09/06/358066.html'>阅读全文</a><img src ="http://www.blogjava.net/wldandan/aggbug/358066.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wldandan/" target="_blank">想飞就飞</a> 2011-09-06 10:28 <a href="http://www.blogjava.net/wldandan/archive/2011/09/06/358066.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何消除VeraCode检测中的SQL Injection Issue(CWE ID 89)</title><link>http://www.blogjava.net/wldandan/archive/2011/09/05/357991.html</link><dc:creator>想飞就飞</dc:creator><author>想飞就飞</author><pubDate>Mon, 05 Sep 2011 06:09:00 GMT</pubDate><guid>http://www.blogjava.net/wldandan/archive/2011/09/05/357991.html</guid><wfw:comment>http://www.blogjava.net/wldandan/comments/357991.html</wfw:comment><comments>http://www.blogjava.net/wldandan/archive/2011/09/05/357991.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/wldandan/comments/commentRss/357991.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wldandan/services/trackbacks/357991.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Veracode是一个检测应用程序是否存在安全漏洞的工具，更多细节请访问http://www.veracode.com。<br>这里主要总结一下如何消除Veracode检测结果中的SQL Injection 的问题......&nbsp;&nbsp;<a href='http://www.blogjava.net/wldandan/archive/2011/09/05/357991.html'>阅读全文</a><img src ="http://www.blogjava.net/wldandan/aggbug/357991.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wldandan/" target="_blank">想飞就飞</a> 2011-09-05 14:09 <a href="http://www.blogjava.net/wldandan/archive/2011/09/05/357991.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用Grails构建REST API</title><link>http://www.blogjava.net/wldandan/archive/2010/10/28/336393.html</link><dc:creator>想飞就飞</dc:creator><author>想飞就飞</author><pubDate>Thu, 28 Oct 2010 09:38:00 GMT</pubDate><guid>http://www.blogjava.net/wldandan/archive/2010/10/28/336393.html</guid><wfw:comment>http://www.blogjava.net/wldandan/comments/336393.html</wfw:comment><comments>http://www.blogjava.net/wldandan/archive/2010/10/28/336393.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wldandan/comments/commentRss/336393.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wldandan/services/trackbacks/336393.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 使用Grails构建REST API&nbsp;&nbsp;<a href='http://www.blogjava.net/wldandan/archive/2010/10/28/336393.html'>阅读全文</a><img src ="http://www.blogjava.net/wldandan/aggbug/336393.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wldandan/" target="_blank">想飞就飞</a> 2010-10-28 17:38 <a href="http://www.blogjava.net/wldandan/archive/2010/10/28/336393.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>修正Grails in Action中上传文件的方法</title><link>http://www.blogjava.net/wldandan/archive/2010/08/11/328554.html</link><dc:creator>想飞就飞</dc:creator><author>想飞就飞</author><pubDate>Wed, 11 Aug 2010 08:48:00 GMT</pubDate><guid>http://www.blogjava.net/wldandan/archive/2010/08/11/328554.html</guid><wfw:comment>http://www.blogjava.net/wldandan/comments/328554.html</wfw:comment><comments>http://www.blogjava.net/wldandan/archive/2010/08/11/328554.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wldandan/comments/commentRss/328554.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wldandan/services/trackbacks/328554.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 修正Grails in Action中第5章的上传文件代码&nbsp;&nbsp;<a href='http://www.blogjava.net/wldandan/archive/2010/08/11/328554.html'>阅读全文</a><img src ="http://www.blogjava.net/wldandan/aggbug/328554.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wldandan/" target="_blank">想飞就飞</a> 2010-08-11 16:48 <a href="http://www.blogjava.net/wldandan/archive/2010/08/11/328554.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Grails中如何使用acegi requestmap 进行动态配置权限</title><link>http://www.blogjava.net/wldandan/archive/2010/06/30/324886.html</link><dc:creator>想飞就飞</dc:creator><author>想飞就飞</author><pubDate>Wed, 30 Jun 2010 07:05:00 GMT</pubDate><guid>http://www.blogjava.net/wldandan/archive/2010/06/30/324886.html</guid><wfw:comment>http://www.blogjava.net/wldandan/comments/324886.html</wfw:comment><comments>http://www.blogjava.net/wldandan/archive/2010/06/30/324886.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wldandan/comments/commentRss/324886.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wldandan/services/trackbacks/324886.html</trackback:ping><description><![CDATA[&nbsp; 考虑到权限应该可以由用户自行分配，所以静态的requestmap 和 controller annotations 的方法都不太合适。因此使用动态的requestmap，于是出现了一些小问题，如本文所描述：<br />
<br />
1. 安装acegi plugin<br />
<br />
2. acegi的一些概念以及用法参考 <br />
http://grails.org/plugin/acegi<br />
http://www.infoq.com/cn/articles/grails-acegi-integration<br />
<br />
3. 问题<br />
&nbsp; 在grails中，默认生成的show.gsp中是使用一个form带多个参数来提交，比如?_action_Edit=edit 或者 ?_action_Delete=delete,<br />
但对于requestmap，它实际是对于url进行限制的，并没有对参数做限制，所以这时候 grails提交的action就不会被requestmap检测到。<br />
<br />
4. 方案<br />
&nbsp; <br />
&nbsp;&nbsp; requestmap权限分配机制类似如下，这里只是demo。<br />
&nbsp;&nbsp; 实际中，可以在UI界面上通过使用checkbox来代替该requestmap的URI string，完成对role进行权限的分配。<br />
&nbsp; <br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">def&nbsp;projectListMap&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Requestmap(<br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url:&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">/project/list**</span><span style="color: #000000;">'</span><span style="color: #000000;">,<br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;configAttribute:&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">ROLE_USER,&nbsp;ROLE_ADMIN</span><span style="color: #000000;">'</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;projectListMap.save()<br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">def&nbsp;projectCreateMap&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Requestmap(<br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url:&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">/project/create**</span><span style="color: #000000;">'</span><span style="color: #000000;">,<br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;configAttribute:&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">ROLE_ADMIN</span><span style="color: #000000;">'</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;projectCreateMap.save()<br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">def&nbsp;projectEditMap&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Requestmap(<br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url:&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">/project/edit**</span><span style="color: #000000;">'</span><span style="color: #000000;">,<br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;configAttribute:&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">ROLE_ADMIN</span><span style="color: #000000;">'</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span></div>
<br />
&nbsp; 采用原生的html form代替grails的actionSubmit，显示的提交url，比如<br />
&nbsp; 使用<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">1</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">form&nbsp;</span><span style="color: #ff0000;">action</span><span style="color: #0000ff;">="/todolist/project/edit"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">2</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.blogjava.net/Images/dot.gif" alt="" />..<br />
</span><span style="color: #008080;">3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">form</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">form&nbsp;</span><span style="color: #ff0000;">action</span><span style="color: #0000ff;">="/todolist/project/delete"</span><span style="color: #ff0000;">&nbsp;method</span><span style="color: #0000ff;">="post"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.blogjava.net/Images/dot.gif" alt="" />..<br />
</span><span style="color: #008080;">6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">form</span><span style="color: #0000ff;">&gt;</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
代替原来的&nbsp;&nbsp;&nbsp; &nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">1</span>&nbsp;<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">g:form</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">2</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">g:hiddenField&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="id"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="${projectInstance?.id}"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">span&nbsp;</span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="button"</span><span style="color: #0000ff;">&gt;&lt;</span><span style="color: #800000;">g:actionSubmit&nbsp;</span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="edit"</span><span style="color: #ff0000;">&nbsp;action</span><span style="color: #0000ff;">="edit"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="${message(code:&nbsp;'default.button.edit.label',&nbsp;default:&nbsp;'Edit')}"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;&lt;/</span><span style="color: #800000;">span</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">span&nbsp;</span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="button"</span><span style="color: #0000ff;">&gt;&lt;</span><span style="color: #800000;">g:actionSubmit&nbsp;</span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="delete"</span><span style="color: #ff0000;">&nbsp;action</span><span style="color: #0000ff;">="delete"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="${message(code:&nbsp;'default.button.delete.label',&nbsp;default:&nbsp;'Delete')}"</span><span style="color: #ff0000;">&nbsp;onclick</span><span style="color: #0000ff;">="return&nbsp;confirm('${message(code:&nbsp;'default.button.delete.confirm.message',&nbsp;default:&nbsp;'Are&nbsp;you&nbsp;sure?')}');"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;&lt;/</span><span style="color: #800000;">span</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">5</span>&nbsp;<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">g:form</span><span style="color: #0000ff;">&gt;</span></div>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;4.参考<br />
http://grails.1312388.n4.nabble.com/acegi-requestmap-how-to-inspect-URL-parameters-td1382988.html<br />
<br />
5. 关于这种方式，有一些缺点，就是使用原来的方式可以绕开requestmap的限制，具体请看<br />
http://grails.1312388.n4.nabble.com/Unexpected-observations-using-spring-security-acegi-plugin-td1349785.html<br />
<br />
<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/wldandan/aggbug/324886.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wldandan/" target="_blank">想飞就飞</a> 2010-06-30 15:05 <a href="http://www.blogjava.net/wldandan/archive/2010/06/30/324886.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MYSQL 字符集问题</title><link>http://www.blogjava.net/wldandan/archive/2007/09/04/142669.html</link><dc:creator>想飞就飞</dc:creator><author>想飞就飞</author><pubDate>Tue, 04 Sep 2007 08:35:00 GMT</pubDate><guid>http://www.blogjava.net/wldandan/archive/2007/09/04/142669.html</guid><wfw:comment>http://www.blogjava.net/wldandan/comments/142669.html</wfw:comment><comments>http://www.blogjava.net/wldandan/archive/2007/09/04/142669.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.blogjava.net/wldandan/comments/commentRss/142669.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wldandan/services/trackbacks/142669.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 前一段时间，一直被mysql的字符集困扰，今天就这方面的知识总结一下.<br>MySQL的字符集支持(Character Set Support)有两个方面：<br>     字符集(Character set)和排序方式(Collation)。<br>对于字符集的支持细化到四个层次:<br>     服务器(server)，数据库(database)，数据表(table)和连接(connection)。&nbsp;&nbsp;<a href='http://www.blogjava.net/wldandan/archive/2007/09/04/142669.html'>阅读全文</a><img src ="http://www.blogjava.net/wldandan/aggbug/142669.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wldandan/" target="_blank">想飞就飞</a> 2007-09-04 16:35 <a href="http://www.blogjava.net/wldandan/archive/2007/09/04/142669.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Wicket tips</title><link>http://www.blogjava.net/wldandan/archive/2007/08/15/136857.html</link><dc:creator>想飞就飞</dc:creator><author>想飞就飞</author><pubDate>Wed, 15 Aug 2007 03:36:00 GMT</pubDate><guid>http://www.blogjava.net/wldandan/archive/2007/08/15/136857.html</guid><wfw:comment>http://www.blogjava.net/wldandan/comments/136857.html</wfw:comment><comments>http://www.blogjava.net/wldandan/archive/2007/08/15/136857.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/wldandan/comments/commentRss/136857.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wldandan/services/trackbacks/136857.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 今天对wicket小研究了一下，同struts比较，的确有其过人之处，它更具有强烈C/S结构的UI色彩，可以将<br>前台的美工＆后台的程序员分工明确&nbsp;&nbsp;<a href='http://www.blogjava.net/wldandan/archive/2007/08/15/136857.html'>阅读全文</a><img src ="http://www.blogjava.net/wldandan/aggbug/136857.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wldandan/" target="_blank">想飞就飞</a> 2007-08-15 11:36 <a href="http://www.blogjava.net/wldandan/archive/2007/08/15/136857.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2备忘录【显示web异常】</title><link>http://www.blogjava.net/wldandan/archive/2007/07/18/131114.html</link><dc:creator>想飞就飞</dc:creator><author>想飞就飞</author><pubDate>Wed, 18 Jul 2007 09:19:00 GMT</pubDate><guid>http://www.blogjava.net/wldandan/archive/2007/07/18/131114.html</guid><wfw:comment>http://www.blogjava.net/wldandan/comments/131114.html</wfw:comment><comments>http://www.blogjava.net/wldandan/archive/2007/07/18/131114.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/wldandan/comments/commentRss/131114.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wldandan/services/trackbacks/131114.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 使用struts2的“global-results”＆“global-exception-mappings”处理Action异常，&nbsp;&nbsp;<a href='http://www.blogjava.net/wldandan/archive/2007/07/18/131114.html'>阅读全文</a><img src ="http://www.blogjava.net/wldandan/aggbug/131114.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wldandan/" target="_blank">想飞就飞</a> 2007-07-18 17:19 <a href="http://www.blogjava.net/wldandan/archive/2007/07/18/131114.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Junit3.8.1代码阅读—执行流程(textui)[收藏ZZ]</title><link>http://www.blogjava.net/wldandan/archive/2007/07/12/129807.html</link><dc:creator>想飞就飞</dc:creator><author>想飞就飞</author><pubDate>Thu, 12 Jul 2007 05:13:00 GMT</pubDate><guid>http://www.blogjava.net/wldandan/archive/2007/07/12/129807.html</guid><wfw:comment>http://www.blogjava.net/wldandan/comments/129807.html</wfw:comment><comments>http://www.blogjava.net/wldandan/archive/2007/07/12/129807.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wldandan/comments/commentRss/129807.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wldandan/services/trackbacks/129807.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 重温一下Junit的经典之处&nbsp;&nbsp;<a href='http://www.blogjava.net/wldandan/archive/2007/07/12/129807.html'>阅读全文</a><img src ="http://www.blogjava.net/wldandan/aggbug/129807.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wldandan/" target="_blank">想飞就飞</a> 2007-07-12 13:13 <a href="http://www.blogjava.net/wldandan/archive/2007/07/12/129807.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2学习笔记(一)</title><link>http://www.blogjava.net/wldandan/archive/2007/06/20/125151.html</link><dc:creator>想飞就飞</dc:creator><author>想飞就飞</author><pubDate>Wed, 20 Jun 2007 03:26:00 GMT</pubDate><guid>http://www.blogjava.net/wldandan/archive/2007/06/20/125151.html</guid><wfw:comment>http://www.blogjava.net/wldandan/comments/125151.html</wfw:comment><comments>http://www.blogjava.net/wldandan/archive/2007/06/20/125151.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/wldandan/comments/commentRss/125151.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wldandan/services/trackbacks/125151.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:   使用Struts2开发都快1个月了，感觉虽然使用它实现了项目的功能了，但很多新的东西都没有应用进来，<br>前一段时间项目催的太紧，所以决定最近系统的对Struts2学习一下，也记录一下学习的过程。&nbsp;&nbsp;<a href='http://www.blogjava.net/wldandan/archive/2007/06/20/125151.html'>阅读全文</a><img src ="http://www.blogjava.net/wldandan/aggbug/125151.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wldandan/" target="_blank">想飞就飞</a> 2007-06-20 11:26 <a href="http://www.blogjava.net/wldandan/archive/2007/06/20/125151.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用SpringSide构建SSH Demo</title><link>http://www.blogjava.net/wldandan/archive/2007/06/17/124818.html</link><dc:creator>想飞就飞</dc:creator><author>想飞就飞</author><pubDate>Sun, 17 Jun 2007 09:24:00 GMT</pubDate><guid>http://www.blogjava.net/wldandan/archive/2007/06/17/124818.html</guid><wfw:comment>http://www.blogjava.net/wldandan/comments/124818.html</wfw:comment><comments>http://www.blogjava.net/wldandan/archive/2007/06/17/124818.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wldandan/comments/commentRss/124818.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wldandan/services/trackbacks/124818.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 本文主要记录作者使用springside构建ssh的步骤，作为个人的总结及备忘.&nbsp;&nbsp;<a href='http://www.blogjava.net/wldandan/archive/2007/06/17/124818.html'>阅读全文</a><img src ="http://www.blogjava.net/wldandan/aggbug/124818.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wldandan/" target="_blank">想飞就飞</a> 2007-06-17 17:24 <a href="http://www.blogjava.net/wldandan/archive/2007/06/17/124818.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DWR学习心得(一)</title><link>http://www.blogjava.net/wldandan/archive/2007/06/01/121435.html</link><dc:creator>想飞就飞</dc:creator><author>想飞就飞</author><pubDate>Fri, 01 Jun 2007 14:39:00 GMT</pubDate><guid>http://www.blogjava.net/wldandan/archive/2007/06/01/121435.html</guid><wfw:comment>http://www.blogjava.net/wldandan/comments/121435.html</wfw:comment><comments>http://www.blogjava.net/wldandan/archive/2007/06/01/121435.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/wldandan/comments/commentRss/121435.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wldandan/services/trackbacks/121435.html</trackback:ping><description><![CDATA[<p><span style="font-family: Arial;">DWR是一个可以允许你去创建AJAX WEB 站点的JAVA 开源库。</span></p>
<p><span style="font-family: Arial;">它可以让你在浏览器中的Javascript代码调用Web服务器上的Java 代码，就像在Java代码就在浏览器中一样。 </span></p>
<p><span style="font-family: Arial;">&nbsp;&nbsp;&nbsp; DWR包含 2个主要部分：</span></p>
<p><span style="font-family: Arial;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一个运行在服务器端的Java Servlet，它处理请求并且向浏览器发回响应。</span></p>
<p><span style="font-family: Arial;">&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; 一个运行在浏览器端的JavaScript，它发送请求而且还能动态更新网页。 </span></p>
<p><span style="font-family: Arial;">&nbsp;</span></p>
<p><span style="font-family: Arial;">DWR工作原理是通过动态把Java类生成为Javascript。它的代码就像Ajax魔法一样，你感觉调用就像发</span></p>
<p><span style="font-family: Arial;">生在浏览器端，但是实际上代码调用发生在服务器端，DWR负责数据的传递和转换。这种从Java 到</span></p>
<p><span style="font-family: Arial;">JavaScript的远程调用功能的方式使DWR用起来有种非常像RMI或者SOAP的常规RPC机制，而且DWR</span></p>
<p><span style="font-family: Arial;">的优点在于不需要任何的网页浏览器插件就能运行在网页上。 </span></p>
<p><span style="font-family: Arial;">&nbsp;</span></p>
<p><span style="font-family: Arial;">Java从根本上讲是同步机制，然 AJAX却是异步的。所以你调用远程方法时，当数据已经从网络上返回</span></p>
<p><span style="font-family: Arial;">的时候，你要提供有反调 （callback） 功能的DWR。</span></p>
<p><br style="font-family: Arial;"><span style="font-family: Arial;">第 1个 DWR 例子：Hello World </span></p>
<p><span style="font-family: Arial;">&nbsp; 1) 从官方网站下载dwr.jar包。然后将它放在你 webapp 的 WEB-INF/lib目录下。</span></p>
<p><span style="font-family: Arial;">&nbsp; 2) 修改web.xml,如下</span></p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%; font-family: Arial;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
<p><span style="color: #000000;">&lt;?</span><span style="color: #000000;">xml&nbsp;version</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">1.0</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;encoding</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">ISO-8859-1</span><span style="color: #000000;">"</span><span style="color: #000000;">?&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;!</span><span style="color: #000000;">DOCTYPE&nbsp;web</span><span style="color: #000000;">-</span><span style="color: #000000;">app&nbsp;PUBLIC<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">-//Sun&nbsp;Microsystems,&nbsp;Inc.//DTD&nbsp;Web&nbsp;Application&nbsp;2.3//EN</span><span style="color: #000000;">"</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">http://java.sun.com/dtd/web-app_2_3.dtd</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">web</span><span style="color: #000000;">-</span><span style="color: #000000;">app&nbsp;id</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">dwr</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br>&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">display</span><span style="color: #000000;">-</span><span style="color: #000000;">name</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">DWR&nbsp;(Direct&nbsp;Web&nbsp;Remoting)</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">display</span><span style="color: #000000;">-</span><span style="color: #000000;">name</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">description</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">A&nbsp;Simple&nbsp;Demo&nbsp;DWR</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">description</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br>&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">servlet</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">servlet</span><span style="color: #000000;">-</span><span style="color: #000000;">name</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">dwr</span><span style="color: #000000;">-</span><span style="color: #000000;">invoker</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">servlet</span><span style="color: #000000;">-</span><span style="color: #000000;">name</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;"></span><span style="color: #000000;"></span><span style="color: #000000;"> </span><span style="color: #000000;">&lt;</span><span style="color: #000000;">servlet</span><span style="color: #000000;">-</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">org.directwebremoting.servlet.DwrServlet</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">servlet</span><span style="color: #000000;">-</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">init</span><span style="color: #000000;">-</span><span style="color: #000000;">param</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">param</span><span style="color: #000000;">-</span><span style="color: #000000;">name</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">debug</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">param</span><span style="color: #000000;">-</span><span style="color: #000000;">name</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">param</span><span style="color: #000000;">-</span><span style="color: #000000;">value</span><span style="color: #000000;">&gt;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">param</span><span style="color: #000000;">-</span><span style="color: #000000;">value</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">init</span><span style="color: #000000;">-</span><span style="color: #000000;">param</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;  </span><span style="color: #000000;"></span><span style="color: #000000;"></span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">servlet</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br>&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">servlet</span><span style="color: #000000;">-</span><span style="color: #000000;">mapping</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">servlet</span><span style="color: #000000;">-</span><span style="color: #000000;">name</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">dwr</span><span style="color: #000000;">-</span><span style="color: #000000;">invoker</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">servlet</span><span style="color: #000000;">-</span><span style="color: #000000;">name</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">url</span><span style="color: #000000;">-</span><span style="color: #000000;">pattern</span><span style="color: #000000;">&gt;/</span><span style="color: #000000;">dwr</span><span style="color: #008000;">/*</span><span style="color: #008000;">&lt;/url-pattern&gt;<br>&nbsp;&nbsp;&lt;/servlet-mapping&gt;<br>&lt;/web-app&gt;</span></p>
</div>
<p><br style="font-family: Arial;"><span style="font-family: Arial;">&nbsp; 3) 在WEB-INF下新建dwr.xml,内容如下</span></p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%; font-family: Arial;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
<p><span style="color: #000000;">&lt;?</span><span style="color: #000000;">xml&nbsp;version</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">1.0</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;encoding</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">UTF-8</span><span style="color: #000000;">"</span><span style="color: #000000;">?&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;!</span><span style="color: #000000;">DOCTYPE&nbsp;dwr&nbsp;PUBLIC&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">-//GetAhead&nbsp;Limited//DTD&nbsp;Direct&nbsp;Web&nbsp;Remoting&nbsp;2.0//EN</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">http://getahead.org/dwr/dwr20.dtd</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">dwr</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br>&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">allow</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">create&nbsp;creator</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">new</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;javascript</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">service</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">param&nbsp;name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">class</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">helloworld.Service</span><span style="color: #000000;">"</span><span style="color: #000000;">/&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">create</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">allow</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">dwr</span><span style="color: #000000;">&gt;</span></p>
</div>
<p><span style="font-family: Arial;">&nbsp;4) 启动web服务器，访问http://localhost/工程/dwr ,页面结果显示为</span></p>
<p><span style="font-family: Arial;">&nbsp; </span></p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%; font-family: Arial;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
<p><span style="color: #000000;">Classes&nbsp;known&nbsp;to&nbsp;DWR:<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;service&nbsp;(helloworld.Service)<br></span></p>
</div>
<p><br style="font-family: Arial;"><span style="font-family: Arial;">&nbsp;5) 点击进入 *service,看到提示....</span></p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%; font-family: Arial;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
<p><span style="color: #000000;">Methods&nbsp;For:&nbsp;service&nbsp;(helloworld.Service)<br><br>To&nbsp;use&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;in&nbsp;your&nbsp;javascript&nbsp;you&nbsp;will&nbsp;need&nbsp;the&nbsp;following&nbsp;script&nbsp;includes:<br><br>&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">script&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">text/javascript</span><span style="color: #000000;">'</span><span style="color: #000000;">&nbsp;src</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">/TestDWR/dwr/interface/service.js</span><span style="color: #000000;">'</span><span style="color: #000000;">&gt;&lt;/</span><span style="color: #000000;">script</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">script&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">text/javascript</span><span style="color: #000000;">'</span><span style="color: #000000;">&nbsp;src</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">/TestDWR/dwr/engine.js</span><span style="color: #000000;">'</span><span style="color: #000000;">&gt;&lt;/</span><span style="color: #000000;">script</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br>In&nbsp;addition&nbsp;there&nbsp;is&nbsp;an&nbsp;optional&nbsp;utility&nbsp;script:<br><br>&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">script&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">text/javascript</span><span style="color: #000000;">'</span><span style="color: #000000;">&nbsp;src</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">/TestDWR/dwr/util.js</span><span style="color: #000000;">'</span><span style="color: #000000;">&gt;&lt;/</span><span style="color: #000000;">script</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br>Replies&nbsp;from&nbsp;DWR&nbsp;are&nbsp;shown&nbsp;with&nbsp;a&nbsp;yellow&nbsp;background&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;they&nbsp;are&nbsp;simple&nbsp;or&nbsp;in&nbsp;an&nbsp;alert&nbsp;box&nbsp;otherwise.<br>The&nbsp;inputs&nbsp;are&nbsp;evaluated&nbsp;as&nbsp;Javascript&nbsp;so&nbsp;strings&nbsp;must&nbsp;be&nbsp;quoted&nbsp;before&nbsp;execution.<br><br>There&nbsp;are&nbsp;</span><span style="color: #000000;">10</span><span style="color: #000000;">&nbsp;declared&nbsp;methods:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;sayHello(&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;hashCode(&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Warning:&nbsp;hashCode()&nbsp;is&nbsp;excluded:&nbsp;Methods&nbsp;defined&nbsp;in&nbsp;java.lang.Object&nbsp;are&nbsp;not&nbsp;accessible.&nbsp;See&nbsp;below)<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;getClass(&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Warning:&nbsp;No&nbsp;Converter&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;java.lang.Class.&nbsp;See&nbsp;below)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Warning:&nbsp;getClass()&nbsp;is&nbsp;excluded:&nbsp;Methods&nbsp;defined&nbsp;in&nbsp;java.lang.Object&nbsp;are&nbsp;not&nbsp;accessible.&nbsp;See&nbsp;below)<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;wait(&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Warning:&nbsp;overloaded&nbsp;methods&nbsp;are&nbsp;not&nbsp;recommended.&nbsp;See&nbsp;below)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Warning:&nbsp;wait()&nbsp;is&nbsp;excluded:&nbsp;Methods&nbsp;defined&nbsp;in&nbsp;java.lang.Object&nbsp;are&nbsp;not&nbsp;accessible.&nbsp;See&nbsp;below)<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;wait(&nbsp;,&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Warning:&nbsp;overloaded&nbsp;methods&nbsp;are&nbsp;not&nbsp;recommended.&nbsp;See&nbsp;below)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Warning:&nbsp;wait()&nbsp;is&nbsp;excluded:&nbsp;Methods&nbsp;defined&nbsp;in&nbsp;java.lang.Object&nbsp;are&nbsp;not&nbsp;accessible.&nbsp;See&nbsp;below)<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;wait(&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Warning:&nbsp;overloaded&nbsp;methods&nbsp;are&nbsp;not&nbsp;recommended.&nbsp;See&nbsp;below)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Warning:&nbsp;wait()&nbsp;is&nbsp;excluded:&nbsp;Methods&nbsp;defined&nbsp;in&nbsp;java.lang.Object&nbsp;are&nbsp;not&nbsp;accessible.&nbsp;See&nbsp;below)<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;equals(&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Warning:&nbsp;No&nbsp;Converter&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;java.lang.Object.&nbsp;See&nbsp;below)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Warning:&nbsp;equals()&nbsp;is&nbsp;excluded:&nbsp;Methods&nbsp;defined&nbsp;in&nbsp;java.lang.Object&nbsp;are&nbsp;not&nbsp;accessible.&nbsp;See&nbsp;below)<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;notify(&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Warning:&nbsp;notify()&nbsp;is&nbsp;excluded:&nbsp;Methods&nbsp;defined&nbsp;in&nbsp;java.lang.Object&nbsp;are&nbsp;not&nbsp;accessible.&nbsp;See&nbsp;below)<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;notifyAll(&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Warning:&nbsp;notifyAll()&nbsp;is&nbsp;excluded:&nbsp;Methods&nbsp;defined&nbsp;in&nbsp;java.lang.Object&nbsp;are&nbsp;not&nbsp;accessible.&nbsp;See&nbsp;below)<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;toString(&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Warning:&nbsp;toString()&nbsp;is&nbsp;excluded:&nbsp;Methods&nbsp;defined&nbsp;in&nbsp;java.lang.Object&nbsp;are&nbsp;not&nbsp;accessible.&nbsp;See&nbsp;below)<br></span></p>
</div>
<p><br style="font-family: Arial;"><span style="font-family: Arial;">&nbsp; 6)创建jsp，内容如下</span></p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%; font-family: Arial;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
<p><span style="color: #000000;">&lt;%</span><span style="color: #000000;">@&nbsp;page&nbsp;language</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">java</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;pageEncoding</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">UTF-8</span><span style="color: #000000;">"</span><span style="color: #000000;">%&gt;</span><span style="color: #000000;">&nbsp;<br>&nbsp;<br></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">html</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;<br>&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">head</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">script&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">text/javascript</span><span style="color: #000000;">'</span><span style="color: #000000;">&nbsp;src</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">dwr/interface/service.js</span><span style="color: #000000;">'</span><span style="color: #000000;">&gt;&lt;/</span><span style="color: #000000;">script</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">script&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">text/javascript</span><span style="color: #000000;">'</span><span style="color: #000000;">&nbsp;src</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">dwr/engine.js</span><span style="color: #000000;">'</span><span style="color: #000000;">&gt;&lt;/</span><span style="color: #000000;">script</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">script&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">text/javascript</span><span style="color: #000000;">'</span><span style="color: #000000;">&nbsp;src</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">dwr/util.js</span><span style="color: #000000;">'</span><span style="color: #000000;">&gt;&lt;/</span><span style="color: #000000;">script</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br></span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">script</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;<br>&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">script&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">text/javascript</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;<br>&nbsp;&nbsp;function&nbsp;firstDwr(){&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;service.sayHello(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;Test&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">,callBackHello);&nbsp;<br>&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;function&nbsp;callBackHello(data){&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;alert(data);&nbsp;<br>&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">script</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;<br>&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">head</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">body</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;<br>&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">input&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">button</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">button</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">测试</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">firstDwr()</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;<br>&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">body</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;<br></span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">html</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span></p>
</div>
<p><br style="font-family: Arial;"><span style="font-family: Arial;">当点击"测试"时，就出现结果了.</span></p>
<p><span style="font-family: Arial;">总结:</span></p>
<p><span style="font-family: Arial;">&nbsp; 1.在web.xml中加入dwr servlet</span></p>
<p><span style="font-family: Arial;">&nbsp; 2.在drw.xml中指明你要调用的类,并指明生成的javascript名</span></p>
<p><span style="font-family: Arial;">&nbsp;&nbsp;&nbsp;&nbsp; &lt;create creator="new" javascript="service"&gt;</span></p>
<p><span style="font-family: Arial;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name="class" value="helloworld.Service"/&gt;</span></p>
<p><span style="font-family: Arial;">&nbsp;&nbsp;&nbsp; &lt;/create&gt;
</span></p>
<p><span style="font-family: Arial;">&nbsp; 3.完成对应的类</span></p>
<p><span style="font-family: Arial;">&nbsp; 4.在html/jsp中写javascript函数，调用java服务器端的方法，并写处理结果的回调函数</span></p>
&nbsp; <br><br>
<br><br>   <img src ="http://www.blogjava.net/wldandan/aggbug/121435.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wldandan/" target="_blank">想飞就飞</a> 2007-06-01 22:39 <a href="http://www.blogjava.net/wldandan/archive/2007/06/01/121435.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SpringSide总结</title><link>http://www.blogjava.net/wldandan/archive/2007/04/01/107778.html</link><dc:creator>想飞就飞</dc:creator><author>想飞就飞</author><pubDate>Sun, 01 Apr 2007 08:44:00 GMT</pubDate><guid>http://www.blogjava.net/wldandan/archive/2007/04/01/107778.html</guid><wfw:comment>http://www.blogjava.net/wldandan/comments/107778.html</wfw:comment><comments>http://www.blogjava.net/wldandan/archive/2007/04/01/107778.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wldandan/comments/commentRss/107778.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wldandan/services/trackbacks/107778.html</trackback:ping><description><![CDATA[<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
<span lang="EN-US">SpringSide</span>
<span style="font-family: 宋体;">的文档已经写的很详细了</span>
<span lang="EN-US">,</span>
<span style="font-family: 宋体;">但使用的时候还是由于粗心导致了不少问题</span>
<span lang="EN-US">.</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
<span style="font-family: 宋体;">其中不少都是大小写、配置文件的设置不当导致</span>
<span lang="EN-US">,</span>
<span style="font-family: 宋体;">下面就总结一下今天遇到的问题及解决办法</span>
<span lang="EN-US">.</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
<span style="font-family: 宋体;">一</span>
<span style="font-family: 宋体;">基本步骤如下</span>
<span lang="EN-US">(</span>
<span style="font-family: 宋体;">文档中已经提到</span>
<span lang="EN-US">)</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 18pt; text-indent: -18pt;">
<span lang="EN-US">
<span>1.<span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>
</span>
<span style="font-family: 宋体;">根据</span>
<span lang="EN-US">Hibernate Tools </span>
<span style="font-family: 宋体;">生成对应的</span>
<span lang="EN-US">domain</span>
<span style="font-family: 宋体;">对象</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 18pt; text-indent: -18pt;">
<span lang="EN-US">
<span>2.<span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>
</span>
<span style="font-family: 宋体;">修改</span>
<span lang="EN-US">dataAccessContext-hibernate.xml, </span>
<span style="font-family: 宋体;">将你的新</span>
<span lang="EN-US">domain</span>
<span style="font-family: 宋体;">对象加入</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;">
<span style="font-size: 10pt; color: teal; font-family: 'courier new';" lang="EN-US">&lt;</span>
<span style="font-size: 10pt; color: #3f7f7f; font-family: 'courier new';" lang="EN-US">property </span>
<span style="font-size: 10pt; color: #7f007f; font-family: 'courier new';" lang="EN-US">name</span>
<span style="font-size: 10pt; color: black; font-family: 'courier new';" lang="EN-US">=</span>
<span style="font-size: 10pt; color: #2a00ff; font-family: 'courier new';" lang="EN-US">"annotatedClasses"</span>
<span style="font-size: 10pt; color: teal; font-family: 'courier new';" lang="EN-US">&gt;</span>
<span style="font-size: 10pt; color: teal; font-family: 宋体;">中</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 18pt; text-indent: -18pt;">
<span lang="EN-US">
<span>3.<span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>
</span>
<span style="font-family: 宋体;">生成对象的</span>
<span lang="EN-US">xxxManager</span>
<span style="font-family: 宋体;">类后</span>
<span lang="EN-US">,</span>
<span style="font-family: 宋体;">一定要注意类中的泛形</span>
<span lang="EN-US">,</span>
<span style="font-family: 宋体;">并且注意生成方法的名称</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 18pt; text-indent: -18pt;">
<span lang="EN-US">
<span>4.<span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>
</span>
<span style="font-family: 宋体;">生成对象的</span>
<span lang="EN-US">xxxManagerTest</span>
<span style="font-family: 宋体;">类</span>
<span lang="EN-US">,</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 18pt; text-indent: -18pt;">
<span lang="EN-US">
<span>5.<span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>
</span>
<span style="font-family: 宋体;">修改</span>
<span lang="EN-US"> src/recources/spring / serviceContext.xml,</span>
<span style="font-family: 宋体;">加入</span>
<span lang="EN-US">xxxManager,</span>
<span style="font-family: 宋体;">由于使用</span>
<span lang="EN-US">byName</span>
<span style="font-family: 宋体;">进行的注入，所以配置文件比较简单</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 18pt; text-indent: -18pt;">
<span lang="EN-US">
<span>6.<span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>
</span>
<span style="font-family: 宋体;">生成</span>
<span lang="EN-US">web</span>
<span style="font-family: 宋体;">上的</span>
<span lang="EN-US">xxxAction, </span>
<span style="font-family: 宋体;">一定要注意泛形</span>
<span lang="EN-US">, </span>
<span style="font-family: 宋体;">并且注意生成方法的名称</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 18pt; text-indent: -18pt;">
<span lang="EN-US">
<span>7.<span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>
</span>
<span style="font-family: 宋体;">修改</span>
<span lang="EN-US">struts-config(-module).xml,</span>
<span style="font-family: 宋体;">添加生成的</span>
<span lang="EN-US">xxxAction</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
<span lang="EN-US">
<o:p>&nbsp;</o:p>
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
<span style="font-family: 宋体;">二</span>
<span style="font-family: 宋体;">常见错误</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
<span lang="EN-US">1. </span>
<span style="font-family: 宋体;">如果配置文件写的有问题，一般会提示</span>
<span lang="EN-US">&#8221;nested Exception&#8221;</span>
<span style="font-family: 宋体;">的错误</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
<span lang="EN-US">
<o:p>&nbsp;</o:p>
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
<span lang="EN-US">2. </span>
<span style="font-family: 宋体;">配置</span>
<span lang="EN-US">ServiceContext.xml</span>
<span style="font-family: 宋体;">时，一定要注意大小写问题</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
<span style="font-size: 10pt; color: black; font-family: 'courier new';" lang="EN-US">
<span>&nbsp;&nbsp;&nbsp; </span>
</span>
<span style="font-size: 10pt; color: teal; font-family: 'courier new';" lang="EN-US">&lt;</span>
<span style="font-size: 10pt; color: #3f7f7f; font-family: 'courier new';" lang="EN-US">bean </span>
<span style="font-size: 10pt; color: #7f007f; font-family: 'courier new';" lang="EN-US">id</span>
<span style="font-size: 10pt; color: black; font-family: 'courier new';" lang="EN-US">=</span>
<span style="font-size: 10pt; color: #2a00ff; font-family: 'courier new';" lang="EN-US">"orderManager" </span>
<span style="font-size: 10pt; color: #7f007f; font-family: 'courier new';" lang="EN-US">class</span>
<span style="font-size: 10pt; color: black; font-family: 'courier new';" lang="EN-US">=</span>
<span style="font-size: 10pt; color: #2a00ff; font-family: 'courier new';" lang="EN-US">"org.wl.service.OrderManager"</span>
<span style="font-size: 10pt; color: teal; font-family: 'courier new';" lang="EN-US">/&gt;<o:p></o:p></span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
<span style="font-size: 10pt; color: teal; font-family: 'courier new';" lang="EN-US">
<span>&nbsp;&nbsp; </span>
</span>
<span style="font-size: 10pt; color: teal; font-family: 宋体;">今天就把</span>
<span style="font-size: 10pt; color: teal; font-family: 'courier new';" lang="EN-US">id</span>
<span style="font-size: 10pt; color: teal; font-family: 宋体;">的值写成了类名称</span>
<span style="font-size: 10pt; color: #2a00ff; font-family: 'courier new';" lang="EN-US">OrderManager,</span>
<span style="font-size: 10pt; color: #2a00ff; font-family: 宋体;">结果提示错误</span>
<span style="font-size: 10pt; color: #2a00ff; font-family: 'courier new';" lang="EN-US">&#8221;Error Create Bean&#8230;&#8230;&#8221;<o:p></o:p></span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
<span style="font-size: 10pt; color: #2a00ff; font-family: 'courier new';" lang="EN-US">
<o:p>&nbsp;</o:p>
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
<span lang="EN-US">3. </span>
<span style="font-family: 宋体;">我使用的</span>
<span lang="EN-US">mysql,</span>
<span style="font-family: 宋体;">用户为</span>
<span lang="EN-US">root,</span>
<span style="font-family: 宋体;">但是将</span>
<span lang="EN-US">Jdbc.properties</span>
<span style="font-family: 宋体;">配置文件中用户名写成了</span>
<span lang="EN-US">sa,</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 15.75pt;">
<span style="font-family: 宋体;">结果可以访问数据库，当在</span>
<span lang="EN-US">web</span>
<span style="font-family: 宋体;">界面上点击</span>
<span lang="EN-US">save</span>
<span style="font-family: 宋体;">，提交后提示</span>
<span lang="EN-US">&#8220;no row with the given identifier exists&#8221;</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
<span lang="EN-US">
<o:p>&nbsp;</o:p>
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
<span lang="EN-US">4. </span>
<span style="font-family: 宋体;">如果需要使用</span>
<span lang="EN-US">extremeTable,</span>
<span style="font-family: 宋体;">记得在</span>
<span lang="EN-US">jsp</span>
<span style="font-family: 宋体;">中引用</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
<span lang="EN-US">&lt;%@ taglib uri="http://www.extremecomponents.org" prefix="ec" %&gt;</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
<span lang="EN-US">
<o:p>&nbsp;</o:p>
</span>
</p>
<span style="font-size: 10.5pt; font-family: 'times new roman';" lang="EN-US">5. </span>
<span style="font-size: 10.5pt; font-family: 宋体;">使用</span>
<span style="font-size: 10.5pt; font-family: 'times new roman';" lang="EN-US">SpringSide-IDE</span>
<span style="font-size: 10.5pt; font-family: 宋体;">生成的项目中，默认没有添加</span>
<span style="font-size: 10.5pt; font-family: 'times new roman';" lang="EN-US">extremeTable</span>
<span style="font-size: 10.5pt; font-family: 宋体;">以及</span>
<span style="font-size: 10.5pt; font-family: 'times new roman';" lang="EN-US">helloWorld</span>
<span style="font-size: 10.5pt; font-family: 宋体;">例子中的</span>
<span style="font-size: 10.5pt; font-family: 'times new roman';" lang="EN-US">css</span>
<span style="font-size: 10.5pt; font-family: 宋体;">，所以如果</span>
<span style="font-size: 10.5pt; font-family: 'times new roman';" lang="EN-US">extremeTable</span>
<span style="font-size: 10.5pt; font-family: 宋体;">显示不了数据，一定查查是否加入了其</span>
<span style="font-size: 10.5pt; font-family: 'times new roman';" lang="EN-US">taglib<br><br></span>  <img src ="http://www.blogjava.net/wldandan/aggbug/107778.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wldandan/" target="_blank">想飞就飞</a> 2007-04-01 16:44 <a href="http://www.blogjava.net/wldandan/archive/2007/04/01/107778.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>