﻿<?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-开花流水-随笔分类-java技术</title><link>http://www.blogjava.net/zdq5337/category/43213.html</link><description>空山无人，水流花开。</description><language>zh-cn</language><lastBuildDate>Thu, 09 Aug 2012 23:40:18 GMT</lastBuildDate><pubDate>Thu, 09 Aug 2012 23:40:18 GMT</pubDate><ttl>60</ttl><item><title>struts2封装的json 返回数据不完整的 解决办法</title><link>http://www.blogjava.net/zdq5337/archive/2011/05/19/350629.html</link><dc:creator>开花流水</dc:creator><author>开花流水</author><pubDate>Thu, 19 May 2011 10:01:00 GMT</pubDate><guid>http://www.blogjava.net/zdq5337/archive/2011/05/19/350629.html</guid><wfw:comment>http://www.blogjava.net/zdq5337/comments/350629.html</wfw:comment><comments>http://www.blogjava.net/zdq5337/archive/2011/05/19/350629.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/zdq5337/comments/commentRss/350629.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zdq5337/services/trackbacks/350629.html</trackback:ping><description><![CDATA[struts2封装的json 经常出各种莫名其妙的问题，对于返回的数据不完整，可以在后台自己写返回。<br /><br />ServletActionContext.getResponse().setContentType("application/json;charset=UTF-8");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ServletActionContext.getResponse().setCharacterEncoding("UTF-8");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ServletActionContext.getResponse().getWriter().print(JSONObject.fromObject(data).toString());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return&nbsp; NONE;<br /><br />替换掉 直接return "success";<br /><br />其中data 是所要返回的数据。&nbsp;<br /><br />简化如下：<br />&nbsp;&nbsp;&nbsp;&nbsp;List list = demoServise.queryItemList(id);<br />&nbsp;&nbsp;&nbsp;response.setContentType("text/html;charset=UTF-8");<br />&nbsp;&nbsp;&nbsp;PrintWriter out = response.getWriter();<br />&nbsp;&nbsp;&nbsp;out.write(JSONArray.fromObject(list).toString());<br />&nbsp;&nbsp;&nbsp;out.flush();<br />&nbsp;&nbsp;&nbsp;out.close();<br />&nbsp;&nbsp;&nbsp;&nbsp;return null;<img src ="http://www.blogjava.net/zdq5337/aggbug/350629.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zdq5337/" target="_blank">开花流水</a> 2011-05-19 18:01 <a href="http://www.blogjava.net/zdq5337/archive/2011/05/19/350629.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eclipse自动生成注释</title><link>http://www.blogjava.net/zdq5337/archive/2011/03/08/345932.html</link><dc:creator>开花流水</dc:creator><author>开花流水</author><pubDate>Tue, 08 Mar 2011 06:00:00 GMT</pubDate><guid>http://www.blogjava.net/zdq5337/archive/2011/03/08/345932.html</guid><wfw:comment>http://www.blogjava.net/zdq5337/comments/345932.html</wfw:comment><comments>http://www.blogjava.net/zdq5337/archive/2011/03/08/345932.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zdq5337/comments/commentRss/345932.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zdq5337/services/trackbacks/345932.html</trackback:ping><description><![CDATA[建立一个codetemplates.xml文件，内容为<br />
<p>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;templates&gt;&lt;template autoinsert="false" context="settercomment_context" deleted="false" description="Comment for setter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.settercomment" name="settercomment"&gt;/**<br />
&nbsp;* @param ${param} : set the property ${bare_field_name}.<br />
&nbsp;*/&lt;/template&gt;&lt;template autoinsert="false" context="filecomment_context" deleted="false" description="Comment for created Java files" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.filecomment" name="filecomment"&gt;/**&nbsp;&nbsp; <br />
&nbsp;* @title ${file_name}<br />
&nbsp;* @package ${package_name}<br />
&nbsp;* @description 用一句话描述该文件做什么<br />
&nbsp;* @author zdq&nbsp;&nbsp;&nbsp;<br />
&nbsp;* @update ${date} ${time}<br />
&nbsp;* @version V1.0&nbsp;&nbsp; <br />
&nbsp;*/&lt;/template&gt;&lt;template autoinsert="false" context="delegatecomment_context" deleted="false" description="Comment for delegate methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name="delegatecomment"&gt;/**<br />
&nbsp;* ${tags}<br />
&nbsp;* ${see_to_target}<br />
&nbsp;*/&lt;/template&gt;&lt;template autoinsert="false" context="typecomment_context" deleted="false" description="Comment for created types" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.typecomment" name="typecomment"&gt;/**<br />
&nbsp;* @description 这里用一句话描述这个类的作用<br />
&nbsp;* @version 1.0<br />
&nbsp;* @author zdq<br />
&nbsp;* @update ${date} ${time} <br />
&nbsp;*/</p>
<p>&lt;/template&gt;&lt;template autoinsert="false" context="overridecomment_context" deleted="false" description="Comment for overriding methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name="overridecomment"&gt;/* (non-Javadoc)<br />
&nbsp;* ${see_to_overridden}<br />
&nbsp;*/&lt;/template&gt;&lt;template autoinsert="false" context="fieldcomment_context" deleted="false" description="Comment for fields" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name="fieldcomment"&gt;/** <br />
&nbsp;* @fields ${field} <br />
&nbsp;*/ <br />
&lt;/template&gt;&lt;template autoinsert="false" context="methodcomment_context" deleted="false" description="Comment for non-overriding methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name="methodcomment"&gt;/**<br />
&nbsp;* ${tags}<br />
&nbsp;* @description 用一句话说明这个方法做什么<br />
&nbsp;* @version 1.0<br />
&nbsp;* @author&nbsp;zdq<br />
&nbsp;* @update ${date} ${time}<br />
&nbsp;*/&lt;/template&gt;&lt;template autoinsert="false" context="gettercomment_context" deleted="false" description="Comment for getter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name="gettercomment"&gt;/**<br />
&nbsp;* @return ${bare_field_name} : return the property ${bare_field_name}.<br />
&nbsp;*/&lt;/template&gt;&lt;template autoinsert="false" context="constructorcomment_context" deleted="false" description="Comment for created constructors" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name="constructorcomment"&gt;/**<br />
&nbsp;* 类的构造方法<br />
&nbsp;* ${tags}<br />
&nbsp;*/&lt;/template&gt;&lt;/templates&gt;<br />
</p>
<strong>在window-&gt;java-&gt;code style-&gt;code templates下的Code Comments中import该文件即可</strong> <br />
快捷键引用注释：Alt+Shift+J
 <img src ="http://www.blogjava.net/zdq5337/aggbug/345932.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zdq5337/" target="_blank">开花流水</a> 2011-03-08 14:00 <a href="http://www.blogjava.net/zdq5337/archive/2011/03/08/345932.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse快捷键大全(转载)</title><link>http://www.blogjava.net/zdq5337/archive/2010/12/23/341375.html</link><dc:creator>开花流水</dc:creator><author>开花流水</author><pubDate>Thu, 23 Dec 2010 03:41:00 GMT</pubDate><guid>http://www.blogjava.net/zdq5337/archive/2010/12/23/341375.html</guid><wfw:comment>http://www.blogjava.net/zdq5337/comments/341375.html</wfw:comment><comments>http://www.blogjava.net/zdq5337/archive/2010/12/23/341375.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zdq5337/comments/commentRss/341375.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zdq5337/services/trackbacks/341375.html</trackback:ping><description><![CDATA[<span class="Apple-style-span" style="word-spacing: 0px; font: medium Simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-size: small; color: rgb(75,75,75); line-height: 20px; font-family: georgia, verdana, Arial, helvetica, sans-seriff">Ctrl+1&nbsp;快速修复(最经典的快捷键,就不用多说了)<br />
