﻿<?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-海水正蓝</title><link>http://www.blogjava.net/xiaohuzi2008/</link><description>面朝大海，春暖花开</description><language>zh-cn</language><lastBuildDate>Mon, 20 Apr 2026 03:43:51 GMT</lastBuildDate><pubDate>Mon, 20 Apr 2026 03:43:51 GMT</pubDate><ttl>60</ttl><item><title>让Extjs EditorGridPanel 编辑时支持方向键</title><link>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/27/403361.html</link><dc:creator>小胡子</dc:creator><author>小胡子</author><pubDate>Tue, 27 Aug 2013 05:10:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/27/403361.html</guid><wfw:comment>http://www.blogjava.net/xiaohuzi2008/comments/403361.html</wfw:comment><comments>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/27/403361.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuzi2008/comments/commentRss/403361.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuzi2008/services/trackbacks/403361.html</trackback:ping><description><![CDATA[<div>在用 extjs editorgridpanel 进行输入编辑的时候, 默认情况下只支持使用 tab 键可以实现焦点切换, 如果想让editorgridpanel 在编辑时通过方向键来<span>实现焦点跳转切换，只需加上以下代码：</span></div><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">//</span><span style="color: #008000; ">让grid支持方向键盘&nbsp;by&nbsp;liongis@163.com</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">Ext.override(Ext.grid.CellSelectionModel,&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;onEditorKey&nbsp;:&nbsp;function(field,&nbsp;e)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;smodel&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;k&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;e.getKey(),&nbsp;newCell,&nbsp;g&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;smodel.grid,&nbsp;ed&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;g.activeEditor;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">switch</span><span style="color: #000000; ">(k){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">case</span><span style="color: #000000; ">&nbsp;e.TAB:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.stopEvent();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ed.completeEdit();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(e.shiftKey)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newCell&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;g.walkCells(ed.row,&nbsp;ed.col</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;smodel.acceptsNav,&nbsp;smodel);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newCell&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;g.walkCells(ed.row,&nbsp;ed.col</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;smodel.acceptsNav,&nbsp;smodel);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(ed.col&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(e.shiftKey)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newCell&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;g.walkCells(ed.row,&nbsp;ed.col</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;smodel.acceptsNav,&nbsp;smodel);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newCell&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;g.walkCells(ed.row,&nbsp;ed.col</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;smodel.acceptsNav,&nbsp;smodel);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">case</span><span style="color: #000000; ">&nbsp;e.UP:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.stopEvent();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ed.completeEdit();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newCell&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;g.walkCells(ed.row</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;ed.col,&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;smodel.acceptsNav,&nbsp;smodel);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">case</span><span style="color: #000000; ">&nbsp;e.DOWN:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.stopEvent();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ed.completeEdit();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newCell&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;g.walkCells(ed.row</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;ed.col,&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;smodel.acceptsNav,&nbsp;smodel);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">case</span><span style="color: #000000; ">&nbsp;e.LEFT:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.stopEvent();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ed.completeEdit();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newCell&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;g.walkCells(ed.row,&nbsp;ed.col</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;smodel.acceptsNav,&nbsp;smodel);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">case</span><span style="color: #000000; ">&nbsp;e.RIGHT:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.stopEvent();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ed.completeEdit();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newCell&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;g.walkCells(ed.row,&nbsp;ed.col</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;smodel.acceptsNav,&nbsp;smodel);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(newCell)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.startEditing(newCell[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">],&nbsp;newCell[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />});</span></div><div><span style="color: #ff0000;">注意：</span>这里重写的是：CellSelectionModel ，而不是RowSelectionMode</div>原文出自：<div>http://www.cnblogs.com/liongis/p/3284620.html</div><img src ="http://www.blogjava.net/xiaohuzi2008/aggbug/403361.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuzi2008/" target="_blank">小胡子</a> 2013-08-27 13:10 <a href="http://www.blogjava.net/xiaohuzi2008/archive/2013/08/27/403361.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ExtJs控件属性配置详细</title><link>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/27/403359.html</link><dc:creator>小胡子</dc:creator><author>小胡子</author><pubDate>Tue, 27 Aug 2013 04:42:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/27/403359.html</guid><wfw:comment>http://www.blogjava.net/xiaohuzi2008/comments/403359.html</wfw:comment><comments>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/27/403359.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuzi2008/comments/commentRss/403359.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuzi2008/services/trackbacks/403359.html</trackback:ping><description><![CDATA[<div><h2><span style="font-family: 宋体; font-size: 14pt;"><strong>序言：</strong></span></h2> <p><span style="font-family: 宋体; font-size: 14pt;"><strong>&nbsp; &nbsp;</strong><span style="font-size: 15px;">1.本文摘自网络，看控件命名像是4.0以前的版本，但控件属性配置仍然可以借鉴（不足之处，以后项目用到时再续完善）。</span></span></p> <h2><span style="font-family: 宋体; font-size: 14pt;"><strong>Ext.form.TimeField:</strong></span></h2> <p>&nbsp; <span style="font-size: 15px;">配置项：&nbsp;</span><br /><span style="font-size: 15px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxValue：列表中允许的最大时间&nbsp;</span><br /><span style="font-size: 15px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxText：当时间大于最大值时的错误提示信息&nbsp;</span><br /><span style="font-size: 15px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minValue：列表中允许的最小时间&nbsp;</span><br /><span style="font-size: 15px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minText：当时间小于最小值时的错误提示信息&nbsp;</span><br /><span style="font-size: 15px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; increment：两个相邻选项间的时间间隔，默认为15分钟&nbsp;</span><br /><span style="font-size: 15px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; format：显示格式，默认为&#8220;g:i A&#8221;。一般使用&#8220;H:i:s&#8221;&nbsp;</span><br /><span style="font-size: 15px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; H：带前缀0的24小时&nbsp;</span><br /><span style="font-size: 15px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;i：带前缀0的分钟&nbsp;</span><br /><span style="font-size: 15px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s：带前缀0的秒&nbsp;</span><br /><span style="font-size: 15px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invalidText：当时间值非法时显示的提示信息&nbsp;</span><br /><span style="font-size: 15px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; altFormats：多个时间输入格式组成的字符串，不同的格式之间使用&#8220;|&#8221;进行分割</span></p> <h2><span style="font-family: 宋体; font-size: 14pt;"><strong>Ext.form.FieldSet</strong></span></h2> <p>　　　　animCollapse：动画折叠，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; checkboxToggle：设置是否显示字段集的checkbox选择框，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; checkboxName：指定字段集中用于展开或隐藏字段集面板的checkbox的名字，该属性只有在checkboxToggle为true时生效&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; labelWidth：字段标签的宽度，可以级联到子容器&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout：布局，默认为form</p> <h2><span style="font-family: 宋体; font-size: 14pt;"><strong>Ext.form.DateFied</strong></span></h2> <p>　　　　maxValue：允许选择的最大日期&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxText：当日期大于最大值时的错误提示信息&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minValue：允许选择的最小时间&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minText：当日期小于最小值时的错误提示信息&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; format：日期显示格式，默认为&#8220;m/d/y&#8221;，一般使用&#8220;Y-m-d&#8221;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Y：四位年份&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m：带前缀0的月份&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d：带前缀0的日期&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; y：两位年份&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n：不带前缀0的月份&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j：不带前缀0的日期&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; w：星期的数字，0表示星期日，1代表星期一&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; showToday：是否显示今天按钮，默认为true&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  altFormats：多个日期输入格式组成的字符串，不同的格式之间使用&#8220;|&#8221;进行分割，默认值为'm/d/Y|n/j/Y|n/j/y|m/j  /y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d'&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; disabledDates：禁止选择的日期组成的数组&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; disabledDatesText：选择禁选日期时显示的提示信息&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; disabledDays：禁止选择的星期组成的数组，0代表星期日，1代表星期一&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; disabledDaysText：选择禁选星期时显示的提示信息&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invalidText：当日期值非法时显示的提示信息&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp; 方法：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getValue()：取得日期值</p> <h2><span style="font-family: 宋体; font-size: 14pt;"><strong>Ext.form.ComboBox</strong></span></h2> <p>　　　　displayField：被显示在下拉框中的字段名&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; editable：是否可编辑，默认为true&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; forceSelection：输入值是否严格为待选列表中存在的值。如果输入不存在的值，会自动选择第一个最接近的值。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hiddenName：隐藏字段的名字，如果提供该参数则一个隐藏字段将被创建，用来存储所选值，当表单提交时在服务器端可以通过该名字取得列表中的所选值&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listWidth：下拉列表的宽度&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minListWidth：下拉列表的最小宽度，默认为70像素&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; loadingText：当下拉框加载数据时显示的提示信息，只有当mode='remote'时才会生效&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxHeight：下拉列表框的最大高度，默认为300像素&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minChars：下拉列表框自动选择前用户需要输入的最小字符数量。mode='remote'默认为4，mode='local'默认为0&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mode：下拉列表框的数据读取模式。remote读取远程数据，local读取本地数据&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pageSize：下拉列表框的分页大小。该项设置只在mode='remote'时生效&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; queryParam：查询的名字，默认为'query'，将被传递到查询字符串中&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allQuery：一个发往服务器用来查询全部信息的查询字符串，默认为空字符串''&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selectOnFocus：当获得焦点时立刻选择一个已存在的列表项。默认为false，此项只有在editable=true时才会生效&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; store：列表框绑定的数据源&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; transform：将页面中已存在的元素转换为组合框&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lazyInit：延时初始化下拉列表，默认为true&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lazyRender：延时渲染，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; triggerAction：设置单击触发按钮时执行的默认操作，有效值包括all和query，默认为query，如果设置为all则会执行allQuery中设置的查询&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typeAhead：设置在输入过程中是否自动选择匹配的剩余部分文本（选择第一个满足条件的），默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value：初始化组合框中的值&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; valueField：组合框的值字段&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; valueNotFoundText：值不存在时的提示信息&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tpl：Ext模板字符串或模板对象，可以通过该配置项自定义下拉列表的显示方式&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp; 方法：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clearValue()：清空字段当前值&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; doQuery( String query, Boolean forceAll )：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getValue()：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getStore()：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setValue( String value )：</p> <h2><span style="font-family: 宋体; font-size: 14pt;"><strong>Ext.from.RadioGroup</strong></span></h2> <p>　　　　allowBlank：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; blankText：</p> <h2><span style="font-family: 宋体; font-size: 14pt;"><strong>Ext.form.Radio;</strong></span></h2> <p>　　　　getGroupValue()：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setValue( value {String/Boolean} )：</p> <h2><span style="font-family: 宋体; font-size: 14pt;"><strong>Ext.form.CheckboxGroup</strong></span></h2> <p>&nbsp;　　　&nbsp;allowBlank：是否允许不选择，默认为true&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; blankText：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; columns：显示的列数，可选值包括：固定值auto、数值、数组（整数、小数）&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; items：对象数组&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vertical：是否垂直方向显示对象，默认为false</p> <h2><span style="font-family: 宋体; font-size: 14pt;"><strong>Ext.form.Checkbox</strong></span></h2> <p>&nbsp; boxLabel：复选框的文字描述&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; checked：复选框是否被选择，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handler：当checked值改变时触发的函数，函数包含两个参数：checkbox、checked&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inputValue：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp; 方法：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getValue()：返回复选框的checked状态&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setValue( Boolean/String checked )：</p> <h2><span style="font-family: 宋体; font-size: 14pt;"><strong>Ext.form.NumberField</strong></span></h2> <p>&nbsp; 　　　&nbsp;allowDecimals：是否允许输入小数，默认为true&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allowNegative：是否允许输入负数，默认为true&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; baseChars：输入的有效数字集合，默认为'0123456789'&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; decimalPrecision：数字的精度，默认保留小数点后2位&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; decimalSeparator：十进制分隔符，默认为'.'&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxValue：允许输入的最大数值&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxText：超过最大值之后的提示信息&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minValue：允许输入的最小数值&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minText：超过最小值之后的提示信息&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nanText：输入非有效数值之后的提示信息</p> <h2><span style="font-family: 宋体; font-size: 14pt;"><strong>Ext.form.TextArea</strong></span></h2> <p>　　 &nbsp;preventScrollbars：是否禁止出现滚动条，默认为false</p> <h2><span style="font-family: 宋体; font-size: 14pt;"><strong>Ext.form.TextField</strong></span></h2> <p>　　　&nbsp;allowBlank：是否允许为空，默认为true&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; blankText：空验证失败后显示的提示信息&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; emptyText：在一个空字段中默认显示的信息&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; grow：字段是否自动伸展和收缩，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; growMin：收缩的最小宽度&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; growMax：伸展的最大宽度&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inputType：字段类型：默认为text&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maskRe：用于过滤不匹配字符输入的正则表达式&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxLength：字段允许输入的最大长度&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxLengthText：最大长度验证失败后显示的提示信息&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minLength：字段允许输入的最小长度&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minLengthText：最小长度验证失败后显示的提示信息&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; regex：正则表达式&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; regexText：正则表达式验证失败后显示的提示信息&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtype：验证类型的名字&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alpha：限制只能输入字母&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alphanum：限制只能输入字母和数字&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; email&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtypeText：验证失败时的提示信息&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; validator：自定义验证函数&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selectOnFocus：当字段得到焦点时自动选择已存在的文本，默认为false</p> <h2><span style="font-family: 宋体; font-size: 14pt;"><strong>Ext.form.Field</strong></span></h2> <p>　　　&nbsp;name：字段名&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value：字段的初始化值&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; disabled：字段是否不可用，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fieldLabel：字段标签说明&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hideLabel：隐藏字段标签，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; labelSeparator：字段标签与字段之间的分隔符，默认为':'&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; labelStyle：字段标签样式&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inputType：默认为text&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invalidClass：默认为x-form-invalid&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invalidText：字段非法文本提示&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msgTarget：错误信息显示的位置，默认为qtip&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; qtip：显示一个浮动的提示信息&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title：显示一个浏览器的浮动提示信息&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; under：在字段下方显示一个提示信息&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; side：在字段右边显示一个提示信息&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; readOnly：字段是否只读，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; validateOnBlur：字段在失去焦点时被验证，默认为true&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp; 方法：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clearInvalid()：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getRawValue()&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setRawValue( Mixed value )&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getValue()&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setValue( Mixed value )&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isDirty()：字段值在装载后是否被修改过&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isValid( Boolean preventMark )：当前字段值是否合法&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; markInvalid( [String msg] )&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; validate()&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reset()</p> <h2><span style="font-family: 宋体; font-size: 14pt;"><strong>Ext.form.FormPanel</strong></span></h2> <p>items：一个元素或元素数组&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buttons：一个按钮配置对象的数组，按钮将被添加到表单页脚中&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buttonAlign：按钮的对齐方式，可选值有left、center、right，默认为center&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; labelWidth：表单标签的宽度&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; labelAlign：表单标签的对齐方式，可选值有left、top、right，默认为left&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; labelSeparator：字段标签与字段之间的分隔符，默认为':'&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minButtonWidth：按钮的最小宽度，默认为75&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp; 方法：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getForm() : Ext.form.BasicForm&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; load( Object options )&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; startMonitoring()&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stopMonitoring()</p> <h2><span style="font-family: 宋体; font-size: 14pt;"><strong>Ext.form.BaseicForm</strong></span></h2> <p>　　　&nbsp;baseParams：传递到请求中的参数&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; method：表单的提交方式，有效值包括GET、POST&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url：表单默认的提交路径&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fileUpload：表单是否进行文件上传&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; timeout：表单动作的超时时间，默认为30秒&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; trackResetOnLoad：是否在表单初次创建时清楚数据&nbsp;<br />&nbsp;&nbsp;&nbsp; 方法：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; doAction( String/Object actionName, [Object options] )：执行一个预订的动作，可用选项包括：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url：动作提交的路径&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; method：表单的提交方式，有效值包括GET、POST&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; params：传递到请求中的参数&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; headers：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; success：执行成功后回调的函数，包括两个参数：form和action&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; failure：执行失败后回调的函数，包括两个参数：form和action&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clientValidation：是否客户端验证&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clearInvalid()：清除表单中所有的无效验证信息&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; findField( String id )：查找表单字段&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getValues( [Boolean asString] )：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isDirty()：表单数据是否被更改过&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isValid()：客户端验证是否成功&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; load( Object options )：执行表单读取动作&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; loadRecord( Record record )：从一个数据记录中读取数据到表单中&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; markInvalid( Array/Object errors )：成批设置表单字段为验证无效&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reset()：重置表单&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setValues( Array/Object values )：成批设置表单字段值&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; submit( Object options )：执行表单提交动作&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; updateRecord( Record record )：持久化表单数据到记录集中</p> <p><strong>Ext.form.Action</strong></p> <p>　　　　success：执行成功后回调的函数，包括两个参数：form和action&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; failure：执行失败后回调的函数，包括两个参数：form和action&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; method：表单的提交方式，有效值包括GET、POST&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; params：传递到请求中的参数&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url：动作提交的路径&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; waitMsg：动作执行时显示的等待信息&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp; 属性：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Action.CLIENT_INVALID：客户端验证错误&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Action.CONNECT_FAILURE：通信错误&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Action.LOAD_FAILURE：加载数据时，没有包含data属性的字段被返回&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Action.SERVER_INVALID：服务端验证错误&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; failureType：错误类型&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result：包含布尔类型的success属性和其他属性，如{success: true, msg: 'ok'}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type：动作类型，可选值有submit和load&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ext.form.Action.Submit：返回的信息中要包含一个布尔类型的success属性和一个可选的errors属性&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ext.form.Action.Load：返回的信息中要包含一个布尔类型的success属性和一个data属性</p> <p><strong>Ext.grid.EditorGridPanel</strong></p> <p>　　　　clicksToEdit：设置点击单元格进入编辑模式的点击次数，默认为2&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; autoEncode：是否自动编码/解码HTML内容，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selModel：默认为Ext.grid.CellSelectionModel&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 主要方法：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; startEditing( Number rowIndex, Number colIndex )：开始编辑指定单元格&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stopEditing( [Boolean cancel] )：结束编辑操作</p> <p><strong>Ext.grid.GroupinView</strong></p> 　　　　enableGroupingMenu：是否在表头菜单中进行分组控制，默认为true&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; groupByText：表头菜单中分组控制的菜单文字，默认为'Group By This Field'&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enableNoGroups：是否允许用户关闭分组功能，默认为true&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; showGroupsText：在表头菜单中启用分组和禁用分组的菜单文字，默认为'Show in Groups'&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; groupTextTpl：用于渲染分组信息的模板，默认为'{text}'，常用的可选值有：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text：列标题:组字段值&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gvalue：组字段的值&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; startRow：组行索引&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enableGrouping：是否对数据分组，默认为true&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hideGroupedColumn：是否隐藏分组列，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ignoreAdd：在向表格中添加数据时是否刷新表格，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; showGroupName：是否在分组行上显示分组字段的名字，默认为true&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; startCollapsed：初次显示时分组是否处于收缩状态，默认为false&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 主要方法：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; collapseAllGroups()：收缩所有分组行&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; expandAllGroups()：展开所有分组行&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getGroupId( String value )：根据分组字段值取得组id&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; toggleAllGroups( [Boolean expanded] )：切换所有分组行的展开或收缩状态&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; toggleGroup( String groupId, [Boolean expanded] )：切换指定分组行的展开或收缩状态&nbsp;<br /><br /><br />2、Ext.data.GroupingStore&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; groupField：分组字段&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; groupOnSort：是否在分组字段上排序，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; remoteGroup：是否远程分组数据，默认为false。如果是远程分组数据，则通过groupBy参数发送分组字段名</div><div><h2><span style="font-family: 宋体; font-size: 14pt;"><strong>Ext.grid.GridPanel:</strong></span></h2> <p>　　　　store：表格的数据集&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; columns：表格列模式的配置数组，可自动创建ColumnModel列模式&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; autoExpandColumn：自动充满表格未用空间的列，参数为列id，该id不能为0&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stripeRows：表格是否隔行换色，默认为false&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cm、colModel：表格的列模式，渲染表格时必须设置该配置项&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sm、selModel：表格的选择模式，默认为Ext.grid.RowSelectionModel&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enableHdMenu：是否显示表头的上下文菜单，默认为true&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enableColumnHide：是否允许通过标题中的上下文菜单隐藏列，默认为true&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; loadMask：是否在加载数据时显示遮罩效果，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; view：表格视图，默认为Ext.grid.GridView&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; viewConfig：表格视图的配置对象&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; autoExpandMax：自动扩充列的最大宽度，默认为1000&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; autoExpandMin：自动扩充列的最小宽度，默认为50&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; columnLines：是否显示列分割线，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; disableSelection：是否禁止行选择，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enableColumnMove：是否允许拖放列，默认为true&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enableColumnResize：是否允许改变列宽，默认为true&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hideHeaders：是否隐藏表头，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxHeight：最大高度&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minColumnWidth：最小列宽，默认为25&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; trackMouseOver：是否高亮显示鼠标所在的行，默认为true&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 主要方法：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getColumnModel()：取得列模式&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getSelectionModel()：取得选择模式&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getStore()：取得数据集&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getView()：取得视图对象&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reconfigure( Ext.data.Store store, Ext.grid.ColumnModel colModel )：使用一个新的数据集和列模式重新配置表格组件&nbsp;<br /><br />2、Ext.grid.Column&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 主要配置项：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id：列id&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header：表头文字&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataIndex：设置列与数据集中数据记录的对应关系，值为数据记录中的字段名称。如果没有设置该项则使用列索引与数据记录中字段的索引进行对应&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width：列宽&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; align：列数据的对齐方式&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hidden：是否隐藏列，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fixed：是否固定列宽，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; menuDisabled：是否禁用列的上下文菜单，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; resizable：是否允许改变列宽，默认为true&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sortable：是否允许排序，默认为true&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; renderer：设置列的自定义单元格渲染函数&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 传入函数的参数有：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value：数据的原始值&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; metadata：元数据对象，用于设置单元格的样式和属性，该对象包含的属性有：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; css：应用到单元格TD元素上的样式名称&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attr：一个HTML属性定义字符串，例如'style="color:blue"'&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; record：当前数据记录对象&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rowIndex：单元格的行索引&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; colIndex：单元格的列索引&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; store：数据集对象&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xtype：列渲染器类型，默认为gridcolumn，其它可选值有booleancolumn、numbercolumn、datecolumn、templatecolumn等&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; editable：是否可编辑，默认为true&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; editor：编辑器&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; groupName：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; emptyGroupText：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; groupable：&nbsp;<br /><br />3、Ext.grid.ColumnModel&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 主要配置项：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; columns：字段数组&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; defaultSortable：是否进行默认排序，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; defaultWidth：默认宽度&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 主要方法：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; findColumnIndex( String col )：根据给定的dataIndex查找列索引&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getColumnById( String id )：取得指定id对应的列&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getColumnCount( Boolean visibleOnly )：取得列总数&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getColumnHeader( Number col )：取得列的表头&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getColumnId( Number index )：取得列id&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getDataIndex( Number col )：取得列对应的数据字段名&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getIndexById( String id )：取得列索引&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getTotalWidth( Boolean includeHidden )&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isCellEditable( Number colIndex, Number rowIndex )&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isFixed()&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isHidden( Number colIndex )&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setColumnHeader( Number col, String header )&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setColumnWidth( Number col, Number width, Boolean suppressEvent )&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setDataIndex( Number col, String dataIndex )&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setEditable( Number col, Boolean editable )&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setEditor( Number col, Object editor )&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setHidden( Number colIndex, Boolean hidden )&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setRenderer( Number col, Function fn )&nbsp;<br />4、Ext.grid.AbstractSelectionModel&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 主要方法：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lock()：锁定选择区域&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unlock()：解锁选择区域&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isLocked()：当前选择区域是否被锁定&nbsp;<br />5、Ext.grid.CellSelectionModel&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 主要方法：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clearSelections( Boolean preventNotify )：清除选择区域&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getSelectedCell()：取得当前选择的单元格，返回一数组，其格式：[rowIndex, colIndex]&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hasSelection()：当前是否有选择区域&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  select( Number rowIndex, Number colIndex, [Boolean preventViewNotify],  [Boolean preventFocus], [Ext.data.Record r] )：选择指定单元格&nbsp;<br />6、Ext.grid.RowSelectionModel&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 主要配置项：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; singleSelect：是否单选模式，默认为false，即可以选择多条数据&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 主要方法：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clearSelections( [Boolean fast] )：清除所有选择区域&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; deselectRange( Number startRow, Number endRow )：取消范围内的行选择&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; deselectRow( Number row, [Boolean preventViewNotify] )：取消指定行的选择状态&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; each( Function fn, [Object scope] )：遍历所有选择行，并调用指定函数。当前被选行将传入该函数中&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getCount()：得到选择的总行数&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getSelected()：得到第一个被选记录&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getSelections()：得到所有被选记录的数组&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hasNext()：判断当前被选行之后是否还有记录可以选择&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hasPrevious()：判断当前被选行之前是否还有记录可以选择&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hasSelection()：是否已选择了数据&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isIdSelected( String id )：判断指定id的记录是否被选择&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isSelected( Number/Record index )：判断指定记录或记录索引的数据是否被选择&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selectAll()：选择所有行&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selectFirstRow()：选择第一行&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selectLastRow( [Boolean keepExisting] )：选择最后行&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keepExisting：是否保持已有的选择&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selectNext( [Boolean keepExisting] )：选择当前选择行的下一行&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selectPrevious( [Boolean keepExisting] )：选择当前选择行的上一行&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selectRange( Number startRow, Number endRow, [Boolean keepExisting] )：选择范围内的所有行&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selectRecords( Array records, [Boolean keepExisting] )：选择一组指定记录&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selectRow( Number row, [Boolean keepExisting], [Boolean preventViewNotify] )：选择一行&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; row：行索引&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selectRows( Array rows, [Boolean keepExisting] )：选择多行&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rows：行索引数组&nbsp;<br />7、Ext.grid.CheckboxSelectionModel&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 主要配置项：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; singleSelect：是否单选模式，默认为false，即可以选择多条数据&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; checkOnly：是否只能通过点击checkbox列进行选择，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sortable：是否允许checkbox列排序，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width：checkbox列的宽度，默认为20&nbsp;<br />8、Ext.grid.RowNumberer&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 主要配置项：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header：行号列表头显示的内容&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width：列宽，默认为23<br />9、Ext.grid.GridView&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 主要配置项：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enableRowBody：是否包含行体&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sortAscText：表格标题菜单中升序的文字描述&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sortDescText：表格标题菜单中降序的文字描述&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; columnsText：表格标题菜单中列对应的文字描述&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; autoFill：是否自动扩展列以充满整个表格，默认为false&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; forceFit：是否强制调整表格列宽以适用表格的整体宽度，防止出现水平滚动条，默认为false&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 主要方法：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; focusCell( Number row, Number col )：将焦点移到指定单元格&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; focusRow( Number row )：将焦点移动指定行&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getCell( Number row, Number col )：取得指定单元格对应的td元素&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getHeaderCell( Number index )：取得指定表头对应的td元素&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getRow( Number index )：取得指定行对应的tr元素&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getRowClass( Record record, Number index, Object rowParams, Store store )：得到附加到表格行上的样式名&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; record：当前行的数据记录对象&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index：当前行的索引&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rowParams：渲染时传入到行模板中的配置对象，通过它可以为行体定制样式，该对象只在enableRowBody为true时才生效，可能的属性如下：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; body：渲染到行体中的HTML代码片段&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bodyStyle：应用到行体tr元素style属性的字符串&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cols：应用到行体td元素colspan属性的值，默认为总列数&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; store：表格数据集&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; refresh( [Boolean headersToo] )：刷新表格组件&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scrollToTop()：滚动表格到顶端</p> <h2><span style="font-family: 宋体; font-size: 14pt;"><strong>Ext.TabPanel:</strong></span></h2> 　　activeTab：初始激活的tab，索引或者id值，默认为none&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; autoTabs：是否自动将带有'x-tab'样式类的div转成tabs添加到TabPanel中，默认为false。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当该配置项设为true时，需要设置deferredRender为false，还必须使用applyTo。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; deferredRender：是否延迟渲染，默认为true。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; autoTabSelector：默认为'div.x-tab'。&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; resizeTabs：是否可以改变tab的尺寸，默认为false。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minTabWidth：tab的最小宽度，默认为30。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tabWidth：每个新增加的tab宽度，默认为120。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tabTip：tab的提示信息&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tabPosition：tab位置，可选值有top、bottom，默认为top。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enableTabScroll：是否允许Tab溢出时可以滚动，默认为false。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; closable：tab是否可关闭，默认为false&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scrollDuration：每次的滚动时长，默认为0.35毫秒。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scrollIncrement：每次的滚动步长，默认为100像素。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wheelIncrement：每次鼠标滑轮的滚动步长，默认为20像素。&nbsp;<br />2、主要方法：&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; activate( String/Panel tab )&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getActiveTab()：获取当前活动的tab&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get( String/Number key )：根据组件id或者索引获取组件&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getItem(String id)：根据tab id获取tab&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setActiveTab( String/Number item )&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; remove( Component/String component, [Boolean autoDestroy] )&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; removeAll( [Boolean autoDestroy] )</div><div><strong>在使用TabPanel时需要注意：&nbsp;</strong> <p>&nbsp;</p> <p>&nbsp;&nbsp;<span style="font-size: 15px; font-family: 宋体;">&nbsp;&nbsp;&nbsp;&nbsp;  1、在创建Ext.TabPanel时deferredRender配置项经常会被忽略。该配置项的默认值是true。true表示只有在用户第一次访问  选项卡时，该选项卡的panel才会被渲染。 所以当我们有可能使用脚本操作选项卡时，谨记将该配置项设置为false。&nbsp;</span></p> <p><span style="font-size: 15px; font-family: 宋体;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  2、在FormPanel中使用TabPanel，如果在TabPanel中不定义deferredRender的值为false，那么，当你使用  Load方法为Form加载数据，或使用setValue为没有激活过的Panel的控件赋值时，将会发生错误。原因是，在默认设置下  deferredRender为true，TabPanel并不会渲染所有Panel上的控件，只有在该Panel被激活时才渲染控件，所以当你为这些控  件设置数据时，将会找不到这些控件，会出现错误。因而，在FormPanel中使用TabPanel，一定要在TabPanel中设置  deferredRender的值为false，强制TabPanel在Layout渲染时同时渲染所有Panel上的控件。</span></p></div><br /><br /><br />本文转自：<div>http://www.cnblogs.com/knowledgesea/p/3284404.html</div><img src ="http://www.blogjava.net/xiaohuzi2008/aggbug/403359.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuzi2008/" target="_blank">小胡子</a> 2013-08-27 12:42 <a href="http://www.blogjava.net/xiaohuzi2008/archive/2013/08/27/403359.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一键发布ASP.NET Web安装程序,搞WebForm的童鞋看过来...</title><link>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/27/403358.html</link><dc:creator>小胡子</dc:creator><author>小胡子</author><pubDate>Tue, 27 Aug 2013 04:37:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/27/403358.html</guid><wfw:comment>http://www.blogjava.net/xiaohuzi2008/comments/403358.html</wfw:comment><comments>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/27/403358.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuzi2008/comments/commentRss/403358.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuzi2008/services/trackbacks/403358.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 前言:最近公司有个Web要发布,但是以前都是由实施到甲方去发布,配置,这几天有点闲,同事让我搞一个一键发布,就和安装软件那样的程序,好让实施直接 配置一下数据库就可以了,然后到网上搜了下,找到一些相关的教程,现在整理了一下,花了一个下午的时间来写笔记,写好了,首先奉献给博客园的小伙伴们,和 大伙儿分享一下,好了,下面进入主题~~~ 1,首先打开VS2010,新建一个项目,如图1-1所示: &nbs...&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaohuzi2008/archive/2013/08/27/403358.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaohuzi2008/aggbug/403358.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuzi2008/" target="_blank">小胡子</a> 2013-08-27 12:37 <a href="http://www.blogjava.net/xiaohuzi2008/archive/2013/08/27/403358.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sping2+struts2+hibernate3项目整合H2数据库 </title><link>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/14/402773.html</link><dc:creator>小胡子</dc:creator><author>小胡子</author><pubDate>Wed, 14 Aug 2013 01:33:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/14/402773.html</guid><wfw:comment>http://www.blogjava.net/xiaohuzi2008/comments/402773.html</wfw:comment><comments>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/14/402773.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuzi2008/comments/commentRss/402773.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuzi2008/services/trackbacks/402773.html</trackback:ping><description><![CDATA[<div><p>大家可以参考下这个网站http://eoffice.im.fju.edu.tw/phpbb/viewtopic.php?p=28685<br /> </p> <p><br /> </p> 1.先启动项目上的h2/bin下的h2.bat或h2w.bat文件，把h2数据库启动起来<br /> <br /> 2.SSH2框架和h2数据库整合方法<br /> 2.1先在数据库下创建 schema目录(相当于一个数据库实例)<br /> <p>&nbsp; create schema fdrkftcode</p> <p>目的是解决这种异常<span style="color:red"><span style="font-weight:bold">org.h2.jdbc.JdbcSQLException: Schema "fdrkftcode" not found; ...</span></span><br /> </p> 2.2在schema目录下创建表，如创建系统用户表admin<br /> &nbsp; create table fdrkftcode.admin(<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id int primary key,<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; adminname varchar(50),<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; username varchar(50),<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; userpwd varchar(50),<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; adminrights varchar(50),<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; createdate datetime,<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; usedtimes int,<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lastlogin datetime,<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; curstatus int,<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; remark varchar(200)<br /> &nbsp; )<br /> &nbsp; <br /> 3.为了使用hibernate操作h2，需要作如下设置，在sql编辑窗口输入下面这些脚本<br /> 对于实体pojo对象的映射，我是用的annotation，关键是id主键的映射，如下：<br /> @Column(name = "ID", nullable = false)<br /> <br /> @Id<br /> <br /> @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ABC_ID_SEQ")<br /> <br /> @SequenceGenerator(name = "ABC_ID_SEQ", sequenceName = "ABC_ID_SEQ")<br /> <br /> protected Long id;<br /> <br /> &nbsp;注意这里的GeneratedValue和SequenceGenerator的使用，这属于JPA规范，全部来自javax.persisten<br /> <br /> 4.配置applicationContext.xml文件,主要有三个地方要注意：<br /> 4.1修改连接数据库的JDBC驱动 driverClass的值为org.h2.Driver<br /> 4.2修改连接数据库所用的URL字符串 jdbcUrl的值为jdbc:h2:tcp://localhost/~/FDRKFTCODE;MODE=MySQL;AUTO_SERVER=TRUE<br /> 4.3修改Hibernate的数据库方言hibernate.dialect为org.hibernate.dialect.H2Dialect<br /> <br /> 5.h2数据库一些常用操作<br /> 5.1帮助命令help<br /> 5.2表中某字段重命名&nbsp; ALTER TABLE&nbsp; fdrkftcode.admin ALTER COLUMN usepwd rename to userpwd<br /> 5.3表中新增字段&nbsp; ALTER TABLE fdrkftcode.admin ADD IF NOT EXISTS abc varchar(50) <br /> 5.4表中删除字段&nbsp; ALTER TABLE fdrkftcode.admin DROP COLUMN IF EXISTS abc<br /> 5.5查找表中记录 SELECT * from fdrkftcode.admin<br /> 5.6往表中插入记录 INSERT INTO fdrkftcode.admin VALUES  (1,'管理员','admin','admin','10000000000000000000','2013-05-1  00:12:34',3,'2013-05-1 15:32:57',1,'超过级管理员')<br /> 5.7修改表中某记录 UPDATE fdrkftcode.admin SET fdrkftcode.admin.adminname='超级管理员' where fdrkftcode.admin.id=1<br /> <p>5.8删除表中某记录 DELETE FROM fdrkftcode.admin WHERE fdrkftcode.admin.id=1</p> <p><br /> </p> <p>6.下面是我项目的applicationContext.xml配置方法，大家可以参考下</p> &lt;?xml version="1.0" encoding="UTF-8"?&gt;<br /> &lt;beans<br /> &nbsp;&nbsp; &nbsp;xmlns="http://www.springframework.org/schema/beans"<br /> &nbsp;&nbsp; &nbsp;xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br /> &nbsp;&nbsp; &nbsp;xmlns:p="http://www.springframework.org/schema/p"<br /> &nbsp;&nbsp; &nbsp;xsi:schemaLocation="http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"&gt;<br /> &nbsp;&nbsp; &nbsp;<br /> &nbsp;&nbsp; &nbsp;&lt;!-- 定义使用C3P0连接池的数据源 --&gt;<br /> &nbsp;&nbsp; &nbsp;&lt;bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;!-- 指定连接数据库的JDBC驱动 --&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;property name="driverClass"&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&lt;value&gt;org.h2.Driver&lt;/value&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &lt;/property&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;!-- 连接数据库所用的URL --&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;property name="jdbcUrl"&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;value&gt;jdbc:h2:tcp://localhost/~/FDRKFTCODE;MODE=MySQL;AUTO_SERVER=TRUE&lt;/value&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/property&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;!-- 连接数据库的用户名 --&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;property name="user"&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;value&gt;sa&lt;/value&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/property&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;!-- 连接数据库的密码 --&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;property name="password"&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;value&gt;&lt;/value&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/property&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;!-- 设置数据库连接池的最大连接数 --&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;property name="maxPoolSize"&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;value&gt;50&lt;/value&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/property&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;!-- 设置数据库连接池的最小连接数 --&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;property name="minPoolSize"&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;value&gt;5&lt;/value&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/property&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;!-- 设置数据库连接池的初始化连接数 --&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;property name="initialPoolSize"&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;value&gt;5&lt;/value&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/property&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;!-- 设置数据库连接池的连接的最大空闲时间,单位为秒 --&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;property name="maxIdleTime"&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;value&gt;20&lt;/value&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/property&gt;<br /> &nbsp;&nbsp; &nbsp;&lt;/bean&gt;<br /> &nbsp;&nbsp; &nbsp;<br /> &nbsp;&nbsp;&nbsp; &lt;!-- 定义Hibernate的SessionFactory --&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 依赖注入上面定义的数据源dataSource --&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="dataSource" ref="dataSource"/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 注册Hibernate的ORM映射文件 --&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="mappingResources"&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;list&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;com/sungoal/ORM/Admin.hbm.xml&lt;/value&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/list&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 设置Hibernate的相关属性 --&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="hibernateProperties"&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;props&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 设置Hibernate的数据库方言 --&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="hibernate.dialect"&gt;org.hibernate.dialect.H2Dialect&lt;/prop&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 设置Hibernate是否在控制台输出SQL语句，开发调试阶段通常设为true --&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="show_sql"&gt;true&lt;/prop&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;!-- 设置Hibernate一个提交批次中的最大SQL语句数 --&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="hibernate.jdbc.batch_size"&gt;50&lt;/prop&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/props&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;/bean&gt;<br /> &nbsp;&nbsp; &nbsp;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &lt;!--定义Hibernate的事务管理器HibernateTransactionManager --&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 依赖注入上面定义的sessionFactory --&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="sessionFactory" ref="sessionFactory"/&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;/bean&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;!-- 装配通用数据库访问类BaseDAOImpl --&gt;&nbsp;&nbsp; &nbsp;<br /> &nbsp;&nbsp; &nbsp;&lt;bean id="dao" class="com.sungoal.DAO.BaseDAOImpl"&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 依赖注入上面定义的sessionFactory --&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="sessionFactory" ref="sessionFactory"/&gt;<br /> &nbsp;&nbsp; &nbsp;&lt;/bean&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;!-- 部署系统用户管理业务控制器AdminAction --&gt; <br /> &nbsp;&nbsp; &nbsp;&lt;bean id="adminAction" class="com.sungoal.struts.action.AdminAction" scope="prototype"&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;property name="dao" ref="dao"/&gt;<br /> &nbsp;&nbsp; &nbsp;&lt;/bean&gt;<br /> &lt;/beans&gt;</div><img src ="http://www.blogjava.net/xiaohuzi2008/aggbug/402773.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuzi2008/" target="_blank">小胡子</a> 2013-08-14 09:33 <a href="http://www.blogjava.net/xiaohuzi2008/archive/2013/08/14/402773.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate配置文件中配置各种数据库的driver、URL </title><link>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/14/402770.html</link><dc:creator>小胡子</dc:creator><author>小胡子</author><pubDate>Wed, 14 Aug 2013 01:29:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/14/402770.html</guid><wfw:comment>http://www.blogjava.net/xiaohuzi2008/comments/402770.html</wfw:comment><comments>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/14/402770.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuzi2008/comments/commentRss/402770.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuzi2008/services/trackbacks/402770.html</trackback:ping><description><![CDATA[<div><p>hibernate.properties</p> <p>######################<br />### Query Language ###<br />######################</p> <p>## define query language constants / function names</p> <p>hibernate.query.substitutions yes 'Y', no 'N'</p> <p><br />## select the classic query parser</p> <p>#hibernate.query.factory_class org.hibernate.hql.classic.ClassicQueryTranslatorFactory</p> <p><br />#################<br />### Platforms ###<br />#################</p> <p>## JNDI Datasource</p> <p>#hibernate.connection.datasource jdbc/test<br />#hibernate.connection.username db2<br />#hibernate.connection.password db2</p> <p><br />## HypersonicSQL</p> <p>hibernate.dialect org.hibernate.dialect.HSQLDialect<br />hibernate.connection.driver_class org.hsqldb.jdbcDriver<br />hibernate.connection.username sa<br />hibernate.connection.password<br />hibernate.connection.url jdbc:hsqldb:./build/db/hsqldb/hibernate<br />#hibernate.connection.url jdbc:hsqldb:hsql://localhost<br />#hibernate.connection.url jdbc:hsqldb:test</p> <p>## H2 (www.h2database.com)<br />#hibernate.dialect org.hibernate.dialect.H2Dialect<br />#hibernate.connection.driver_class org.h2.Driver<br />#hibernate.connection.username sa<br />#hibernate.connection.password<br />#hibernate.connection.url jdbc:h2:mem:./build/db/h2/hibernate<br />#hibernate.connection.url jdbc:h2:testdb/h2test<br />#hibernate.connection.url jdbc:h2:mem:imdb1<br />#hibernate.connection.url jdbc:h2:tcp://dbserv:8084/sample; <br />#hibernate.connection.url jdbc:h2:ssl://secureserv:8085/sample; <br />#hibernate.connection.url jdbc:h2:ssl://secureserv/testdb;cipher=AES</p> <p>## MySQL</p> <p>#hibernate.dialect org.hibernate.dialect.MySQLDialect<br />#hibernate.dialect org.hibernate.dialect.MySQLInnoDBDialect<br />#hibernate.dialect org.hibernate.dialect.MySQLMyISAMDialect<br />#hibernate.connection.driver_class com.mysql.jdbc.Driver<br />#hibernate.connection.url jdbc:mysql:///test<br />#hibernate.connection.username gavin<br />#hibernate.connection.password</p> <p><br />## Oracle</p> <p>#hibernate.dialect org.hibernate.dialect.OracleDialect<br />#hibernate.dialect org.hibernate.dialect.Oracle9Dialect<br />#hibernate.connection.driver_class oracle.jdbc.driver.OracleDriver<br />#hibernate.connection.username ora<br />#hibernate.connection.password ora<br />#hibernate.connection.url jdbc:oracle:thin:@localhost:1521:orcl<br />#hibernate.connection.url jdbc:oracle:thin:@localhost:1522:XE</p> <p><br />## PostgreSQL</p> <p>#hibernate.dialect org.hibernate.dialect.PostgreSQLDialect<br />#hibernate.connection.driver_class org.postgresql.Driver<br />#hibernate.connection.url jdbc:postgresql:template1<br />#hibernate.connection.username pg<br />#hibernate.connection.password</p> <p><br />## DB2</p> <p>#hibernate.dialect org.hibernate.dialect.DB2Dialect<br />#hibernate.connection.driver_class com.ibm.db2.jcc.DB2Driver<br />#hibernate.connection.driver_class COM.ibm.db2.jdbc.app.DB2Driver<br />#hibernate.connection.url jdbc:db2://localhost:50000/somename<br />#hibernate.connection.url jdbc:db2:somename<br />#hibernate.connection.username db2<br />#hibernate.connection.password db2</p> <p>## TimesTen</p> <p>#hibernate.dialect org.hibernate.dialect.TimesTenDialect<br />#hibernate.connection.driver_class com.timesten.jdbc.TimesTenDriver<br />#hibernate.connection.url jdbc:timesten:direct:test<br />#hibernate.connection.username<br />#hibernate.connection.password</p> <p>## DB2/400</p> <p>#hibernate.dialect org.hibernate.dialect.DB2400Dialect<br />#hibernate.connection.username user<br />#hibernate.connection.password password</p> <p>## Native driver<br />#hibernate.connection.driver_class COM.ibm.db2.jdbc.app.DB2Driver<br />#hibernate.connection.url jdbc:db2://systemname</p> <p>## Toolbox driver<br />#hibernate.connection.driver_class com.ibm.as400.access.AS400JDBCDriver<br />#hibernate.connection.url jdbc:as400://systemname</p> <p><br />## Derby (not supported!)</p> <p>#hibernate.dialect org.hibernate.dialect.DerbyDialect<br />#hibernate.connection.driver_class org.apache.derby.jdbc.EmbeddedDriver<br />#hibernate.connection.username<br />#hibernate.connection.password<br />#hibernate.connection.url jdbc:derby:build/db/derby/hibernate;create=true</p> <p><br />## Sybase</p> <p>#hibernate.dialect org.hibernate.dialect.SybaseDialect<br />#hibernate.connection.driver_class com.sybase.jdbc2.jdbc.SybDriver<br />#hibernate.connection.username sa<br />#hibernate.connection.password sasasa<br />#hibernate.connection.url jdbc:sybase:Tds:co3061835-a:5000/tempdb</p> <p><br />## Mckoi SQL</p> <p>#hibernate.dialect org.hibernate.dialect.MckoiDialect<br />#hibernate.connection.driver_class com.mckoi.JDBCDriver<br />#hibernate.connection.url jdbc:mckoi:///<br />#hibernate.connection.url jdbc:mckoi:local://C:/mckoi1.0.3/db.conf<br />#hibernate.connection.username admin<br />#hibernate.connection.password nimda</p> <p><br />## SAP DB</p> <p>#hibernate.dialect org.hibernate.dialect.SAPDBDialect<br />#hibernate.connection.driver_class com.sap.dbtech.jdbc.DriverSapDB<br />#hibernate.connection.url jdbc:sapdb://localhost/TST<br />#hibernate.connection.username TEST<br />#hibernate.connection.password TEST<br />#hibernate.query.substitutions yes 'Y', no 'N'</p> <p><br />## MS SQL Server</p> <p>#hibernate.dialect org.hibernate.dialect.SQLServerDialect<br />#hibernate.connection.username sa<br />#hibernate.connection.password sa</p> <p>## JSQL Driver<br />#hibernate.connection.driver_class com.jnetdirect.jsql.JSQLDriver<br />#hibernate.connection.url jdbc:JSQLConnect://1E1/test</p> <p>## JTURBO Driver<br />#hibernate.connection.driver_class com.newatlanta.jturbo.driver.Driver<br />#hibernate.connection.url jdbc:JTurbo://1E1:1433/test</p> <p>## WebLogic Driver<br />#hibernate.connection.driver_class weblogic.jdbc.mssqlserver4.Driver<br />#hibernate.connection.url jdbc:weblogic:mssqlserver4:1E1:1433</p> <p>## Microsoft Driver (not recommended!)<br />#hibernate.connection.driver_class com.microsoft.jdbc.sqlserver.SQLServerDriver<br />#hibernate.connection.url jdbc:microsoft:sqlserver://1E1;DatabaseName=test;SelectMethod=cursor</p> <p>## The New Microsoft Driver <br />#hibernate.connection.driver_class com.microsoft.sqlserver.jdbc.SQLServerDriver<br />#hibernate.connection.url jdbc:sqlserver://localhost</p> <p>## jTDS (since version 0.9)<br />#hibernate.connection.driver_class net.sourceforge.jtds.jdbc.Driver<br />#hibernate.connection.url jdbc:jtds:sqlserver://1E1/test</p> <p>## Interbase</p> <p>#hibernate.dialect org.hibernate.dialect.InterbaseDialect<br />#hibernate.connection.username sysdba<br />#hibernate.connection.password masterkey</p> <p>## DO NOT specify hibernate.connection.sqlDialect</p> <p>## InterClient</p> <p>#hibernate.connection.driver_class interbase.interclient.Driver<br />#hibernate.connection.url jdbc:interbase://localhost:3060/C:/firebird/test.gdb</p> <p>## Pure Java</p> <p>#hibernate.connection.driver_class org.firebirdsql.jdbc.FBDriver<br />#hibernate.connection.url jdbc:firebirdsql:localhost/3050:/firebird/test.gdb</p> <p><br />## Pointbase</p> <p>#hibernate.dialect org.hibernate.dialect.PointbaseDialect<br />#hibernate.connection.driver_class com.pointbase.jdbc.jdbcUniversalDriver<br />#hibernate.connection.url jdbc:pointbase:embedded:sample<br />#hibernate.connection.username PBPUBLIC<br />#hibernate.connection.password PBPUBLIC</p> <p><br />## Ingres</p> <p>## older versions (before Ingress 2006)</p> <p>#hibernate.dialect org.hibernate.dialect.IngresDialect<br />#hibernate.connection.driver_class ca.edbc.jdbc.EdbcDriver<br />#hibernate.connection.url jdbc:edbc://localhost:II7/database<br />#hibernate.connection.username user<br />#hibernate.connection.password password</p> <p>## Ingres 2006 or later</p> <p>#hibernate.dialect org.hibernate.dialect.IngresDialect<br />#hibernate.connection.driver_class com.ingres.jdbc.IngresDriver<br />#hibernate.connection.url jdbc:ingres://localhost:II7/database;CURSOR=READONLY;auto=multi<br />#hibernate.connection.username user<br />#hibernate.connection.password password</p> <p>## Mimer SQL</p> <p>#hibernate.dialect org.hibernate.dialect.MimerSQLDialect<br />#hibernate.connection.driver_class com.mimer.jdbc.Driver<br />#hibernate.connection.url jdbc:mimer:multi1<br />#hibernate.connection.username hibernate<br />#hibernate.connection.password hibernate</p> <p><br />## InterSystems Cache</p> <p>#hibernate.dialect org.hibernate.dialect.Cache71Dialect<br />#hibernate.connection.driver_class com.intersys.jdbc.CacheDriver<br />#hibernate.connection.username _SYSTEM<br />#hibernate.connection.password SYS<br />#hibernate.connection.url jdbc:Cache://127.0.0.1:1972/HIBERNATE</p> <p><br />#################################<br />### Hibernate Connection Pool ###<br />#################################</p> <p>hibernate.connection.pool_size 1</p> <p><br />###########################<br />### C3P0 Connection Pool###<br />###########################</p> <p>#hibernate.c3p0.max_size 2<br />#hibernate.c3p0.min_size 2<br />#hibernate.c3p0.timeout 5000<br />#hibernate.c3p0.max_statements 100<br />#hibernate.c3p0.idle_test_period 3000<br />#hibernate.c3p0.acquire_increment 2<br />#hibernate.c3p0.validate false</p> <p><br />##############################<br />### Proxool Connection Pool###<br />##############################</p> <p>## Properties for external configuration of Proxool</p> <p>hibernate.proxool.pool_alias pool1</p> <p>## Only need one of the following</p> <p>#hibernate.proxool.existing_pool true<br />#hibernate.proxool.xml proxool.xml<br />#hibernate.proxool.properties proxool.properties</p> <p><br />#################################<br />### Plugin ConnectionProvider ###<br />#################################</p> <p>## use a custom ConnectionProvider (if not set, Hibernate will choose a built-in ConnectionProvider using hueristics)</p> <p>#hibernate.connection.provider_class org.hibernate.connection.DriverManagerConnectionProvider<br />#hibernate.connection.provider_class org.hibernate.connection.DatasourceConnectionProvider<br />#hibernate.connection.provider_class org.hibernate.connection.C3P0ConnectionProvider<br />#hibernate.connection.provider_class org.hibernate.connection.ProxoolConnectionProvider</p> <p><br />#######################<br />### Transaction API ###<br />#######################</p> <p>## Enable automatic flush during the JTA beforeCompletion() callback<br />## (This setting is relevant with or without the Transaction API)</p> <p>#hibernate.transaction.flush_before_completion</p> <p><br />## Enable automatic session close at the end of transaction<br />## (This setting is relevant with or without the Transaction API)</p> <p>#hibernate.transaction.auto_close_session</p> <p><br />## the Transaction API abstracts application code from the underlying JTA or JDBC transactions</p> <p>#hibernate.transaction.factory_class org.hibernate.transaction.JTATransactionFactory<br />#hibernate.transaction.factory_class org.hibernate.transaction.JDBCTransactionFactory</p> <p><br />## to use JTATransactionFactory, Hibernate must be able to locate the UserTransaction in JNDI<br />## default is java:comp/UserTransaction<br />## you do NOT need this setting if you specify hibernate.transaction.manager_lookup_class</p> <p>#jta.UserTransaction jta/usertransaction<br />#jta.UserTransaction javax.transaction.UserTransaction<br />#jta.UserTransaction UserTransaction</p> <p><br />## to use the second-level cache with JTA, Hibernate must be able to obtain the JTA TransactionManager</p> <p>#hibernate.transaction.manager_lookup_class org.hibernate.transaction.JBossTransactionManagerLookup<br />#hibernate.transaction.manager_lookup_class org.hibernate.transaction.WeblogicTransactionManagerLookup<br />#hibernate.transaction.manager_lookup_class org.hibernate.transaction.WebSphereTransactionManagerLookup<br />#hibernate.transaction.manager_lookup_class org.hibernate.transaction.OrionTransactionManagerLookup<br />#hibernate.transaction.manager_lookup_class org.hibernate.transaction.ResinTransactionManagerLookup</p> <p><br />##############################<br />### Miscellaneous Settings ###<br />##############################</p> <p>## print all generated SQL to the console</p> <p>#hibernate.show_sql true</p> <p><br />## format SQL in log and console</p> <p>hibernate.format_sql true</p> <p><br />## add comments to the generated SQL</p> <p>#hibernate.use_sql_comments true</p> <p><br />## generate statistics</p> <p>#hibernate.generate_statistics true</p> <p><br />## auto schema export</p> <p>#hibernate.hbm2ddl.auto create-drop<br />#hibernate.hbm2ddl.auto create<br />#hibernate.hbm2ddl.auto update<br />#hibernate.hbm2ddl.auto validate</p> <p><br />## specify a default schema and catalog for unqualified tablenames</p> <p>#hibernate.default_schema test<br />#hibernate.default_catalog test</p> <p><br />## enable ordering of SQL UPDATEs by primary key</p> <p>#hibernate.order_updates true</p> <p><br />## set the maximum depth of the outer join fetch tree</p> <p>hibernate.max_fetch_depth 1</p> <p><br />## set the default batch size for batch fetching</p> <p>#hibernate.default_batch_fetch_size 8</p> <p><br />## rollback generated identifier values of deleted entities to default values</p> <p>#hibernate.use_identifer_rollback true</p> <p><br />## enable bytecode reflection optimizer (disabled by default)</p> <p>#hibernate.bytecode.use_reflection_optimizer true</p> <p><br />#####################<br />### JDBC Settings ###<br />#####################</p> <p>## specify a JDBC isolation level</p> <p>#hibernate.connection.isolation 4</p> <p><br />## enable JDBC autocommit (not recommended!)</p> <p>#hibernate.connection.autocommit true</p> <p><br />## set the JDBC fetch size</p> <p>#hibernate.jdbc.fetch_size 25</p> <p><br />## set the maximum JDBC 2 batch size (a nonzero value enables batching)</p> <p>#hibernate.jdbc.batch_size 5<br />#hibernate.jdbc.batch_size 0</p> <p><br />## enable batch updates even for versioned data</p> <p>hibernate.jdbc.batch_versioned_data true</p> <p><br />## enable use of JDBC 2 scrollable ResultSets (specifying a Dialect will cause Hibernate to use a sensible default)</p> <p>#hibernate.jdbc.use_scrollable_resultset true</p> <p><br />## use streams when writing binary types to / from JDBC</p> <p>hibernate.jdbc.use_streams_for_binary true</p> <p><br />## use JDBC 3 PreparedStatement.getGeneratedKeys() to get the identifier of an inserted row</p> <p>#hibernate.jdbc.use_get_generated_keys false</p> <p><br />## choose a custom JDBC batcher</p> <p># hibernate.jdbc.factory_class</p> <p><br />## enable JDBC result set column alias caching <br />## (minor performance enhancement for broken JDBC drivers)</p> <p># hibernate.jdbc.wrap_result_sets</p> <p><br />## choose a custom SQL exception converter</p> <p>#hibernate.jdbc.sql_exception_converter</p> <p><br />##########################<br />### Second-level Cache ###<br />##########################</p> <p>## optimize chache for minimal "puts" instead of minimal "gets" (good for clustered cache)</p> <p>#hibernate.cache.use_minimal_puts true</p> <p><br />## set a prefix for cache region names</p> <p>hibernate.cache.region_prefix hibernate.test</p> <p><br />## disable the second-level cache</p> <p>#hibernate.cache.use_second_level_cache false</p> <p><br />## enable the query cache</p> <p>#hibernate.cache.use_query_cache true</p> <p><br />## store the second-level cache entries in a more human-friendly format</p> <p>#hibernate.cache.use_structured_entries true</p> <p><br />## choose a cache implementation</p> <p>#hibernate.cache.provider_class org.hibernate.cache.EhCacheProvider<br />#hibernate.cache.provider_class org.hibernate.cache.EmptyCacheProvider<br />hibernate.cache.provider_class org.hibernate.cache.HashtableCacheProvider<br />#hibernate.cache.provider_class org.hibernate.cache.TreeCacheProvider<br />#hibernate.cache.provider_class org.hibernate.cache.OSCacheProvider<br />#hibernate.cache.provider_class org.hibernate.cache.SwarmCacheProvider</p> <p><br />## choose a custom query cache implementation</p> <p>#hibernate.cache.query_cache_factory</p> <p><br />############<br />### JNDI ###<br />############</p> <p>## specify a JNDI name for the SessionFactory</p> <p>#hibernate.session_factory_name hibernate/session_factory</p> <p><br />## Hibernate uses JNDI to bind a name to a SessionFactory and to look up the JTA UserTransaction;<br />## if hibernate.jndi.* are not specified, Hibernate will use the default InitialContext() which<br />## is the best approach in an application server</p> <p>#file system<br />#hibernate.jndi.class com.sun.jndi.fscontext.RefFSContextFactory<br />#hibernate.jndi.url file:/</p> <p>#WebSphere<br />#hibernate.jndi.class com.ibm.websphere.naming.WsnInitialContextFactory<br />#hibernate.jndi.url iiop://localhost:900/</p></div><img src ="http://www.blogjava.net/xiaohuzi2008/aggbug/402770.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuzi2008/" target="_blank">小胡子</a> 2013-08-14 09:29 <a href="http://www.blogjava.net/xiaohuzi2008/archive/2013/08/14/402770.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring Security3.1 最新配置实例 </title><link>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/13/402756.html</link><dc:creator>小胡子</dc:creator><author>小胡子</author><pubDate>Tue, 13 Aug 2013 09:49:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/13/402756.html</guid><wfw:comment>http://www.blogjava.net/xiaohuzi2008/comments/402756.html</wfw:comment><comments>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/13/402756.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuzi2008/comments/commentRss/402756.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuzi2008/services/trackbacks/402756.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这几天学习了一下Spring  Security3.1，从官网下载了Spring  Security3.1版本进行练习，经过多次尝试才摸清了其中的一些原理。本人不才，希望能帮助大家。还有，这次我第二次写博客啊，文体不是很行。希望 能让观看者不产生疲惫的感觉，我已经心满意足了。 一、数据库结构 &nbsp;&nbsp;&nbsp;&nbsp; 先来看一下数据库结构，采用的是基于角色-资源-用户的权限...&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaohuzi2008/archive/2013/08/13/402756.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaohuzi2008/aggbug/402756.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuzi2008/" target="_blank">小胡子</a> 2013-08-13 17:49 <a href="http://www.blogjava.net/xiaohuzi2008/archive/2013/08/13/402756.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>提高EXT js的加载速度的方法</title><link>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/13/402751.html</link><dc:creator>小胡子</dc:creator><author>小胡子</author><pubDate>Tue, 13 Aug 2013 08:48:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/13/402751.html</guid><wfw:comment>http://www.blogjava.net/xiaohuzi2008/comments/402751.html</wfw:comment><comments>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/13/402751.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuzi2008/comments/commentRss/402751.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuzi2008/services/trackbacks/402751.html</trackback:ping><description><![CDATA[<div></div><div></div><div>我们知道，EXT的全部js是比较大的，一个ext-all-debug.js就达2m多，它的压缩版（去掉js中的换行及空格），也达600多k,这对于在网速不太快的时，下载js就得漫长的等待。<br /> JOffice中的日历任务控件，js多达四五个，每个js大小都达70多k,尽管我们采用了后加载的方式，则当用户点击我的任务功能时，才下载该js，但这样仍然很慢，因为下载的js很慢<br /> ，鉴于此，在互联网上使用类似Joffice类似的程序，速度会使很多开发商不敢选用ext作为开发技术。据本人当时参与移动一个内部采购平台的开发，就是因为其运行程序慢，遭到移动的终端用户的弃骂，<br /> 所以，要想用EXT来开发应用，需要解决其运行慢的特点。<br /><br /><br /> 我们可以从以下几种方法来提高应用程序的运行速度：<br /><br /><strong><span style="font-size: small;">一.前期尽量少加载js.</span> </strong> <br /><br /> &nbsp;&nbsp; 这点在Joffice中有比较好的运用，采用的是由ScriptMgr.load方法来完成，加载完成后，其会在body中插入一个div,只要当前页面不被刷新，下次再访问该功能时，不需要再加载js</div><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;function&nbsp;$ImportJs(viewName,callback)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;b&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;document.getElementById(viewName</span><span style="color: #000000; ">+</span><span style="color: #000000; ">'</span><span style="color: #000000; ">-hiden</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(b&nbsp;</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;view&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;eval(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">new&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;viewName&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">()</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;callback.call(</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">,&nbsp;view);<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;jsArr&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;eval(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">App.importJs.</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;viewName);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(jsArr</span><span style="color: #000000; ">==</span><span style="color: #000000; ">undefined){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;view&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;eval(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">new&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;viewName&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">()</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;callback.call(</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">,&nbsp;view);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ScriptMgr.load({<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scripts&nbsp;:&nbsp;jsArr,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;callback&nbsp;:&nbsp;function()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.DomHelper.append(document.body,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&lt;div&nbsp;id='</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;viewName<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">-hiden'&nbsp;style='display:none'&gt;&lt;/div&gt;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;view&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;eval(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">new&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;viewName&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">()</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;callback.call(</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">,&nbsp;view);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</span></div><br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">package</span><span style="color: #000000; ">&nbsp;com.htsoft.core.web.filter;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;java.io.IOException;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;java.util.HashMap;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;java.util.Iterator;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;java.util.Map;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;javax.servlet.Filter;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;javax.servlet.FilterChain;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;javax.servlet.FilterConfig;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;javax.servlet.ServletException;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;javax.servlet.ServletRequest;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;javax.servlet.ServletResponse;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;javax.servlet.http.HttpServletRequest;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;javax.servlet.http.HttpServletResponse;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;GzipJsFilter&nbsp;</span><span style="color: #0000FF; ">implements</span><span style="color: #000000; ">&nbsp;Filter&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map&nbsp;headers&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;HashMap();&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;destroy()&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;doFilter(ServletRequest&nbsp;req,&nbsp;ServletResponse&nbsp;res,&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FilterChain&nbsp;chain)&nbsp;</span><span style="color: #0000FF; ">throws</span><span style="color: #000000; ">&nbsp;IOException,&nbsp;ServletException&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(req&nbsp;</span><span style="color: #0000FF; ">instanceof</span><span style="color: #000000; ">&nbsp;HttpServletRequest)&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doFilter((HttpServletRequest)req,&nbsp;(HttpServletResponse)res,&nbsp;chain);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chain.doFilter(req,&nbsp;res);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;doFilter(HttpServletRequest&nbsp;request,&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpServletResponse&nbsp;response,&nbsp;FilterChain&nbsp;chain)&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">throws</span><span style="color: #000000; ">&nbsp;IOException,&nbsp;ServletException&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.setCharacterEncoding(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">UTF-8</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(Iterator&nbsp;it&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;headers.entrySet().iterator();it.hasNext();)&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map.Entry&nbsp;entry&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(Map.Entry)it.next();&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.addHeader((String)entry.getKey(),(String)entry.getValue());&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chain.doFilter(request,&nbsp;response);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;init(FilterConfig&nbsp;config)&nbsp;</span><span style="color: #0000FF; ">throws</span><span style="color: #000000; ">&nbsp;ServletException&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;headersStr&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;config.getInitParameter(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">headers</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;headers&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;headersStr.split(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;&nbsp;i&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;headers.length;&nbsp;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;temp&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;headers[i].split(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.headers.put(temp[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">].trim(),&nbsp;temp[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">].trim());&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp; <br /></span></div><br /><div>3.在WEB.xml 文件中，添加以下配置：</div><br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">filter</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">filter</span><span style="color: #000000; ">-</span><span style="color: #000000; ">name</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">GzipJsFilter</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">filter</span><span style="color: #000000; ">-</span><span style="color: #000000; ">name</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">filter</span><span style="color: #000000; ">-</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">com.htsoft.core.web.filter.GzipJsFilter</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">filter</span><span style="color: #000000; ">-</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<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; ">&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&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; ">headers</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; ">&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&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: #000000; ">Content</span><span style="color: #000000; ">-</span><span style="color: #000000; ">Encoding</span><span style="color: #000000; ">=</span><span style="color: #000000; ">gzip</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; ">&nbsp;&nbsp;&nbsp;&nbsp;<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; ">&nbsp;&nbsp;<br /></span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">filter</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br /></span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">filter</span><span style="color: #000000; ">-</span><span style="color: #000000; ">mapping</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br /></span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">filter</span><span style="color: #000000; ">-</span><span style="color: #000000; ">name</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">GzipJsFilter</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">filter</span><span style="color: #000000; ">-</span><span style="color: #000000; ">name</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br /></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; ">.gzjs</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; ">&nbsp;&nbsp;<br />lt;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">filter</span><span style="color: #000000; ">-</span><span style="color: #000000; ">mapping</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br /></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;">&nbsp; <br /></span></div><div>4.在index.jsp中引入该压缩文件：<br /> &nbsp; &lt;script type="text/javascript" src="&lt;%=request.getContextPath()%&gt;/ext3/ext-all.gzjs"&gt;&lt;/script&gt;</div><div>&nbsp; <img title="点击查看原始大小图片" src="http://dl.iteye.com/upload/attachment/166962/530c3350-fce4-37d9-a075-6d85e768ada8.jpg" alt="" height="147" width="700" /> <p>可以看到浏览器解压后，其代码是一样的：</p> <p><img title="点击查看原始大小图片" src="http://dl.iteye.com/upload/attachment/166964/ad53b063-882f-3fd7-adde-11a9d1c56cda.jpg" alt="" height="160" width="700" /></p> <p>&nbsp;</p> <p>&nbsp;</p> <p>大家可以看到以上，这块是在外网使用的，其速度是比较快的。当然，浏览器解压这个文件需要一点时间，不过在本地解压是非常快的，可以不用管。</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>三、通过Js缓存，更加可以提高ＥＸＴ的加载速度，关于缓存，本文不作讨论。</p></div>原文出自：<div>http://man1900.iteye.com/blog/515058</div><img src ="http://www.blogjava.net/xiaohuzi2008/aggbug/402751.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuzi2008/" target="_blank">小胡子</a> 2013-08-13 16:48 <a href="http://www.blogjava.net/xiaohuzi2008/archive/2013/08/13/402751.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>从jar包中读取资源文件</title><link>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/12/402695.html</link><dc:creator>小胡子</dc:creator><author>小胡子</author><pubDate>Mon, 12 Aug 2013 07:19:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/12/402695.html</guid><wfw:comment>http://www.blogjava.net/xiaohuzi2008/comments/402695.html</wfw:comment><comments>http://www.blogjava.net/xiaohuzi2008/archive/2013/08/12/402695.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuzi2008/comments/commentRss/402695.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuzi2008/services/trackbacks/402695.html</trackback:ping><description><![CDATA[<div><span style="font-size: small;">我们常常在代码中读取一些资源文件(比如图片，音乐，文本等等)。在单独运行的时候这些简单的处理当然不会有问题。但是，如果我们把代码打成一个jar包以后，即使将资源文件一并打包，这些东西也找不出来了。看看下面的代码：</span></div><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">//</span><span style="color: #008000; ">源代码1：</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">package</span><span style="color: #000000; ">&nbsp;edu.hxraid;<br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;java.io.</span><span style="color: #000000; ">*</span><span style="color: #000000; ">;<br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;Resource&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;getResource()&nbsp;</span><span style="color: #0000FF; ">throws</span><span style="color: #000000; ">&nbsp;IOException{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;file</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;File(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">bin/resource/res.txt</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader&nbsp;br</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;BufferedReader(</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;FileReader(file));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;s</span><span style="color: #000000; ">=</span><span style="color: #000000; ">""</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">((s</span><span style="color: #000000; ">=</span><span style="color: #000000; ">br.readLine())</span><span style="color: #000000; ">!=</span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(s);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}&nbsp;&nbsp;&nbsp; <br /></span></div><div><span style="font-size: small;">这段代码写在Eclipse建立的java Project中，其目录为：(其中将资源文件res.txt放在了bin目录下，以便打成jar包)<br /> &nbsp;&nbsp; &nbsp;&nbsp; 1、src/<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; src/edu/hxraid/Resource.java<br /> &nbsp;&nbsp; &nbsp;&nbsp; 2、bin/<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; bin/resource/res.txt<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; bin/edu/hxraid/Resource.class</span>  <p><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 很显然运行源代码1是能够找到资源文件res.txt。但当我们把整个工程打成jar包以后(ResourceJar.jar)，这个jar包内的目录为：<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; edu/hxraid/Resource.class<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; resource/res.txt</span> </p> <p>&nbsp;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;">而这时jar包中Resource.class字节 码：ldc &lt;String "bin/resource/res.txt"&gt; [20]  将无法定位到jar包中的res.txt位置上。就算把bin/目录去掉：ldc &lt;String "resource/res.txt"&gt;  [20] 仍然无法定位到jar包中res.txt上。</span> </p></div><br /><div><span style="font-size: small;"><strong><span style="color: #000080;">这主要是因为jar包是一个单独的文件而非文件夹，绝对不可能通过"file:/e:/.../<span style="color: #ff0000;">ResourceJar.jar<span style="color: #000080;">/resource</span> </span> /res.txt"这种形式的文件URL来定位res.txt。所以即使是相对路径，也无法定位到jar文件内的txt文件(读者也许对这段原因解释有些费解，在下面我们会用一段代码运行的结果来进一步阐述)。</span></strong></span></div><div><span style="font-size: small;">那么把资源打入jar包，无论ResourceJar.jar在系统的什么路径下，jar包中的字节码程序都可以找到该包中的资源。这会是幻想吗？</span>  <p><span style="font-size: small;"><br /></span> </p> <p><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当然不是，我们可以用类装载器(ClassLoader)来做到这一点：</span> </p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <span style="font-size: small;"><strong><span style="color: #000080;">(1) </span> <span style="color: #000080;">ClassLoader 是类加载器的抽象类。它可以在运行时动态的获取加载类的运行信息。</span> </strong> 可以这样说，当我们调用ResourceJar.jar中的Resource类时，JVM加载进Resource类，并记录下Resource运行时信息 (包括Resource所在jar包的路径信息)。而ClassLoader类中的方法可以帮助我们动态的获取这些信息:<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#9679; public URL getResource(String name) <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查找具有给定名称的资源。资源是可以通过类代码以与代码基无关的方式访问的一些数据(图像、声音、文本等)。并返回资源的URL对象。<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &#9679; public InputStream getResourceAsStream(String name); <br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回读取指定资源的输入流。<span style="color: #000080;">这个方法很重要，可以直接获得jar包中文件的内容。</span> </span> </p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-size: small;"><strong> </strong> </span> </p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;"><strong><span style="color: #000080;">(2) </span> </strong> ClassLoader是abstract的，不可能实例化对象，更加不可能通过ClassLoader调用上面两个方法。<strong><span style="color: #000080;">所以我们真正写代码的时候，是通过Class类中的getResource()和getResourceAsStream()方法，这两个方法会委托ClassLoader中的getResource()和getResourceAsStream()方法</span> </strong> 。好了，现在我们重新写一段Resource代码,来看看上面那段费解的话是什么意思了：</span> </p></div><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">//</span><span style="color: #008000; ">源代码2：</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">package</span><span style="color: #000000; ">&nbsp;edu.hxraid;<br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;java.io.</span><span style="color: #000000; ">*</span><span style="color: #000000; ">;<br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;java.net.URL;<br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;Resource&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;getResource()&nbsp;</span><span style="color: #0000FF; ">throws</span><span style="color: #000000; ">&nbsp;IOException{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">查找指定资源的URL，其中res.txt仍然开始的bin目录下&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;URL&nbsp;fileURL</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.getClass().getResource(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/resource/res.txt</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(fileURL.getFile());<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="color: #0000FF; ">throws</span><span style="color: #000000; ">&nbsp;IOException&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resource&nbsp;res</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;Resource();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;res.getResource();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</span></div><br /><div><span style="font-size: small;">运行这段源代码结果：<span style="color: #ff0000;">/E:/Code_Factory/WANWAN/bin/resource/res.txt&nbsp;</span>  (<span style="color: #000000;">../</span> </span> <span style="color: #000000; font-size: small;">Code_Factory/WANWAN/..</span> <span style="font-size: small;">是java project所在的路径)</span>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;">我们将这段代码打包成ResourceJar.jar  ,并将ResourceJar.jar放在其他路径下(比如 c:\ResourceJar.jar)。然后另外创建一个java  project并导入ResourceJar.jar，写一段调用jar包中Resource类的测试代码：</span> </p></div><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;java.io.IOException;<br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;edu.hxraid.Resource;<br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;TEST&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="color: #0000FF; ">throws</span><span style="color: #000000; ">&nbsp;IOException&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resource&nbsp;res</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;Resource();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;res.getResource();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</span></div><div><span style="font-size: small;">这时的运行结果是：<span style="color: #ff0000;">file:/C:/ResourceJar.jar!/resource/res.txt</span></span></div><div><span style="background-color: #ffffff; color: #800000; font-size: small;">我们成功的在运行时动态获得了res.txt的位置。然而，问题来了，你是否可以通过下面这样的代码来得到res.txt文件？<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; File f=new File("C:/ResourceJar.jar!/resource/res.txt");<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当然不可能，因为".../ResourceJar.jar!/resource/...."并不是文件资源定位符的格式 (jar中资源有其专门的URL形式：</span> <span style="color: #ff0000; font-size: small;"><strong>jar:&lt;url&gt;!/{entry}</strong> </span> <span style="background-color: #ffffff; color: #800000; font-size: small;">)。所以，如果jar包中的类源代码用File f=new File(相对路径);的形式，是不可能定位到文件资源的。这也是为什么源代码1打包成jar文件后，调用jar包时会报出FileNotFoundException的症结所在了。</span>  <p>&nbsp;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;"><span style="color: #333399;"><strong>(3) </strong> </span> 我们不能用常规操作文件的方法来读取ResourceJar.jar中的资源文件res.txt，<strong><span style="color: #333399;">但可以通过Class类的getResourceAsStream()方法来获取</span> </strong> ，这种方法是如何读取jar中的资源文件的，这一点对于我们来说是透明的。我们将Resource.java改写成：</span> </p></div><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">//</span><span style="color: #008000; ">源代码3：</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">package</span><span style="color: #000000; ">&nbsp;edu.hxraid;<br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;java.io.</span><span style="color: #000000; ">*</span><span style="color: #000000; ">;<br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;Resource&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;getResource()&nbsp;</span><span style="color: #0000FF; ">throws</span><span style="color: #000000; ">&nbsp;IOException{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">返回读取指定资源的输入流</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputStream&nbsp;is</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.getClass().getResourceAsStream(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/resource/res.txt</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader&nbsp;br</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;BufferedReader(</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;InputStreamReader(is));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;s</span><span style="color: #000000; ">=</span><span style="color: #000000; ">""</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">((s</span><span style="color: #000000; ">=</span><span style="color: #000000; ">br.readLine())</span><span style="color: #000000; ">!=</span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(s);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</span></div><br /><div><span style="font-size: small;">我们将java工程下/bin目录中的edu/hxraid /Resource.class和资源文件resource/res.txt一并打包进ResourceJar.jar中，不管jar包在系统的任何目录 下，调用jar包中的Resource类都可以获得jar包中的res.txt资源，再也不会找不到res.txt文件了。</span></div><br />原文出自：<div>http://www.iteye.com/topic/483115</div><img src ="http://www.blogjava.net/xiaohuzi2008/aggbug/402695.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuzi2008/" target="_blank">小胡子</a> 2013-08-12 15:19 <a href="http://www.blogjava.net/xiaohuzi2008/archive/2013/08/12/402695.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse 快捷键</title><link>http://www.blogjava.net/xiaohuzi2008/archive/2013/07/25/401930.html</link><dc:creator>小胡子</dc:creator><author>小胡子</author><pubDate>Wed, 24 Jul 2013 17:00:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuzi2008/archive/2013/07/25/401930.html</guid><wfw:comment>http://www.blogjava.net/xiaohuzi2008/comments/401930.html</wfw:comment><comments>http://www.blogjava.net/xiaohuzi2008/archive/2013/07/25/401930.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuzi2008/comments/commentRss/401930.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuzi2008/services/trackbacks/401930.html</trackback:ping><description><![CDATA[<strong>编辑代码常用快捷键</strong><div><div id="cnblogs_post_body"> <p>格式化代码的快捷键 Ctrl + Shift + F</p> <p>格式化缩进的快捷键是 Ctrl + I，只能对选中的文本进行缩进</p> <p>删除一行的快捷键是 Ctrl + D</p> <p>当前窗口最大化最小化切换 Ctrl + M</p> <p>转到最后进行修改的位置 Ctrl + Q</p> <p>快速查找选中的字符 Ctrl + K(向下) Ctrl + Shift + K(向上)</p> <p>光标放到一个括号，切换到另一个成对的括号 Ctrl + Shirt + P</p> <p>在编辑过的位置进行切换 Alt + 左右方向键</p> <p><strong>阅读代码常用的快捷键</strong></p> <p>F3不解释（一些人喜欢用Ctrl + 鼠标左键）</p> <p>选中方法或者变量 Ctrl + Alt + H，查找在哪些地方调用，快速阅读代码和评估代码修改必须要用到的</p> <p>继承关系 F4，了解代码的框架</p> <p>快速查找函数和变量 Ctrl + O，输入函数或变量的名字，比在Outline中一个一个找要快很多，但是要对代码有了解</p> <p>全工程查找 Ctrl + H，代码巨多的情况下必不可少。</p> <p><em>由于水平有限，笔者只用到了这些快捷键</em></p> <p><strong>如果想知道其他的快捷键 Ctrl + Shift + L</strong></p> <p><strong>自定义格式化代码</strong></p> <p>在Preference中打开Java的Format</p> <p><img src="http://images.cnitblog.com/blog/189715/201307/23215455-810155cd1491422686ce1004b238674d.png" alt="" /></p> <p>内建的模版是不能修改的，点击New...，随便输入一个名字，新建一个自己的模板，弹出自定义Edit窗口</p> <p><img src="http://images.cnitblog.com/blog/189715/201307/23215652-11b83f4d698f4724bf922b15a640f0f9.png" alt="" height="564" width="711" /></p> <p>可以定义的项目非常丰富，在右边还可以进行预览，就算对英文不感冒，也可以捉摸出大致的意思。对代码进行格式化的好处是不仅仅是美观，便于阅读，在 进行团队开发的时候，使用统一的格式，在合并代码的时候可以避免许多的冲突。修改完成的模版就是使用Ctrl + Shift + F格式化时的模板</p> <p><strong>自动去除无用的import，自动补全@Override和@deprecated，eclipse的Clean up</strong></p> <p>在Code Style中，除了Format还有Clean Up</p> <p><img src="http://images.cnitblog.com/blog/189715/201307/23220521-056672b4196249be9ea60d5fa66fe8cc.png" alt="" /></p> <p>和Format进行同样的操作，新建一个模板，有几个地方我决定有必要改一下</p> <p>在<strong>Code Organizing</strong>标签选择<strong>Remove trailing whitespace</strong>（移除尾部的空格）</p> <p>和<strong>Organzie imports</strong></p> <p>选择Organzie imports前效果</p> <div> <pre><span style="color: #0000ff;">import</span> org.model.*;</pre> </div> <p>选择Organzie imports后效果</p> <div> <pre><span style="color: #0000ff;">import</span> org.model.Engine;</pre> </div> <p><img style="line-height: 1.5;" src="http://images.cnitblog.com/blog/189715/201307/23221113-7dd886d380f64c7b99b561e71bf4bbdd.png" alt="" /></p> <p>切换到Code Style标签</p> <p><strong><img src="http://images.cnitblog.com/blog/189715/201307/23221849-cf68e596760f4168873f5c7f8934c6bd.png" alt="" /></strong></p> <p>&nbsp;</p> <p><strong>Use blocks in if/while/for/do statements&nbsp;</strong>为<strong>if/while/for/do</strong>自动添加括号，这个因人而异，我决定即使只用一行，也应该添加括号。</p> <p>点击菜单里的Source - Clean up，可以对代码进行清理，清理代码最大的好处是&#8212;&#8212;<strong>移除没用的import，自动添加@Deprecated和@Override</strong></p> <p><strong><br /></strong>特别是自动添加@Override，可以很清楚的明白那些函数是继承的。</p> <p><strong>代码提示</strong></p> <p>用过visual assistx的一定非常系统它的代码提示功能，我是个没有代码提示就无法Coding的人，点击菜单Windows-Preference，切换到以下窗口</p> <p><img src="http://images.cnitblog.com/blog/189715/201307/23224440-b5e72b0c643e4c7091d36f62b448f6f7.png" alt="" height="453" width="651" /></p> <p>找到Auto Activation，也就是红色方框中的部分，将<strong>Auto activation delay(ms):</strong> 修改为 <strong>50</strong></p> <p>将<strong>Auto activation triggers for Java:</strong>修改为 <strong>.abcdefghigklmnoprstuvwxyz</strong>，这样就能随时提示了。</p> <p>&nbsp;</p> <p>最后介绍两个工具，<strong>Search Everything</strong> 根据文件名快速查找文件，<strong>ClipX</strong>剪贴板历史记录。</p></div></div><br />原文出自：http://www.cnblogs.com/sw926/p/3209615.html<img src ="http://www.blogjava.net/xiaohuzi2008/aggbug/401930.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuzi2008/" target="_blank">小胡子</a> 2013-07-25 01:00 <a href="http://www.blogjava.net/xiaohuzi2008/archive/2013/07/25/401930.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【转】Hibernate使用SchemaExport和AnnotationConfiguration生成表结构 </title><link>http://www.blogjava.net/xiaohuzi2008/archive/2013/07/11/401452.html</link><dc:creator>小胡子</dc:creator><author>小胡子</author><pubDate>Thu, 11 Jul 2013 06:13:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuzi2008/archive/2013/07/11/401452.html</guid><wfw:comment>http://www.blogjava.net/xiaohuzi2008/comments/401452.html</wfw:comment><comments>http://www.blogjava.net/xiaohuzi2008/archive/2013/07/11/401452.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuzi2008/comments/commentRss/401452.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuzi2008/services/trackbacks/401452.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<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; ">@Entity<br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; ">@Table(name</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">T_ADM_USER</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;User&nbsp;</span><span style="color: #0000FF; ">extends</span><span style="color: #000000; ">&nbsp;GenericEntity&nbsp;</span><span style="color: #0000FF; ">implements</span><span style="color: #000000; ">&nbsp;Serializable&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;@OneToOne(cascade&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;CascadeType.PERSIST)<br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;@JoinColumn(name</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">grade_id</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;Grade&nbsp;getGrade()&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;grade;<br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setGrade(Grade&nbsp;grade)&nbsp;{<br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.grade&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;grade;<br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;@Column(name</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">user_name</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,&nbsp;insertable&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">,&nbsp;updatable&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">,&nbsp;nullable&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;getUsername()&nbsp;{<br /></span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;username;<br /></span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setUsername(String&nbsp;username)&nbsp;{<br /></span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.username&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;username;<br /></span><span style="color: #008080; ">19</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">20</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">21</span>&nbsp;<span style="color: #000000; ">} <br /></span></div><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<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: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;TableUtil&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;main(String[]&nbsp;args)&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">try</span><span style="color: #000000; ">{<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;<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;AnnotationConfiguration&nbsp;cfg&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;AnnotationConfiguration();<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;cfg.addAnnotatedClass(com.mygogo.grade.user.entity.User.</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">);</span><span style="color: #008080; "></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;&nbsp;&nbsp; <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;SchemaExport&nbsp;se&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;SchemaExport(cfg);<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;se.setDelimiter(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;</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;se.drop(</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">);<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;se.create(</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000FF; ">catch</span><span style="color: #000000; ">(Exception&nbsp;e){<br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br /></span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #000000; ">}</span></div><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><img src ="http://www.blogjava.net/xiaohuzi2008/aggbug/401452.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuzi2008/" target="_blank">小胡子</a> 2013-07-11 14:13 <a href="http://www.blogjava.net/xiaohuzi2008/archive/2013/07/11/401452.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>