Ctrl+D:&nbsp;删除当前行&nbsp;<br />
Ctrl+Alt+&#8595;&nbsp;复制当前行到下一行(复制增加)<br />
Ctrl+Alt+&#8593;&nbsp;复制当前行到上一行(复制增加)<br />
Alt+&#8595;&nbsp;当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)<br />
Alt+&#8593;&nbsp;当前行和上面一行交互位置(同上)<br />
Alt+&#8592;&nbsp;前一个编辑的页面<br />
Alt+&#8594;&nbsp;下一个编辑的页面(当然是针对上面那条来说了)<br />
Alt+Enter&nbsp;显示当前选择资源(工程,or&nbsp;文件&nbsp;or文件)的属性<br />
Shift+Enter&nbsp;在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)<br />
Shift+Ctrl+Enter&nbsp;在当前行插入空行(原理同上条)<br />
Ctrl+Q&nbsp;定位到最后编辑的地方<br />
Ctrl+L&nbsp;定位在某行&nbsp;(对于程序超过100的人就有福音了)<br />
Ctrl+M&nbsp;最大化当前的Edit或View&nbsp;(再按则反之)<br />
Ctrl+/&nbsp;注释当前行,再按则取消注释<br />
Ctrl+O&nbsp;快速显示&nbsp;OutLine<br />
Ctrl+T&nbsp;快速显示当前类的继承结构<br />
Ctrl+W&nbsp;关闭当前Editer<br />
Ctrl+K&nbsp;参照选中的Word快速定位到下一个<br />
Ctrl+E&nbsp;快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)<br />
Ctrl+/(小键盘)&nbsp;折叠当前类中的所有代码<br />
Ctrl+&#215;(小键盘)&nbsp;展开当前类中的所有代码<br />
Ctrl+Space&nbsp;代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替)<br />
Ctrl+Shift+E&nbsp;显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)<br />
Ctrl+J&nbsp;正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes&nbsp;line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)<br />
Ctrl+Shift+J&nbsp;反向增量查找(和上条相同,只不过是从后往前查)<br />
Ctrl+Shift+F4&nbsp;关闭所有打开的Editer<br />
Ctrl+Shift+X&nbsp;把当前选中的文本全部变味小写<br />
Ctrl+Shift+Y&nbsp;把当前选中的文本全部变为小写<br />
Ctrl+Shift+F&nbsp;格式化当前代码<br />
Ctrl+Shift+P&nbsp;定位到对于的匹配符(譬如{})&nbsp;(从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)<br />
<br />
下面的快捷键是重构里面常用的,本人就自己喜欢且常用的整理一下(注:一般重构的快捷键都是Alt+Shift开头的了)<br />
Alt+Shift+R&nbsp;重命名&nbsp;(是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力)<br />
Alt+Shift+M&nbsp;抽取方法&nbsp;(这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用)<br />
Alt+Shift+C&nbsp;修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)<br />
Alt+Shift+L&nbsp;抽取本地变量(&nbsp;可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候)<br />
Alt+Shift+F&nbsp;把Class中的local变量变为field变量&nbsp;(比较实用的功能)<br />
Alt+Shift+I&nbsp;合并变量(可能这样说有点不妥Inline)<br />
Alt+Shift+V&nbsp;移动函数和变量(不怎么常用)<br />
Alt+Shift+Z&nbsp;重构的后悔药(Undo)<br />
<br />
编辑<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
全局&nbsp;查找并替换&nbsp;Ctrl+F&nbsp;<br />
文本编辑器&nbsp;查找上一个&nbsp;Ctrl+Shift+K&nbsp;<br />
文本编辑器&nbsp;查找下一个&nbsp;Ctrl+K&nbsp;<br />
全局&nbsp;撤销&nbsp;Ctrl+Z&nbsp;<br />
全局&nbsp;复制&nbsp;Ctrl+C&nbsp;<br />
全局&nbsp;恢复上一个选择&nbsp;Alt+Shift+&#8595;&nbsp;<br />
全局&nbsp;剪切&nbsp;Ctrl+X&nbsp;<br />
全局&nbsp;快速修正&nbsp;Ctrl1+1&nbsp;<br />
全局&nbsp;内容辅助&nbsp;Alt+/&nbsp;<br />
全局&nbsp;全部选中&nbsp;Ctrl+A&nbsp;<br />
全局&nbsp;删除&nbsp;Delete&nbsp;<br />
全局&nbsp;上下文信息&nbsp;Alt+？<br />
Alt+Shift+?<br />
Ctrl+Shift+Space&nbsp;<br />
Java编辑器&nbsp;显示工具提示描述&nbsp;F2&nbsp;<br />
Java编辑器&nbsp;选择封装元素&nbsp;Alt+Shift+&#8593;&nbsp;<br />
Java编辑器&nbsp;选择上一个元素&nbsp;Alt+Shift+&#8592;&nbsp;<br />
Java编辑器&nbsp;选择下一个元素&nbsp;Alt+Shift+&#8594;&nbsp;<br />
文本编辑器&nbsp;增量查找&nbsp;Ctrl+J&nbsp;<br />
文本编辑器&nbsp;增量逆向查找&nbsp;Ctrl+Shift+J&nbsp;<br />
全局&nbsp;粘贴&nbsp;Ctrl+V&nbsp;<br />
全局&nbsp;重做&nbsp;Ctrl+Y&nbsp;<br />
<br />
&nbsp;<br />
查看<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
全局&nbsp;放大&nbsp;Ctrl+=&nbsp;<br />
全局&nbsp;缩小&nbsp;Ctrl+-&nbsp;<br />
<br />
&nbsp;<br />
窗口<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
全局&nbsp;激活编辑器&nbsp;F12&nbsp;<br />
全局&nbsp;切换编辑器&nbsp;Ctrl+Shift+W&nbsp;<br />
全局&nbsp;上一个编辑器&nbsp;Ctrl+Shift+F6&nbsp;<br />
全局&nbsp;上一个视图&nbsp;Ctrl+Shift+F7&nbsp;<br />
全局&nbsp;上一个透视图&nbsp;Ctrl+Shift+F8&nbsp;<br />
全局&nbsp;下一个编辑器&nbsp;Ctrl+F6&nbsp;<br />
全局&nbsp;下一个视图&nbsp;Ctrl+F7&nbsp;<br />
全局&nbsp;下一个透视图&nbsp;Ctrl+F8&nbsp;<br />
文本编辑器&nbsp;显示标尺上下文菜单&nbsp;Ctrl+W&nbsp;<br />
全局&nbsp;显示视图菜单&nbsp;Ctrl+F10&nbsp;<br />
全局&nbsp;显示系统菜单&nbsp;Alt+-&nbsp;<br />
<br />
&nbsp;<br />
导航<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
Java编辑器&nbsp;打开结构&nbsp;Ctrl+F3&nbsp;<br />
全局&nbsp;打开类型&nbsp;Ctrl+Shift+T&nbsp;<br />
全局&nbsp;打开类型层次结构&nbsp;F4&nbsp;<br />
全局&nbsp;打开声明&nbsp;F3&nbsp;<br />
全局&nbsp;打开外部javadoc&nbsp;Shift+F2&nbsp;<br />
全局&nbsp;打开资源&nbsp;Ctrl+Shift+R&nbsp;<br />
全局&nbsp;后退历史记录&nbsp;Alt+&#8592;&nbsp;<br />
全局&nbsp;前进历史记录&nbsp;Alt+&#8594;&nbsp;<br />
全局&nbsp;上一个&nbsp;Ctrl+,&nbsp;<br />
全局&nbsp;下一个&nbsp;Ctrl+.&nbsp;<br />
Java编辑器&nbsp;显示大纲&nbsp;Ctrl+O&nbsp;<br />
全局&nbsp;在层次结构中打开类型&nbsp;Ctrl+Shift+H&nbsp;<br />
全局&nbsp;转至匹配的括号&nbsp;Ctrl+Shift+P&nbsp;<br />
全局&nbsp;转至上一个编辑位置&nbsp;Ctrl+Q&nbsp;<br />
Java编辑器&nbsp;转至上一个成员&nbsp;Ctrl+Shift+&#8593;&nbsp;<br />
Java编辑器&nbsp;转至下一个成员&nbsp;Ctrl+Shift+&#8595;&nbsp;<br />
文本编辑器&nbsp;转至行&nbsp;Ctrl+L&nbsp;<br />
<br />
&nbsp;<br />
搜索<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
全局&nbsp;出现在文件中&nbsp;Ctrl+Shift+U&nbsp;<br />
全局&nbsp;打开搜索对话框&nbsp;Ctrl+H&nbsp;<br />
全局&nbsp;工作区中的声明&nbsp;Ctrl+G&nbsp;<br />
全局&nbsp;工作区中的引用&nbsp;Ctrl+Shift+G&nbsp;<br />
<br />
&nbsp;<br />
文本编辑<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
文本编辑器&nbsp;改写切换&nbsp;Insert&nbsp;<br />
文本编辑器&nbsp;上滚行&nbsp;Ctrl+&#8593;&nbsp;<br />
文本编辑器&nbsp;下滚行&nbsp;Ctrl+&#8595;&nbsp;<br />
<br />
&nbsp;<br />
文件<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
全局&nbsp;保存&nbsp;Ctrl+X&nbsp;<br />
Ctrl+S&nbsp;<br />
全局&nbsp;打印&nbsp;Ctrl+P&nbsp;<br />
全局&nbsp;关闭&nbsp;Ctrl+F4&nbsp;<br />
全局&nbsp;全部保存&nbsp;Ctrl+Shift+S&nbsp;<br />
全局&nbsp;全部关闭&nbsp;Ctrl+Shift+F4&nbsp;<br />
全局&nbsp;属性&nbsp;Alt+Enter&nbsp;<br />
全局&nbsp;新建&nbsp;Ctrl+N&nbsp;<br />
<br />
&nbsp;<br />
项目<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
全局&nbsp;全部构建&nbsp;Ctrl+B&nbsp;<br />
<br />
&nbsp;<br />
源代码<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
Java编辑器&nbsp;格式化&nbsp;Ctrl+Shift+F&nbsp;<br />
Java编辑器&nbsp;取消注释&nbsp;Ctrl+\&nbsp;<br />
Java编辑器&nbsp;注释&nbsp;Ctrl+/&nbsp;<br />
Java编辑器&nbsp;添加导入&nbsp;Ctrl+Shift+M&nbsp;<br />
Java编辑器&nbsp;组织导入&nbsp;Ctrl+Shift+O&nbsp;<br />
Java编辑器&nbsp;使用try/catch块来包围&nbsp;未设置，太常用了，所以在这里列出,建议自己设置。<br />
也可以使用Ctrl+1自动修正。&nbsp;<br />
<br />
&nbsp;<br />
运行<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
全局&nbsp;单步返回&nbsp;F7&nbsp;<br />
全局&nbsp;单步跳过&nbsp;F6&nbsp;<br />
全局&nbsp;单步跳入&nbsp;F5&nbsp;<br />
全局&nbsp;单步跳入选择&nbsp;Ctrl+F5&nbsp;<br />
全局&nbsp;调试上次启动&nbsp;F11&nbsp;<br />
全局&nbsp;继续&nbsp;F8&nbsp;<br />
全局&nbsp;使用过滤器单步执行&nbsp;Shift+F5&nbsp;<br />
全局&nbsp;添加/去除断点&nbsp;Ctrl+Shift+B&nbsp;<br />
全局&nbsp;显示&nbsp;Ctrl+D&nbsp;<br />
全局&nbsp;运行上次启动&nbsp;Ctrl+F11&nbsp;<br />
全局&nbsp;运行至行&nbsp;Ctrl+R&nbsp;<br />
全局&nbsp;执行&nbsp;Ctrl+U&nbsp;<br />
<br />
&nbsp;<br />
重构<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
全局&nbsp;撤销重构&nbsp;Alt+Shift+Z&nbsp;<br />
全局&nbsp;抽取方法&nbsp;Alt+Shift+M&nbsp;<br />
全局&nbsp;抽取局部变量&nbsp;Alt+Shift+L&nbsp;<br />
全局&nbsp;内联&nbsp;Alt+Shift+I&nbsp;<br />
全局&nbsp;移动&nbsp;Alt+Shift+V&nbsp;<br />
全局&nbsp;重命名&nbsp;Alt+Shift+R&nbsp;<br />
全局&nbsp;重做&nbsp;Alt+Shift+Y</span></span>
<img src ="http://www.blogjava.net/zdq5337/aggbug/341375.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zdq5337/" target="_blank">开花流水</a> 2010-12-23 11:41 <a href="http://www.blogjava.net/zdq5337/archive/2010/12/23/341375.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java Web开发常见问题</title><link>http://www.blogjava.net/zdq5337/archive/2010/10/27/336258.html</link><dc:creator>开花流水</dc:creator><author>开花流水</author><pubDate>Wed, 27 Oct 2010 02:57:00 GMT</pubDate><guid>http://www.blogjava.net/zdq5337/archive/2010/10/27/336258.html</guid><wfw:comment>http://www.blogjava.net/zdq5337/comments/336258.html</wfw:comment><comments>http://www.blogjava.net/zdq5337/archive/2010/10/27/336258.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zdq5337/comments/commentRss/336258.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zdq5337/services/trackbacks/336258.html</trackback:ping><description><![CDATA[<div id="content">
<p>Java Web开发中，有许多共通的问题，是开发人员在开发过程中一定会遇到的，需要处理的问题：</p>
<p>1.&nbsp; 乱码问题</p>
<p>为何会出现乱码问题？既然有乱码问题，肯定是由于编码设置的不一致导致的。在Web开发 过程中，涉及以下一些编码设置，客户端参数的编码设置，Web服务器的编码设置，服务器端应用程序的编码设置，数据库的编码设置等。只要这四处的编码设置 有不相同的，就可能会出现乱码问题。开发人员在进行开发之前，不防先了解一下这四个编码在哪里设置，当前自己的项目设置是怎么样的，这样就可以很好的避免 编码问题。<!--iwms_ad_begin--> <!--iwms_ad_end--></p>
<p>2.&nbsp; 权限控制</p>
<p>对于一个Java Web系统，不是所有的页面与功能都允许所有的用户访问的，这样就需要对用户能访问哪些页面进行控制了。一般的Java Web系统，都需要进行权限控制。进行权限控制的方法有很多，以前看到有不少项目直接在程序里写权限控制的代码，这样的弊端是显而易见的，太不利于扩展 了，只要有任何的修改，都需要改动相当的代码，一是容易出错，二是修改的代价大。一个比较好的想法是基于AOP的思想，使用拦截器来进行权限控制，当然前 提是系统要配置一定的数据库结构，如用户-角色-权限表这样的表结构。当然，目前有不少的权限控制开源框架如acegi</p>
<p>3.&nbsp; 参数验证</p>
<p>All Input Is Evil。对于输入参数的验证是少不了的。对于参数的验证，有客户端验证与服务器端验证，一般来说，能够在客户端进行验证的，优先考虑客户端验证以减少服 务器端压力。现在有许多的Javascript框架可以很好的完成这一工作。如Jquery Validation插件。</p>
<p>4.&nbsp; 异常处理</p>
<p>应该说对于每个系统来说，异常处理都是很重要的。但在B/S结构的环境中，异常就显得更为重要，一个设计良好的异常处理框架可以减少很多的代码编写工作。<br />
</p>
<p>5.&nbsp; 参数传递</p>
<p>在B/S结构，基于HTTP来完成通信，每一次的客户端与服务器端的交互都是一次参数传 递的过程。控制参数的传递过程就显得很重要了。要清楚的知道每一次的B/S的交互，需要传递哪些参数，哪些参数是合法的，哪些参数是不合法的，是通过 GET方式还是通过POST方式，还是通过URL链接的方式。</p>
<p>6.&nbsp; Ajax</p>
<p>现在的Java Web系统，不使用Ajax技术是不可能的了。Ajax实在是一项不错的技术，不刷新页面而完成与服务器端的通信，它使得基于B/S的结构功能更强大了， 许多传统的Web应用程序所无法完成的功能现在大都可以用B/S架构来实现。对于Ajax现在已经有很多成熟的Javascript框架可以使用。首推 jQuery，其提供的Ajax功能简单而实用。 </p>
<p><br />
7.&nbsp; 客户端Javascript技术</p>
<p>客户端技术有很多，Javascript应该说是功能最强大、应用最广泛的一个了。用好Javascript，在系统设计时多考虑客户端的实现方式，可以很好的辅助进行服务器端的功能设计。优秀的Javascript框架还是推荐jQuery，其功能简单、实用而强大。</p>
<p>&nbsp;</p>
<p><br />
</p>
</div>
<img src ="http://www.blogjava.net/zdq5337/aggbug/336258.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zdq5337/" target="_blank">开花流水</a> 2010-10-27 10:57 <a href="http://www.blogjava.net/zdq5337/archive/2010/10/27/336258.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows Mobile 6.5 在windows7上搭建开发环境</title><link>http://www.blogjava.net/zdq5337/archive/2010/10/19/335577.html</link><dc:creator>开花流水</dc:creator><author>开花流水</author><pubDate>Tue, 19 Oct 2010 07:08:00 GMT</pubDate><guid>http://www.blogjava.net/zdq5337/archive/2010/10/19/335577.html</guid><wfw:comment>http://www.blogjava.net/zdq5337/comments/335577.html</wfw:comment><comments>http://www.blogjava.net/zdq5337/archive/2010/10/19/335577.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zdq5337/comments/commentRss/335577.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zdq5337/services/trackbacks/335577.html</trackback:ping><description><![CDATA[<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">需要安装软件：</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font face="Calibri">1 Visual Studio 2008 RTM <span style="mso-spacerun: yes">&nbsp;</span>&amp;&amp; <span style="mso-spacerun: yes">&nbsp;</span>.NET Framework Version 3.5 SP1 </font></span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">英文版</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font face="Calibri">2 Microsoft Windows Mobile 设备中心 6.1 </font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font face="Calibri">3 Windows Mobile 6 Professional SDK Refresh.msi</font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font face="Calibri">4 Windows Mobile 6 Standard SDK Refresh.msi </font></span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">非必需<br />
中文模拟器下载页面：<br />
<a href="http://www.microsoft.com/downloads/details.aspx?familyid=38C46AA8-1DD7-426F-A913-4F370A65A582&amp;displaylang=en"><font color="#43699a">http://www.microsoft.com/downloads/details.aspx?familyid=38C46AA8-1DD7-426F-A913-4F370A65A582&amp;displaylang=en</font></a><br />
专业版中文模拟器下载地址：<br />
<a href="http://download.microsoft.com/download/0/1/2/012bfbba-9fe5-4e68-86c9-d434446d97dd/0804/Windows%20Mobile%206%20Professional%20Images%20(CHS).msi"><font color="#43699a">http://download.microsoft.com/download/0/1/2/012bfbba-9fe5-4e68-86c9-d434446d97dd/0804/Windows%20Mobile%206%20Professional%20Images%20(CHS).msi</font></a><br />
</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font face="Calibri">5 Windows Mobile 6.5 Professional Developer Tool Kit (USA).msi</font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font face="Calibri">6 Windows Mobile 6.5 Standard Developer Tool Kit (USA).msi </font></span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">非必需</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><font face="Calibri">7 Windows Mobile 6.5.3 Professional DTK.msi</font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: Tahoma; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">安装完成之后，配置开发模拟器环境：</span><span style="font-family: 'Tahoma','sans-serif'; color: black; font-size: 10pt" lang="EN-US"><O:P></O:P></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 'Tahoma','sans-serif'; color: black; font-size: 10pt" lang="EN-US"><span style="font-size: 10pt"><span style="font-family: 'Tahoma','sans-serif'; color: black" lang="EN-US">1&nbsp;</span><span lang="EN-US"><font face="Calibri"><span style="font-size: 10pt"><span lang="EN-US"><font face="Calibri"><span style="font-size: 10pt"><span lang="EN-US"><font face="Calibri"><span lang="EN-US"><font face="Calibri">设备中心</font></span> </font></span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">设置：文件</span><span lang="EN-US"><font face="Calibri">-</font></span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">连接设置：允许连接到以下其中一个端口</span><font face="Calibri"> </font><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">选择</span><span lang="EN-US"><font face="Calibri">DMA</font></span></span></font></span></span></font></span></span></span></p>
<p style="text-indent: -5pt; margin: 0cm 0cm 0pt 5pt; mso-char-indent-count: -.5" class="MsoNormal"><span style="font-family: 'Tahoma','sans-serif'; color: black; font-size: 10pt" lang="EN-US">2 vs2008</span><span style="font-family: 宋体; color: black; font-size: 10pt; mso-ascii-font-family: Tahoma; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">菜单</span><span style="font-family: 'Tahoma','sans-serif'; color: black; font-size: 10pt" lang="EN-US"> Tools-Device Emulator Manager- </span><span style="font-family: 宋体; color: black; font-size: 10pt; mso-ascii-font-family: Tahoma; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">选择</span><span style="font-family: 'Tahoma','sans-serif'; color: black; font-size: 10pt" lang="EN-US">Windows Mobile 6.3.5 Professional WVGAEmulator</span><span style="font-family: 宋体; color: black; font-size: 10pt; mso-ascii-font-family: Tahoma; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">右键</span><span style="font-family: 'Tahoma','sans-serif'; color: black; font-size: 10pt" lang="EN-US">Connect<O:P></O:P></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-size: 10pt"><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">等待刷新，然后<span style="font-family: 宋体; color: black; font-size: 10pt; mso-ascii-font-family: Tahoma; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">选择</span><span style="font-family: 'Tahoma', 'sans-serif'; color: black; font-size: 10pt" lang="EN-US">Windows Mobile 6.3.5 Professional WVGAEmulator</span>右键</span><span lang="EN-US">Cradle</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">建立同步</span></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin"><span style="font-size: 10pt">然后出现同步设置向导，下一步，然后根据需求完成向导。</span></span></p>
<a href="/zdq5337/admin/EditPosts.aspx?catid=43214"><u><font color="#0066cc"></font></u></a>
<img src ="http://www.blogjava.net/zdq5337/aggbug/335577.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zdq5337/" target="_blank">开花流水</a> 2010-10-19 15:08 <a href="http://www.blogjava.net/zdq5337/archive/2010/10/19/335577.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle创建表时设置自增主键</title><link>http://www.blogjava.net/zdq5337/archive/2010/07/30/327590.html</link><dc:creator>开花流水</dc:creator><author>开花流水</author><pubDate>Fri, 30 Jul 2010 09:26:00 GMT</pubDate><guid>http://www.blogjava.net/zdq5337/archive/2010/07/30/327590.html</guid><wfw:comment>http://www.blogjava.net/zdq5337/comments/327590.html</wfw:comment><comments>http://www.blogjava.net/zdq5337/archive/2010/07/30/327590.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zdq5337/comments/commentRss/327590.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zdq5337/services/trackbacks/327590.html</trackback:ping><description><![CDATA[<p>先创建一个名字为test_Sequence的序列，然后执行下列语句，<br />
CREATE TABLE example1(<br />
ID Number(4) NOT NULL PRIMARY KEY,<br />
NAME VARCHAR(25),<br />
PHONE VARCHAR(10),<br />
ADDRESS VARCHAR(50));</p>
<p><br />
create trigger "example1_tt" before insert<br />
on "EXAMPLE1" for each row<br />
declare<br />
&nbsp;&nbsp;&nbsp; integrity_error&nbsp; exception;<br />
&nbsp;&nbsp;&nbsp; errno&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer;<br />
&nbsp;&nbsp;&nbsp; errmsg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char(200);<br />
&nbsp;&nbsp;&nbsp; dummy&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer;<br />
&nbsp;&nbsp;&nbsp; found&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boolean;</p>
<p>begin<br />
&nbsp;&nbsp;&nbsp; --&nbsp; Column ""ID"" uses sequence Sequence_increase<br />
&nbsp;&nbsp;&nbsp; select test_Sequence.Nextval INTO :new."ID" from dual;</p>
<p>--&nbsp; Errors handling<br />
exception<br />
&nbsp;&nbsp;&nbsp; when integrity_error then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; raise_application_error(errno, errmsg);<br />
end;</p>
需要注意的是不同的表共用同一个序列时，由于序列的是一个，所以不同表的自增会不连续，另外和SqlServer不同的还有，设置了这个以后主键是可以自己维护的，只有当主键为空时才会调用触发器，由序列产生自增值。<br />
<br />
另外，pd自动生成的oracle的sql语句是包含双引号的，可能导致oracle权限的错误，错误提示是：ORA-00904:invalid identifier。
<img src ="http://www.blogjava.net/zdq5337/aggbug/327590.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zdq5337/" target="_blank">开花流水</a> 2010-07-30 17:26 <a href="http://www.blogjava.net/zdq5337/archive/2010/07/30/327590.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate SQL方言 (hibernate.dialect) </title><link>http://www.blogjava.net/zdq5337/archive/2010/05/19/321354.html</link><dc:creator>开花流水</dc:creator><author>开花流水</author><pubDate>Wed, 19 May 2010 03:50:00 GMT</pubDate><guid>http://www.blogjava.net/zdq5337/archive/2010/05/19/321354.html</guid><wfw:comment>http://www.blogjava.net/zdq5337/comments/321354.html</wfw:comment><comments>http://www.blogjava.net/zdq5337/archive/2010/05/19/321354.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zdq5337/comments/commentRss/321354.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zdq5337/services/trackbacks/321354.html</trackback:ping><description><![CDATA[<table summary="&#10;                    Hibernate SQL方言 (hibernate.dialect)&#10;                " border="1">
    <thead>
        <tr>
            <th>RDBMS </th>
            <th>方言 </th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>DB2 </td>
            <td><tt>org.hibernate.dialect.DB2Dialect</tt> </td>
        </tr>
        <tr>
            <td>DB2 AS/400 </td>
            <td><tt>org.hibernate.dialect.DB2400Dialect</tt> </td>
        </tr>
        <tr>
            <td>DB2 OS390 </td>
            <td><tt>org.hibernate.dialect.DB2390Dialect</tt> </td>
        </tr>
        <tr>
            <td>PostgreSQL </td>
            <td><tt>org.hibernate.dialect.PostgreSQLDialect</tt> </td>
        </tr>
        <tr>
            <td>MySQL </td>
            <td><tt>org.hibernate.dialect.MySQLDialect</tt> </td>
        </tr>
        <tr>
            <td>MySQL with InnoDB </td>
            <td><tt>org.hibernate.dialect.MySQLInnoDBDialect</tt> </td>
        </tr>
        <tr>
            <td>MySQL with MyISAM </td>
            <td><tt>org.hibernate.dialect.MySQLMyISAMDialect</tt> </td>
        </tr>
        <tr>
            <td>Oracle (any version) </td>
            <td><tt>org.hibernate.dialect.OracleDialect</tt> </td>
        </tr>
        <tr>
            <td>Oracle 9i/10g </td>
            <td><tt>org.hibernate.dialect.Oracle9Dialect</tt> </td>
        </tr>
        <tr>
            <td>Sybase </td>
            <td><tt>org.hibernate.dialect.SybaseDialect</tt> </td>
        </tr>
        <tr>
            <td>Sybase Anywhere </td>
            <td><tt>org.hibernate.dialect.SybaseAnywhereDialect</tt> </td>
        </tr>
        <tr>
            <td>Microsoft SQL Server </td>
            <td><tt>org.hibernate.dialect.SQLServerDialect</tt> </td>
        </tr>
        <tr>
            <td>SAP DB </td>
            <td><tt>org.hibernate.dialect.SAPDBDialect</tt> </td>
        </tr>
        <tr>
            <td>Informix </td>
            <td><tt>org.hibernate.dialect.InformixDialect</tt> </td>
        </tr>
        <tr>
            <td>HypersonicSQL </td>
            <td><tt>org.hibernate.dialect.HSQLDialect</tt> </td>
        </tr>
        <tr>
            <td>Ingres </td>
            <td><tt>org.hibernate.dialect.IngresDialect</tt> </td>
        </tr>
        <tr>
            <td>Progress </td>
            <td><tt>org.hibernate.dialect.ProgressDialect</tt> </td>
        </tr>
        <tr>
            <td>Mckoi SQL </td>
            <td><tt>org.hibernate.dialect.MckoiDialect</tt> </td>
        </tr>
        <tr>
            <td>Interbase </td>
            <td><tt>org.hibernate.dialect.InterbaseDialect</tt> </td>
        </tr>
        <tr>
            <td>Pointbase </td>
            <td><tt>org.hibernate.dialect.PointbaseDialect</tt> </td>
        </tr>
        <tr>
            <td>FrontBase </td>
            <td><tt>org.hibernate.dialect.FrontbaseDialect</tt> </td>
        </tr>
        <tr>
            <td>Firebird </td>
            <td><tt>org.hibernate.dialect.FirebirdDialect</tt></td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/zdq5337/aggbug/321354.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zdq5337/" target="_blank">开花流水</a> 2010-05-19 11:50 <a href="http://www.blogjava.net/zdq5337/archive/2010/05/19/321354.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>js 验证数字的有效性</title><link>http://www.blogjava.net/zdq5337/archive/2010/04/28/319597.html</link><dc:creator>开花流水</dc:creator><author>开花流水</author><pubDate>Wed, 28 Apr 2010 06:32:00 GMT</pubDate><guid>http://www.blogjava.net/zdq5337/archive/2010/04/28/319597.html</guid><wfw:comment>http://www.blogjava.net/zdq5337/comments/319597.html</wfw:comment><comments>http://www.blogjava.net/zdq5337/archive/2010/04/28/319597.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zdq5337/comments/commentRss/319597.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zdq5337/services/trackbacks/319597.html</trackback:ping><description><![CDATA[验证数字的有效性，此处为大于0而且小于100的不为空数字为合法<br />
function check(textId) {<br />
&nbsp;var num;<br />
&nbsp;num = document.getElementById(textId).value;<br />
&nbsp;if (num.length == 0 || num.replace(/(^\s*)|(\s*$)/g,"")==""&nbsp; ) {<br />
&nbsp;&nbsp;alert("\u4e2a\u6570\u7684\u503c\u4e0d\u80fd\u4e3a\u7a7a\uff01");<br />
&nbsp;&nbsp;event.returnValue = false;<br />
&nbsp;}<br />
&nbsp;if (isNaN(num)) {<br />
&nbsp;&nbsp;alert("\u4e2a\u6570\u7684\u503c\u5fc5\u987b\u662f\u6574\u6570\u7684\u6570\u5b57\uff01");<br />
&nbsp;&nbsp;event.returnValue = false;<br />
&nbsp;}<br />
&nbsp;if (parseInt(num) &lt;= 0) {<br />
&nbsp;&nbsp;alert("\u4e2a\u6570\u7684\u503c\u5fc5\u987b\u5927\u4e8e0");<br />
&nbsp;&nbsp;event.returnValue = false;<br />
&nbsp;}<br />
&nbsp;if (parseInt(num) &gt; 100) {<br />
&nbsp;&nbsp;alert("\u4e2a\u6570\u7684\u503c\u5fc5\u987b\u5c0f\u4e8e100");<br />
&nbsp;&nbsp;event.returnValue = false;<br />
&nbsp;}<br />
&nbsp;return true;<br />
} 
<img src ="http://www.blogjava.net/zdq5337/aggbug/319597.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zdq5337/" target="_blank">开花流水</a> 2010-04-28 14:32 <a href="http://www.blogjava.net/zdq5337/archive/2010/04/28/319597.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java中的部分文件操作</title><link>http://www.blogjava.net/zdq5337/archive/2009/10/22/299381.html</link><dc:creator>开花流水</dc:creator><author>开花流水</author><pubDate>Thu, 22 Oct 2009 08:11:00 GMT</pubDate><guid>http://www.blogjava.net/zdq5337/archive/2009/10/22/299381.html</guid><wfw:comment>http://www.blogjava.net/zdq5337/comments/299381.html</wfw:comment><comments>http://www.blogjava.net/zdq5337/archive/2009/10/22/299381.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zdq5337/comments/commentRss/299381.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zdq5337/services/trackbacks/299381.html</trackback:ping><description><![CDATA[<p>/**<br />
&nbsp; * 转移文件路径<br />
&nbsp; * <br />
&nbsp; * @param filename<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 文件名<br />
&nbsp; * @param oldpath<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 旧文件路径<br />
&nbsp; * @param newpath<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 新文件路径<br />
&nbsp; * @param cover<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 若新目录下存在和转移文件具有相同文件名的文件时，是否覆盖新目录下文件，cover=true将会覆盖原文件，否则不操作<br />
&nbsp; */<br />
&nbsp;public void changeDirectory(String fileName, String oldPath,<br />
&nbsp;&nbsp;&nbsp;String newPath, boolean cover) {<br />
&nbsp;&nbsp;if (!oldPath.equals(newPath)) {<br />
&nbsp;&nbsp;&nbsp;File oldFile = new File(oldPath + "/" + fileName);<br />
&nbsp;&nbsp;&nbsp;File newFile = new File(newPath + "/" + fileName);<br />
&nbsp;&nbsp;&nbsp;if (newFile.exists()) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (cover) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newFile.delete();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oldFile.renameTo(newFile);<br />
&nbsp;&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("新目录已经存在：" + fileName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;oldFile.renameTo(newFile);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * 文件重命名<br />
&nbsp; * <br />
&nbsp; * @param path<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 文件目录<br />
&nbsp; * @param oldname<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 原来的文件名<br />
&nbsp; * @param newname<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 新文件名<br />
&nbsp; */<br />
&nbsp;public void renameFile(String path, String oldname, String newname) {<br />
&nbsp;&nbsp;if (!oldname.equals(newname)) {<br />
&nbsp;&nbsp;&nbsp;File oldfile = new File(path + "/" + oldname);<br />
&nbsp;&nbsp;&nbsp;File newfile = new File(path + "/" + newname);<br />
&nbsp;&nbsp;&nbsp;if (newfile.exists()) {// 若在该目录下已经有一个文件和新文件名相同，则删除重建<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(newname + "已经存在！");<br />
&nbsp;&nbsp;&nbsp;&nbsp;newfile.delete();<br />
&nbsp;&nbsp;&nbsp;&nbsp;oldfile.renameTo(newfile);<br />
&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;oldfile.renameTo(newfile);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * 创建文件夹<br />
&nbsp; * <br />
&nbsp; * @param path<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 文件路径<br />
&nbsp; */<br />
&nbsp;public void createDir(String path) {<br />
&nbsp;&nbsp;String pathes[] = path.split("/");<br />
&nbsp;&nbsp;String filePath = "";<br />
&nbsp;&nbsp;for (int i = 0; i &lt; pathes.length; i++) {<br />
&nbsp;&nbsp;&nbsp;filePath += pathes[i];<br />
&nbsp;&nbsp;&nbsp;filePath += "/";<br />
&nbsp;&nbsp;&nbsp;File dirPath = new File(filePath);<br />
&nbsp;&nbsp;&nbsp;if (!dirPath.exists())<br />
&nbsp;&nbsp;&nbsp;&nbsp;dirPath.mkdir();<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
 <img src ="http://www.blogjava.net/zdq5337/aggbug/299381.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zdq5337/" target="_blank">开花流水</a> 2009-10-22 16:11 <a href="http://www.blogjava.net/zdq5337/archive/2009/10/22/299381.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>利用cursor及fetch将一个表中符合条件的记录拷贝到另一个表中</title><link>http://www.blogjava.net/zdq5337/archive/2009/07/18/287228.html</link><dc:creator>开花流水</dc:creator><author>开花流水</author><pubDate>Sat, 18 Jul 2009 02:09:00 GMT</pubDate><guid>http://www.blogjava.net/zdq5337/archive/2009/07/18/287228.html</guid><wfw:comment>http://www.blogjava.net/zdq5337/comments/287228.html</wfw:comment><comments>http://www.blogjava.net/zdq5337/archive/2009/07/18/287228.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zdq5337/comments/commentRss/287228.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zdq5337/services/trackbacks/287228.html</trackback:ping><description><![CDATA[1、匿名块的格式基本就如下面所示
<br />
[declare]
<br />
/*变量定义区，也可做初使化等*/
<br />
begin
<br />
/*开始区，执行顺序SQL语句*/
<br />
[exception]
<br />
/*异常处理区，可进行异常处理，异常的抛出使用raise关键字*/
<br />
end;
<br />
其中方框里面的为可选项，不作为必须。
<br />
2、<span class="hilite1">fetch</span>
<br />
1）首先要定义<span class="hilite2">cursor</span>，如<span class="hilite2">cursor</span> id_cur is select id from components
<br />
2）然后打开<span class="hilite2">cursor</span>：open id_cur
<br />
3）第三是使用<span class="hilite1">fetch</span>从<span class="hilite2">cursor</span>并保存到变理中
<br />
4）第四关闭<span class="hilite2">cursor</span>
<br />
那就把上面说到的功能实现，代码如下：
<br />
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Sql代码 <embed src="http://wangyu.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=declare%0A%20%20%20%20%20%20%20num_id%20integer%3B%2F*%E5%AE%9A%E4%B9%89%E5%8F%98%E9%87%8F*%2F%0A%20%20%20%20%20%20%20sql_str%20varchar(1000)%3B%0A%20%20%20%20%20%20%20cursor%20id_cur%20is%20select%20id%20from%20components%3B%2F*%E7%94%A8%E5%85%89%E6%A0%87%E5%8F%96ID*%2F%0Abegin%0A%20%20%20%20%20%20%20open%20id_cur%3B%2F*%E6%89%93%E5%BC%80%E5%85%89%E6%A0%87%E6%89%A7%E8%A1%8C*%2F%0A%20%20%20%20%20%20%20loop%2F*%E4%B8%80%E7%9B%B4%E6%89%A7%E8%A1%8C%E4%B8%8B%E5%8E%BB*%2F%0A%20%20%20%20%20%20%20%20%20%20%20%20fetch%20id_cur%20into%20num_id%3B%2F*%E6%A0%B9%E6%8D%AE%E5%85%89%E6%A0%87%EF%BC%8C%E5%8F%96%E5%87%BAID%E5%8F%B7%E5%88%B0%E5%8F%98%E9%87%8F%E4%B8%AD*%2F%0A%20%20%20%20%20%20%20%20%20%20%20%20exit%20when%20id_cur%25notfound%3B%2F*%E6%B2%A1%E6%9C%89%E8%AE%B0%E5%BD%95%E6%97%B6%E5%B0%B1%E9%80%80%E5%87%BA*%2F%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20mod(num_id%2C5)%3D0%20then%2F*%E5%A6%82%E6%9E%9C%E8%AE%B0%E5%BD%95ID%E4%B8%BA5%E7%9A%84%E5%80%8D%E6%95%B0%EF%BC%8C%E5%B0%B1%E6%89%A7%E8%A1%8C%E4%B8%8B%E9%9D%A2%E7%9A%84%E6%8F%92%E5%85%A5*%2F%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F*%E4%B8%8B%E9%9D%A2%E7%94%9F%E6%88%90%E4%B8%80%E6%9D%A1SQL%E8%AF%AD%E5%8F%A5*%2F%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sql_str%3A%3D'insert%20into%20components2%20select%20*%20from%20components%20where%20id%3D'%7C%7C%20num_id%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F*%E7%AB%8B%E5%8D%B3%E6%89%A7%E8%A1%8C%E7%94%9F%E6%88%90%E7%9A%84SQL%E8%AF%AD%E5%8F%A5*%2F%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20execute%20immediate%20sql_str%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20end%20if%3B%2F*%E8%AE%B0%E4%BD%8F%EF%BC%9A%E6%9D%A1%E4%BB%B6%E7%9A%84%E7%BB%93%E6%9D%9F%E5%90%8E%E9%83%BD%E8%A6%81%E5%8A%A0%E7%BB%93%E6%9D%9F%E6%9D%9F%E2%80%98%3B%E2%80%99*%2F%0A%20%20%20%20%20%20%20end%20loop%3B%0A%20%20%20%20%20%20%20close%20id_cur%3B%2F*%E5%85%B3%E9%97%AD%E5%85%89%E6%A0%87*%2F%0Aend%3B%0A%2F%20" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" width="14" height="15"></div>
</div>
<ol class="dp-sql" start="1">
    <li><span><span class="keyword">declare</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num_id&nbsp;<span class="keyword">integer</span><span>;/*定义变量*/&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sql_str&nbsp;<span class="keyword">varchar</span><span>(1000);&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword"><span class="hilite2">cursor</span></span><span>&nbsp;id_cur&nbsp;</span><span class="keyword">is</span><span>&nbsp;</span><span class="keyword">select</span><span>&nbsp;id&nbsp;</span><span class="keyword">from</span><span>&nbsp;components;/*用光标取ID*/&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">begin</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">open</span><span>&nbsp;id_cur;/*打开光标执行*/&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loop/*一直执行下去*/&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword"><span class="hilite1">fetch</span></span><span>&nbsp;id_cur&nbsp;</span><span class="keyword">into</span><span>&nbsp;num_id;/*根据光标，取出ID号到变量中*/&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit&nbsp;<span class="keyword">when</span><span>&nbsp;id_cur%notfound;/*没有记录时就退出*/&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;mod(num_id,5)=0&nbsp;<span class="keyword">then</span><span>/*如果记录ID为5的倍数，就执行下面的插入*/&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*下面生成一条SQL语句*/&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sql_str:=<span class="string">'insert&nbsp;into&nbsp;components2&nbsp;select&nbsp;*&nbsp;from&nbsp;components&nbsp;where&nbsp;id='</span><span>||&nbsp;num_id;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*立即执行生成的SQL语句*/&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">execute</span><span>&nbsp;immediate&nbsp;sql_str;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><span>&nbsp;if;/*记住：条件的结束后都要加结束束&#8216;;&#8217;*/&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><span>&nbsp;loop;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">close</span><span>&nbsp;id_cur;/*关闭光标*/&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">end</span><span>;&nbsp;&nbsp;</span></span></li>
    <li><span>/&nbsp;&nbsp; <br />
    </span></li>
</ol>
</div>
 <img src ="http://www.blogjava.net/zdq5337/aggbug/287228.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zdq5337/" target="_blank">开花流水</a> 2009-07-18 10:09 <a href="http://www.blogjava.net/zdq5337/archive/2009/07/18/287228.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsf验证的例子</title><link>http://www.blogjava.net/zdq5337/archive/2009/06/05/280197.html</link><dc:creator>开花流水</dc:creator><author>开花流水</author><pubDate>Fri, 05 Jun 2009 05:57:00 GMT</pubDate><guid>http://www.blogjava.net/zdq5337/archive/2009/06/05/280197.html</guid><wfw:comment>http://www.blogjava.net/zdq5337/comments/280197.html</wfw:comment><comments>http://www.blogjava.net/zdq5337/archive/2009/06/05/280197.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/zdq5337/comments/commentRss/280197.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zdq5337/services/trackbacks/280197.html</trackback:ping><description><![CDATA[<p>&lt;!doctype html public "-//w3c//dtd html 4.0 transitional//en"&gt;<br />
&lt;%@ page contentType="text/html;charset=utf-8" pageEncoding="UTF-8"%&gt;</p>
<p>&lt;%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%&gt;<br />
&lt;%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%&gt;<br />
&lt;!-- RichFaces tag library declaration --&gt;<br />
&lt;%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%&gt;<br />
&lt;%@ taglib uri="http://richfaces.org/rich" prefix="rich"%&gt;<br />
&lt;html&gt;<br />
&nbsp;&lt;f:view&gt;<br />
&nbsp;&nbsp;&lt;head&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;title&gt;JSF in Action - Validator examples&lt;/title&gt;<br />
&nbsp;&nbsp;&lt;/head&gt;<br />
&nbsp;&nbsp;&lt;body&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;h1&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Validator examples<br />
&nbsp;&nbsp;&nbsp;&lt;/h1&gt;</p>
<p><br />
&nbsp;&nbsp;&nbsp;&lt;h:form&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;table border="1" cellspacing="0" cellpadding="5"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;b&gt;Validator(s)&lt;/b&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;b&gt;Comments&lt;/b&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;b&gt;Input&lt;/b&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;b&gt;Errors&lt;/b&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validation method<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;validator=testForm.validateEmail<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:inputText id="methodInput"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;validator="#{testForm.validateEmail}" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:message for="methodInput" style="color: red" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;None (component property)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;required="true"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:selectOneMenu id="RequiredInput" required="true"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;f:selectItem itemValue="" itemLabel="" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;f:selectItem itemValue="1" itemLabel="dogs" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;f:selectItem itemValue="2" itemLabel="birds" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;f:selectItem itemValue="3" itemLabel="hamsters" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/h:selectOneMenu&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:message for="RequiredInput" style="color: red" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Length<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;minimum="2"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxmimum="10"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:inputText id="LengthInput"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;f:validateLength minimum="2" maximum="10" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/h:inputText&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:message for="LengthInput" style="color: red" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LongRange<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;minimum="5"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxmimum="999999"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:inputText id="LongRangeInput"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;f:validateLongRange minimum="5" maximum="999999" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/h:inputText&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:message for="LongRangeInput" style="color: red" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DoubleRange<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;minimum="5.1"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxmimum="6.76"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:selectOneRadio id="DoubleRangeInput"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;f:selectItem itemValue="5.0" itemLabel="5.0" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;f:selectItem itemValue="6.1" itemLabel="6.1" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;f:selectItem itemValue="6.8" itemLabel="6.8" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;f:validateDoubleRange minimum="5.1" maximum="6.76" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/h:selectOneRadio&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:message for="DoubleRangeInput" style="color: red" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Length, LongRange<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;required="true"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Length minimum="2"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Length maxmimum="3"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LongRange minimum="10"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LongRange maxmimum="999"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:inputText id="MultiInput" required="true"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;f:validateLength minimum="2" maximum="3" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;f:validateLongRange minimum="10" maximum="999" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/h:inputText&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:message for="MultiInput" style="color: red" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:commandButton value="Go!" /&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/h:form&gt;<br />
&nbsp;&nbsp;&lt;/body&gt;<br />
&nbsp;&lt;/f:view&gt;</p>
<p><br />
&lt;/html&gt;<br />
</p>
 <img src ="http://www.blogjava.net/zdq5337/aggbug/280197.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zdq5337/" target="_blank">开花流水</a> 2009-06-05 13:57 <a href="http://www.blogjava.net/zdq5337/archive/2009/06/05/280197.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>