﻿<?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/algz/category/32842.html</link><description>Purple Butterfly Flying
QQ群:7101519
Flex,Ext,Spring,Hibernate,EOS,SpringSecurity,Struts
http://algz.googlecode.com/svn/trunk/</description><language>zh-cn</language><lastBuildDate>Wed, 09 Nov 2011 10:19:33 GMT</lastBuildDate><pubDate>Wed, 09 Nov 2011 10:19:33 GMT</pubDate><ttl>60</ttl><item><title>在spring的bean中获取ServletContext 和 servletConfig</title><link>http://www.blogjava.net/algz/articles/352560.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Sat, 18 Jun 2011 01:44:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/352560.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/352560.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/352560.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/352560.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/352560.html</trackback:ping><description><![CDATA[<div><div>在spring的bean中获取ServletContext 和&nbsp;servletConfig</div><div></div><div>&nbsp;&nbsp;常规方式下获取servletContext需要继承HttpServlet类，然后获取servletConfig，通过这个获取servletContext（servletConfig.getServletContext()）。</div><div></div><div>&nbsp;&nbsp;但是spring的bean都是pojo，和我们常规的操作有些不同。</div><div></div><div>spring给我们提供了两个接口：org.springframework.web.context.ServletContextAware和org.springframework.web.context.ServletConfigAware。我们可以让我们的bean实现上边的任何一个接口就能获取到servletContext了 .</div><div></div><div>代码如下：</div><div><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; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;DicBean&nbsp;</span><span style="color: #0000FF; ">implements</span><span style="color: #000000; ">&nbsp;ServletContextAware{<br />&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;ServletContext&nbsp;servletContext;<br /><br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setServletContext(ServletContext&nbsp;sc)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.servletContext</span><span style="color: #000000; ">=</span><span style="color: #000000; ">sc;<br />&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">项目应用的绝对路径为：</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">servletContext.getRealPath(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/</span><span style="color: #000000; ">"</span><span style="color: #000000; ">));<br />}<br />}</span></div></div><div></div></div><img src ="http://www.blogjava.net/algz/aggbug/352560.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2011-06-18 09:44 <a href="http://www.blogjava.net/algz/articles/352560.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PS切片导出为DIV+CSS布局</title><link>http://www.blogjava.net/algz/articles/297304.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Tue, 06 Oct 2009 04:42:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/297304.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/297304.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/297304.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/297304.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/297304.html</trackback:ping><description><![CDATA[<div id="helpCont">
<p>在修改好相应的文字与图象之后，我们就将PSD文件输出(X)HTML文件。</p>
<p>首先得先对PSD文件做切片，有两种方法：</p>
<p>①使用工具栏上的&#8220;切片工具&#8221;，<br />
<br />
<img onmousewheel="return bbimg(this)" border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/qiepian1.jpg" width="148" onload="javascript:resizepic(this)" height="144" /></p>
<p>&nbsp;</p>
<p>然后在图象上划出一块一块的区域。<br />
<br />
<img onmousewheel="return bbimg(this)" border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/qiepian2.jpg" width="323" onload="javascript:resizepic(this)" height="194" /></p>
<p>&nbsp;</p>
<p>②使用基于参考线的切片，按ctrl+R调出标尺栏，<br />
<br />
<img onmousewheel="return bbimg(this)" border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/qiepian3.jpg" width="346" onload="javascript:resizepic(this)" height="225" /></p>
<p>&nbsp;</p>
<p>把鼠标移动到标尺上，按住鼠标左键，移动到图象上，将会看到一条绿色的参考线，如图<br />
<br />
<img onmousewheel="return bbimg(this)" border="0" hspace="0" alt="" src="http://www.mobanwang.com/art/UploadFiles_4858/200701/20070114123723599.jpg" onload="javascript:resizepic(this)" /></p>
<p>&nbsp;</p>
<p><br />
将参考线；排好，然后点一下工具栏上的切片工具图表，然后点上面</p>
<p>选项栏里的&#8220;基于参考线的切片&#8221;。于是在原来的参考线上就变成了一块一块的切片了。<br />
<img onmousewheel="return bbimg(this)" border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/qiepian5.jpg" width="323" onload="javascript:resizepic(this)" height="253" /></p>
<p>********************************************************************************&nbsp;</p>
<p>接下来就可以输出了:<br />
①依次选择菜单栏上的&#8220;文件&#8221;&#8594;&#8220;存储为Web所用格式&#8221;&#8594;&#8220;存储&#8221;。</p>
<p>②接下来就会弹出一个&#8220;将优化结果存储为&#8221;的窗口。</p>
<p>在&#8220;保存类型&#8221;处有个下拉列框可以选择，因为我们要存储为网页的格式，所以选择&#8220;HTML和图象(* html)&#8221;，再选择&#8220;保存&#8221;就可以输出一个网页格式的HTML文件与一个包含图象的名为&#8220;images&#8221;的文件夹。</p>
<p><span style="color: red"><span style="color: #339966">③如果我们需要输出&#8220;div+css的网页&#8221;我们还可以这么做：<br />
在&#8220;设置&#8221;处的下拉列框，选择&#8220;其他&#8221;<br />
</span></span></p>
<p><img onmousewheel="return bbimg(this)" border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/qiepian6.png" width="352" onload="javascript:resizepic(this)" height="176" /></p>
<p>&nbsp;</p>
<p>就会弹出一个&#8220;输出设置&#8221;的窗口<br />
<span style="color: #339966">在第2个下拉列框处选择&#8220;切片&#8221;,选择&#8220;生成CSS&#8221;，</span>单击&#8220;好&#8221;&#8594;&#8220;保存&#8221;，就可以输出一个目前流行的&#8220;div+css&#8221;的HTML网页。</p>
<p><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/qiepian7.png" width="501" height="269" /><br />
<br />
</p>
</div>
<img src ="http://www.blogjava.net/algz/aggbug/297304.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2009-10-06 12:42 <a href="http://www.blogjava.net/algz/articles/297304.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>renderTo and el and contentEl 图文详解</title><link>http://www.blogjava.net/algz/articles/296287.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Thu, 24 Sep 2009 06:36:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/296287.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/296287.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/296287.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/296287.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/296287.html</trackback:ping><description><![CDATA[<br />
&nbsp;&nbsp;&nbsp;id:"box",<br />
&nbsp;&nbsp;&nbsp;renderTo:"content11",<br />
&nbsp;&nbsp;&nbsp;el:&nbsp;"content11-title"<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/renderToAndelAndcontentEl1.jpg" width="573" height="133" /><br />
********************************************************<br />
&nbsp;&nbsp;&nbsp;id:"box",<br />
&nbsp;&nbsp;&nbsp;renderTo:"content11",<br />
&nbsp;&nbsp;&nbsp;//el:&nbsp;"content11-title"<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/renderToAndelAndcontentEl2.jpg" width="488" height="135" /><br />
********************************************************<br />
id&nbsp;:&nbsp;"box",<br />
renderTo&nbsp;:&nbsp;"content11-title"//,<br />
//&nbsp;el:&nbsp;"content11-title"<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/renderToAndelAndcontentEl3.jpg" width="512" height="147" /><br />
********************************************************<br />
id&nbsp;:&nbsp;"box",&nbsp;<br />
contentEl:&nbsp;"content11-title",<br />
renderTo&nbsp;:&nbsp;"content11"//,<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/renderToAndelAndcontentEl4.jpg" width="476" height="118" /><br />
<br />
id&nbsp;:&nbsp;"box",&nbsp;<br />
contentEl:&nbsp;"content11-title",<br />
renderTo&nbsp;:&nbsp;"content11"//,<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/renderToAndelAndcontentEl5.jpg" width="476" height="148" />
<img src ="http://www.blogjava.net/algz/aggbug/296287.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2009-09-24 14:36 <a href="http://www.blogjava.net/algz/articles/296287.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CSS 定位posistion,absolute,relative,float,clear最简单明了的解释</title><link>http://www.blogjava.net/algz/articles/294706.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Fri, 11 Sep 2009 04:43:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/294706.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/294706.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/294706.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/294706.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/294706.html</trackback:ping><description><![CDATA[一 概述<br />
CSS 有二种基本的定位机制：文档流、脱离文档流。<br />
除非指定元素定位属性，否则所有元素框都在文档流中定位。也就是说，文档流中的元素位置由元素在 X(HTML) 中的位置决定。<br />
<br />
二 CSS定位相关的两属性 position 和 float<br />
（1）position：<span style="color: #339966">定位时，使用 left，right，top，bottom 中至少一个值定位。</span><br />
<br />
值:<br />
static：正常文档流布局，默认值。<br />
relative(相对)：不脱离文档流，<span style="color: #339966">其&#8220;相对于&#8221;它在文档流中原位置进行垂直水平偏移</span>，所有后序元素原位置不变，但可能<span style="color: #339966">覆盖后序元素</span>，但<span style="color: #339966">不算层叠</span>，不可通过<a href="c_zindex.html"> z-index </a>属性定义。<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/ct_css_positioning_relative_example.gif" width="532" height="190" /><br />
<br />
absolute(绝对)：脱离文档流，<span style="color: #339966">不占据空间</span>，所有后序元素自动前移，绝对定位元素的起点位置<span style="color: #339966">相对于<em>最近已定位（只需指定一个position属性）祖先元素(从父元素开始搜索）以外边距后为起点（可存在内边距里,如图：<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/absolute.png" width="162" height="109" />）</em></span>，如果元素没有已定位的祖先元素，那么它的位置相对于<em>最初的包含块（body)</em>。可<span style="color: #339966">多重层叠</span>，<span style="color: #339966">通过<a href="c_zindex.html"> z-index </a>属性定义</span>。 定位后生成一个块级框，而不论原来它在文档流中是何种类型的框。<br />
<p><br />
文档流中其它元素的布局就像绝对定位的元素不存在一样：</p>
<strong><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/ct_css_positioning_absolute_example.gif" width="532" height="207" /><br />
<br />
</strong>（2）float：浮动的框可以向左或向右移动，直到它的外边缘碰到包含框或另一个浮动框的边框为止。由于浮动框<span style="color: #339966">脱离文档流</span>，所以文档流中的其它元素块框表现得就像浮动框不存在一样。<span style="color: #339966">定位时，与margin与padding相关。</span><br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/ct_css_positioning_floating_right_example.gif" width="526" height="233" /><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/ct_css_positioning_floating_left_example.gif" width="526" height="233" /><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/ct_css_positioning_floating_left_example_2.gif" width="526" height="233" /><br />
<br />
（3）clear<br />
定义和用法<br />
clear 属性<br />
设置元素的侧面是否允许其他的浮动元素。<br />
说明<br />
clear 属性定义了元素的哪边上不允许出现浮动元素。在 CSS1 和 CSS2 中，这是通过自动为清除元素（即设置了 clear 属性的元素）增加上外边距实现的。<br />
在 CSS2.1 中，会在元素上外边距之上增加清除空间，而外边距本身并不改变。不论哪一种改变，最终结果都一样，如果声明为左边或右边清除，会使元素的上外边框边界刚好在该边上浮动元素的下外边距边界之下。<br />
值 &nbsp;描述<br />
left &nbsp;在左侧不允许浮动元素。<br />
right &nbsp;在右侧不允许浮动元素。<br />
both &nbsp;在左右两侧均不允许浮动元素。<br />
none &nbsp;默认值。允许浮动元素出现在两侧。<br />
<br />
图像的左侧和右侧均不允许出现浮动元素：img{float:left;clear:both;}<br />
<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/ct_css_positioning_floating_linebox.gif" width="525" height="212" /><br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/ct_css_positioning_floating_clear.gif" width="525" height="212" /><br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/ct_css_positioning_floating_clear_div.gif" width="525" height="264" />&nbsp; 
<img src ="http://www.blogjava.net/algz/aggbug/294706.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2009-09-11 12:43 <a href="http://www.blogjava.net/algz/articles/294706.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Extjs dataView 详解</title><link>http://www.blogjava.net/algz/articles/294297.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Tue, 08 Sep 2009 06:10:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/294297.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/294297.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/294297.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/294297.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/294297.html</trackback:ping><description><![CDATA[(一)js
<pre><code><strong>var</strong> store = <strong>new</strong> Ext.data.JsonStore({
url: <em>'get-images.php'</em>,
root: <em>'images'</em>,
fields: [
<em>'name'</em>, <em>'url'</em>,
{name:<em>'size'</em>, type: <em>'float'</em>},
{name:<em>'lastmod'</em>, type:<em>'date'</em>, dateFormat:<em>'timestamp'</em>}
]
});
store.load();
<strong>var</strong> tpl = <strong>new</strong> Ext.XTemplate(
<em>'&lt;tpl <strong>for</strong>=<em>"."</em>&gt;'</em>,
<em>'&lt;div class=<em>"<span style="color: #33cccc">thumb-wrap</span>"</em> id=<em>"{name}"</em>&gt;'</em>,
<em>'&lt;div class=<em>"thumb"</em>&gt;&lt;img src=<em>"{url}"</em> title=<em>"{name}"</em>&gt;&lt;/div&gt;'</em>,
<em>'&lt;span class=<em>"x-editable"</em>&gt;{<span style="color: #99cc00">shortName</span>}&lt;/span&gt;&lt;/div&gt;'</em>,
<em>'&lt;/tpl&gt;'</em>,
<em>'&lt;div class=<em>"x-clear"</em>&gt;&lt;/div&gt;'</em>
);
<strong>var</strong> panel = <strong>new</strong> Ext.Panel({
id:<em>'images-view'</em>,
frame:true,
width:535,
autoHeight:true,
collapsible:true,
layout:<em>'fit'</em>,
title:<em>'Simple DataView'</em>,
<p>
items: <strong>new</strong> Ext.DataView({
store: store,
tpl: tpl,
autoHeight:true,
multiSelect: true,
overClass:<em>'x-view-over'</em>,              //鼠标悬停item时的类样式,defaults to undefined
itemSelector:<em>'<span style="color: #33cccc">div.thumb-wrap</span>'</em>,        //必须项,值为item选择器,此值也可为.thumb-wrap  e.g. <span style="color: #33cccc">div.some-class</span><br />
//<a href="http://www.extjs.com/deploy/dev/docs/source/DataView.html#cfg-Ext.DataView-selectedClass"><strong>selectedClass</strong></a><strong>:'x-view-selected',</strong>      //(默认名)defaults to 'x-view-selected',但仍必须写此类的CSS内容<br />
emptyText: <em>'No images to display'</em>
</p>
<p>/*<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plugins: [<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Ext.DataView.DragSelector(),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Ext.DataView.LabelEditor({dataIndex: 'name'})<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ],*/</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; prepareData: function(data){       //数据预处理,即数据处理前.data为原始数据,类型为对象.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data.<span style="color: #99cc00">shortName </span>= Ext.util.Format.ellipsis(data.name, 15);   //指定字符串为15个字符,超出部分用三个圆点代替.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp; data.sizeString = Ext.util.Format.fileSize(data.size);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp; data.dateString = data.lastmod.format("m/d/Y g:i a");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return data;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listeners: {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;selectionchange: {        //结点的选择发生改变时,即重新选择结点时,可以更改为selectionchange:function(dv,nodes)...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;fn: function(dv,nodes){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;var l = nodes.length;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;var s = l != 1 ? 's' : '';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;panel.setTitle('Simple DataView ('+l+' item'+s+' selected)');<br />
&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;}
</p>
<p>})
});
panel.render(document.body);</code></p>
</pre>
<p>DataView 用store提供的数据流，采用tpl的格式显示，itemSelector的值为数据流中块的CSS类选择器，对块操作时更换其CSS类样式,如鼠标悬停在块上和块被选定时的CSS类样式;简单点说,就是有利于对数据流中的块好控制操作.<br />
<br />
tpl定义的块：<span aria-expanded="false" class="nodeLabelBox repTarget " role="treeitem">&lt;<span class="nodeTag ">div</span><span class="nodeAttr editGroup ">&nbsp;<span class="nodeName editable ">id</span>="<span class="nodeValue editable ">zack_hat.jpg</span>"</span><span class="nodeAttr editGroup ">&nbsp;<span class="nodeName editable "><span style="color: #3366ff"><span class="nodeName editable ">class</span>="<span class="nodeValue editable " collapsed="false">thumb-wrap</span></span></span>"</span><span class="nodeBracket editable insertBefore ">&gt;</span></span><br />
鼠标悬停时的块（overClass）：<span aria-expanded="false" class="nodeLabelBox repTarget " role="treeitem">&lt;<span class="nodeTag ">div</span><span class="nodeAttr editGroup ">&nbsp;<span class="nodeName editable ">id</span>="<span class="nodeValue editable ">zack_hat.jpg</span>"</span><span class="nodeAttr editGroup ">&nbsp;<span class="nodeName editable "><span style="color: #3366ff"><span class="nodeName editable ">class</span>="<span class="nodeValue editable " collapsed="false">thumb-wrap x-view-over</span></span></span>"</span><span class="nodeBracket editable insertBefore ">&gt;</span></span><br />
点击被选中的块（selectedClass）：<span aria-expanded="true" class="nodeLabelBox repTarget " role="treeitem">&lt;<span class="nodeTag ">div</span><span class="nodeAttr editGroup ">&nbsp;<span class="nodeName editable ">id</span>="<span class="nodeValue editable ">kids_hug2.jpg</span>"</span><span class="nodeAttr editGroup ">&nbsp;<span class="nodeName editable "><span style="color: #3366ff"><span class="nodeName editable ">class</span>="<span class="nodeValue editable " collapsed="false">thumb-wrap x-view-selected</span></span></span>"</span><span class="nodeBracket editable insertBefore ">&gt;<br />
</span></span><br />
1.当鼠标点击数据流中某一块时，块增加selectedClass定义的类样式，如没定义类名,即采用默认的类名'x-view-selected'（CSS内容依然为空,仍需手写,只是类名必须为此）；<br />
2.用overClass定义的CSS类样式，鼠标悬停在块(div)上，更换其CSS类样式.<br />
3.dataView.store.filter(f1,f2):从store中查找f1字段,与f2匹配(不完全匹配相同)过滤,重新本地加载数据.<br />
4.dataView.store.store(f1,'asc'/'desc'):store的内容按f1的值排序.<br />
5.dataView.store.clearFilter():清除过滤状态.还原初始.<br />
6.dataView.select(n):更换第n个块的CSS类样式.<br />
<br />
(二)html:</p>
<p>&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;/head&gt;<br />
&lt;body id="ext-gen6" class=" ext-gecko ext-gecko3"&gt;<br />
--&gt;<br />
&lt;h1&gt;DataView Example&lt;/h1&gt;<br />
&lt;p&gt;<br />
&lt;/p&gt;<br />
&lt;div id="images-view" class="x-panel" style="width: 535px;"&gt;<br />
&lt;div class="x-panel-tl"&gt;<br />
&lt;/div&gt;<br />
&lt;div id="ext-gen8" class="x-panel-bwrap"&gt;<br />
&lt;div class="x-panel-ml"&gt;<br />
&lt;div class="x-panel-mr"&gt;<br />
&lt;div class="x-panel-mc"&gt;<br />
&lt;div id="ext-gen9" class="x-panel-body" style="width: 523px; height: auto;"&gt;<br />
&lt;div id="ext-comp-1001" style="height: auto;"&gt;<br />
&lt;div id="kids_hug2.jpg" class="thumb-wrap x-view-selected "&gt;<br />
&lt;div class="thumb"&gt;<br />
&lt;img title="kids_hug2.jpg" src="images/thumbs/kids_hug2.jpg"/&gt;<br />
&lt;/div&gt;<br />
&lt;span class="x-editable"/&gt;<br />
&lt;/div&gt;<br />
&lt;div id="zack_hat.jpg" class="thumb-wrap "&gt;<br />
&lt;/div&gt;<br />
&lt;div id="zack.jpg" class="thumb-wrap "&gt;<br />
&lt;/div&gt;<br />
&lt;div id="zack_sink.jpg" class="thumb-wrap "&gt;<br />
&lt;/div&gt;<br />
&lt;div id="sara_pink.jpg" class="thumb-wrap"&gt;<br />
&lt;/div&gt;<br />
&lt;div id="dance_fever.jpg" class="thumb-wrap "&gt;<br />
&lt;div class="thumb"&gt;<br />
&lt;img title="dance_fever.jpg" src="images/thumbs/dance_fever.jpg"/&gt;<br />
&lt;/div&gt;<br />
&lt;span class="x-editable"/&gt;<br />
&lt;/div&gt;<br />
&lt;div id="gangster_zack.jpg" class="thumb-wrap "&gt;<br />
&lt;/div&gt;<br />
&lt;div id="zacks_grill.jpg" class="thumb-wrap"&gt;<br />
&lt;/div&gt;<br />
&lt;div id="kids_hug.jpg" class="thumb-wrap "&gt;<br />
&lt;/div&gt;<br />
&lt;div id="zack_dress.jpg" class="thumb-wrap "&gt;<br />
&lt;/div&gt;<br />
&lt;div id="sara_pumpkin.jpg" class="thumb-wrap"&gt;<br />
&lt;/div&gt;<br />
&lt;div id="sara_smile.jpg" class="thumb-wrap "&gt;<br />
&lt;/div&gt;<br />
&lt;div id="up_to_something.jpg" class="thumb-wrap "&gt;<br />
&lt;/div&gt;<br />
&lt;div class="x-clear"/&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;div class="x-panel-bl x-panel-nofooter"&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/body&gt;<br />
&lt;div id="_firebugConsole" style="display: none;" FirebugVersion="1.4.2"/&gt;<br />
&lt;/html&gt;<br />
<br />
(三)css<br />
#images-view .x-panel-body {<br />
-moz-background-clip:border;<br />
-moz-background-inline-policy:continuous;<br />
-moz-background-origin:padding;<br />
-x-system-font:none;<br />
background:white none repeat scroll 0 0;<br />
font-family:Arial,Helvetica,sans-serif;<br />
font-size:11px;<br />
font-size-adjust:none;<br />
font-stretch:normal;<br />
font-style:normal;<br />
font-variant:normal;<br />
font-weight:normal;<br />
line-height:normal;<br />
}<br />
#images-view .thumb {<br />
-moz-background-clip:border;<br />
-moz-background-inline-policy:continuous;<br />
-moz-background-origin:padding;<br />
background:#DDDDDD none repeat scroll 0 0;<br />
padding:3px;<br />
}<br />
#images-view .thumb img {<br />
height:60px;<br />
width:80px;<br />
}<br />
<span style="color: #3366ff">#images-view .thumb-wrap {<br />
float:left;<br />
margin:4px 0 4px 4px;<br />
padding:5px;<br />
}</span><br />
#images-view .thumb-wrap span {<br />
display:block;<br />
overflow:hidden;<br />
text-align:center;<br />
}<br />
<span style="color: #3366ff">#images-view .x-view-over {<br />
-moz-background-clip:border;<br />
-moz-background-inline-policy:continuous;<br />
-moz-background-origin:padding;<br />
background:#EFEFEF url(../../resources/images/default/grid/row-over.gif) repeat-x scroll left top;<br />
border:1px solid #DDDDDD;<br />
padding:4px;<br />
}</span><br />
<span style="color: #3366ff">#images-view .x-view-selected {<br />
-moz-background-clip:border;<br />
-moz-background-inline-policy:continuous;<br />
-moz-background-origin:padding;<br />
background:#EFF5FB url(images/selected.gif) no-repeat scroll right bottom;<br />
border:1px solid #99BBE8;<br />
padding:4px;<br />
}</span><br />
#images-view .x-view-selected .thumb {<br />
-moz-background-clip:border;<br />
-moz-background-inline-policy:continuous;<br />
-moz-background-origin:padding;<br />
background:transparent none repeat scroll 0 0;<br />
}<br />
#images-view .loading-indicator {<br />
background-image:url(../../resources/images/default/grid/loading.gif);<br />
background-position:left center;<br />
background-repeat:no-repeat;<br />
font-size:11px;<br />
margin:10px;<br />
padding-left:20px;<br />
}<br />
&nbsp;</p>
 <img src ="http://www.blogjava.net/algz/aggbug/294297.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2009-09-08 14:10 <a href="http://www.blogjava.net/algz/articles/294297.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSF 问题收集帖</title><link>http://www.blogjava.net/algz/articles/260806.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Thu, 19 Mar 2009 08:02:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/260806.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/260806.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/260806.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/260806.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/260806.html</trackback:ping><description><![CDATA[1. JSF 表达式语言<span style="color: #339966">#{...}</span>与&nbsp;JSP 表达式语言<span style="color: #339966">${...}<br />
</span>&nbsp;&nbsp;&nbsp; &lt;f:view&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //JSF标签必须放在里面<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 名稱1: ${user.name}&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; //正确<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #339966">&nbsp; <span style="color: #008080">//#{user.name}&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><br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 名稱2: &lt;h:inputText value="#{user.name}"/&gt;&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;<span style="color: #008080">//&lt;h:inputText value="${user.name}"/&gt;&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;//&lt;input value="#{user.name}"/&gt;&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;<span style="color: #000000">名稱3:</span>&nbsp;<span style="color: #000000">&lt;input value="${user.name}"/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //正确,而且仍然可以使用JSF的ManagedBean</span><br />
</span>&nbsp;&nbsp;&nbsp; &lt;/f:view&gt;<br />
JSF表达式只能用在JSF标签里,JSP表达式也只能用JSP里.<br />
JSP EL的语法格式:${...} 不能放在&lt;%...%&gt;中. 
<img src ="http://www.blogjava.net/algz/aggbug/260806.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2009-03-19 16:02 <a href="http://www.blogjava.net/algz/articles/260806.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EXTJS 学习笔记(共17项,20090924更新)</title><link>http://www.blogjava.net/algz/articles/255938.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Sat, 21 Feb 2009 04:03:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/255938.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/255938.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/255938.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/255938.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/255938.html</trackback:ping><description><![CDATA[<strong>目录<br />
<a href="#1">(1)箭头样式<br />
</a><a href="#2">(2)treenode 自定义样式<br />
</a><strong><a href="#3"><strong>(3)Ext.tree.TreePanel</strong>&nbsp;的<span style="color: #3366ff">title,root<span style="color: #000000">&nbsp;配置项</span></span>必须指定,不然<span style="color: #3366ff"><span style="color: #000000">图像</span>在IE中显示混乱<span style="color: #000000">;</span> <span style="color: #000000"><span style="color: #666699"><span style="color: #339966">loader</span></span>配置项不指定,<span style="color: #339966">不显示</span>图像</span></span></a></strong>.&nbsp; <br />
<strong><a href="#4"><strong>(4)Extjs 日期的使用方法(显示,接收,定义,提交)</strong></a></strong><br />
<a href="#5">(5)Extjs 三个主要文件错误的引用, 浏览器无法显示Extjs效果.</a><br />
<strong><a href="#6"><strong>(6)gridpanel加态重新加载columnModel和store</strong></a></strong><br />
<strong><a href="#7"><strong>(7)tabpanel判断tab页在不在</strong></a></strong><br />
<strong><a href="#8"><strong>(8)panel动态加载tbar(可扩展进行延伸控制任何DIV)</strong></a><br />
<strong><a href="#9"><strong>(9)Extjs 扩展继承子类(Ext.extend())</strong></a></strong><br />
</strong><strong><a href="#10"><strong>(10)Ext.data.Record 类 引用和赋值问题</strong></a></strong><br />
<strong><a href="#11"><strong>(11)Ext.apply 无法复制 Ext.data.JsonStore 等数据源相关的类型</strong></a></strong><br />
<strong><a href="#12"><strong>(12)TabPanel子窗口(如Ext.Panel等)隐藏属性closable</strong></a></strong><br />
<strong><a href="#13"><strong>(13)Panel 的 tools 配置项</strong></a></strong><br />
<strong><a href="#14"><strong>(14)Extjs 首页 "load..." 制作方法</strong></a><br />
</strong><strong><a href="#15"><strong>(15)Extjs 漂亮的Panel折叠伸缩控件 layout:'accordion'</strong></a></strong><br />
<strong><a href="#16"><strong>(16)Ext.grid.GridPanel 的columns属性和Ext.data.Store的fields属性均可为数组</strong></a></strong><br />
<strong><a href="#17"><strong>(17)使用XTemplate动态加载panel等组件内容</strong></a></strong><br />
<br />
<br />
<br />
<br />
<a id="1" name="1"></a>(1)箭头样式</strong><br />
&nbsp;new Ext.tree.TreePanel({<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; useArrows : true,//是否使用箭头样式<br />
<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/useArrows.jpg" /><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/old-useArrows.jpg" /><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; loader : new Ext.tree.TreeLoader({ url : "tree-data.json"}),<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; root : new Ext.tree.AsyncTreeNode()<br />
<strong><br />
<a id="2" name="2"></a>(2)treenode 自定义样式</strong><br />
json:<br />
[{<br />
&nbsp;&nbsp;&nbsp; text:'Basic Ext Layouts',<br />
&nbsp;&nbsp;&nbsp; expanded: true,<br />
&nbsp;&nbsp;&nbsp; children:[{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #33cccc">&nbsp;text:'Absolute', //也可以使用HTML标签<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id:'absolute',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #339966">//icon:....&nbsp;&nbsp; //自定义图标</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #99cc00">cls:"tem",&nbsp;&nbsp; //&lt;link rel="stylesheet" href="css/tem.css" type="text/css"&gt;&lt;/link&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; leaf:true<br />
<br />
<strong><a id="3" name="3"></a>(3)Ext.tree.TreePanel</strong>&nbsp;的<span style="color: #3366ff">title,root<span style="color: #000000">&nbsp;配置项</span></span>必须指定,不然<span style="color: #3366ff"><span style="color: #000000">图像</span>在IE中显示混乱<span style="color: #000000">;</span> <span style="color: #000000"><span style="color: #666699"><span style="color: #339966">loader</span></span>配置项不指定,<span style="color: #339966">不显示</span>图像</span></span>.&nbsp;
<p>&nbsp;&nbsp;&nbsp; 三个必须项:&nbsp; <span style="color: #3366ff">title,root<span style="color: #000000">&nbsp;,<span style="color: #000000"><span style="color: #666699"><span style="color: #339966">loader</span></span></span></span></span><br />
new Ext.tree.TreePanel({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rootVisible : false,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;useArrows : true,// 是否使用箭头样式<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loader : new Ext.tree.TreeLoader({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url : "tree-data.json"<br />
&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;title : "tool1",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;root : new Ext.tree.AsyncTreeNode()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}), {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #99cc00">title : "tool2"</span></p>
<p><strong><a id="4" name="4"></a>(4)Extjs 日期的使用方法(显示,接收,定义,提交)</strong></p>
<a href="http://www.blogjava.net/algz/articles/270359.html">http://www.blogjava.net/algz/articles/270359.html</a><br />
<strong><span style="display: inline" id="Code_Open_Text_173624"><span style="background-color: #f5f5f5; color: #000000"><br />
<a id="5" name="5"></a>(5)</span></span>Extjs 三个主要文件错误的引用, 浏览器无法显示Extjs效果.</strong><br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/extjs-bug.jpg" /><br />
&nbsp;正确:&nbsp; &lt;script type="text/javascript" src="script/ext/ext-all.js"&gt;&lt;/script&gt;<br />
&nbsp;错误:&nbsp; &lt;script type="text/javascript" src="/script/ext/ext-all.js"&gt;&lt;/script&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type="text/javascript" src="../script/ext/ext-all.js"&gt;&lt;/script&gt;<br />
<br />
<strong><a id="6" name="6"></a>(6)gridpanel加态重新加载columnModel和store</strong><br />
<span style="display: inline" id="Code_Open_Text_173624"><span style="background-color: #f5f5f5; color: #008000">//</span><span style="background-color: #f5f5f5; color: #008000">重新绑定grid</span><span style="background-color: #f5f5f5; color: #008000"><br />
</span><span style="background-color: #f5f5f5; color: #0000ff">this</span><span style="background-color: #f5f5f5; color: #000000">.grid.reconfigure(newStore,&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff">new</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;Ext.grid.ColumnModel(cm1));<br />
</span><span style="background-color: #f5f5f5; color: #008000">//</span><span style="background-color: #f5f5f5; color: #008000">重新绑定分页工具栏</span><span style="background-color: #f5f5f5; color: #008000"><br />
</span><span style="background-color: #f5f5f5; color: #0000ff">this</span><span style="background-color: #f5f5f5; color: #000000">.pagingBar.bind(newStore);<br />
</span><span style="background-color: #f5f5f5; color: #008000">//</span><span style="background-color: #f5f5f5; color: #008000">重新加载数据集<br />
</span><span style="background-color: #f5f5f5; color: #000000">newStore.load({params:{start:</span><span style="background-color: #f5f5f5; color: #000000">0</span><span style="background-color: #f5f5f5; color: #000000">,limit:</span><span style="background-color: #f5f5f5; color: #000000">10</span><span style="background-color: #f5f5f5; color: #000000">}}); </span></span><br />
<br />
<br />
<strong><a id="7" name="7"></a>(7)tabpanel判断tab页在不在</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var tem=tabpanel.getItem("tabpage"); <span style="color: #008000">//判断tab页在不在.</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(tem)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.Msg.alert("ok");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.Msg.alert("not"); <br />
<br />
<strong><a id="8" name="8"></a>(8)panel动态加载tbar(可扩展进行延伸控制任何DIV)</strong><br />
var pan=new Ext.Panel({tbar:new Ext.Toolbar({})....); <span style="color: #008000">//定义空对象容易在PANEL加载时没加载tbar，所以会出现没有高度或隐藏起来</span><br />
var t=new Ext.Toolbar({...});<br />
document.getElementById(pan.tbar.id).innerHTML = ""; <span style="color: #008000">//清空panel.tbar下的所有内容<br />
</span>t.render(pan.tbar); <span style="color: #008000">//toolpanel显示到panel.tbar(div)下</span><br />
<br />
<strong><a id="9" name="9"></a>(9)Extjs 扩展继承子类(Ext.extend())</strong><br />
var subclass=Ext.extend(XX,{&nbsp;&nbsp; //继承Extjs类,可覆盖或添加其子类的属性或方法<br />
xx:...,<br />
xx:...<br />
});<br />
var tem=new subclass({});<br />
<br />
<strong><a id="10" name="10"></a>(10)Ext.data.Record 类 引用和赋值问题</strong><br />
var record=new Ext.data.Record({});<br />
......<br />
store.insert(0,record);&nbsp; //record值勤改变.store中的值也改变.<br />
store.insert(0,record.copy);&nbsp; //record值改变,store中的值不变.record.copy()复制返回另一个记录.<br />
<br />
<strong><a id="11" name="11"></a>(11)Ext.apply 无法复制 Ext.data.JsonStore 等数据源相关的类型</strong><br />
var store2 = new Ext.data.JsonStore({});<br />
var store3={};<br />
Ext.apply(store2,magazine_store); //效果无用.store2仍引用magazine_store,无法独立使用.<br />
Ext.apply(store3,magazine_store); //效果同上.<br />
store3=Ext.apply(store2,magazine_store); //效果同上.<br />
<br />
<strong><a id="12" name="12"></a>(12)TabPanel子窗口(如Ext.Panel等)隐藏属性closable</strong><br />
TabPanel子窗口(如Ext.Panel,Ext.grid.GridPanel等)隐藏属性closable:true/false //显示/隐藏子窗口右上角的关闭按钮<br />
注:此属性只有TabPanel子窗口才有效.<br />
<br />
<strong><a id="13" name="13"></a>(13)Panel 的 tools 配置项</strong><br />
new Ext.Panel({...<br />
tools:[{<br />
&nbsp;&nbsp;&nbsp; <span style="color: #008080">id</span>:'refresh',&nbsp; //必选项<br />
&nbsp;&nbsp;&nbsp; qtip: 'Refresh form Data',<br />
&nbsp;&nbsp;&nbsp; // hidden:true,<br />
&nbsp;&nbsp;&nbsp; <span style="color: #008080">handler</span>: function(event, toolEl, panel){&nbsp;&nbsp;&nbsp;&nbsp; //必须项<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // refresh logic<br />
&nbsp;&nbsp;&nbsp; }<br />
}]<br />
...})<br />
API详见:&nbsp; <a id="Editor_Edit_hlEntryLink" title="view: Panel 的 tools 属性" href="http://www.blogjava.net/algz/articles/277819.html" target="_blank">http://www.blogjava.net/algz/articles/277819.html</a> <br />
<br />
<strong><a id="14" name="14"></a>(14)Extjs 首页 "load..." 制作方法<br />
</strong><a id="Editor_Edit_hlEntryLink" title='view: Extjs 首页 "load..." 制作方法' href="http://www.blogjava.net/algz/articles/277844.html" target="_blank">http://www.blogjava.net/algz/articles/277844.html</a> <br />
<br />
<strong><a id="15" name="15"></a>(15)Extjs 漂亮的Panel折叠伸缩控件 layout:'accordion'<br />
</strong><a href="http://www.blogjava.net/algz/articles/278217.html">http://www.blogjava.net/algz/articles/278217.html</a><br />
<br />
<strong><a id="16" name="16"></a>(16)Ext.grid.GridPanel 的columns属性和Ext.data.Store的fields属性均可为数组</strong><br />
columns:cm&nbsp;&nbsp;&nbsp; //cm=[....{...}...]&nbsp;&nbsp;&nbsp; cm=new Ext.Ext.grid.ColumnModel([...])<br />
fields:f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //f=[...]&nbsp; f=new Ext.data.Record.create([...])<br />
<br />
<strong><a id="17" name="17"></a><a><strong>(17)使用XTemplate动态加载panel等组件内容</strong></a></strong><br />
//可以采用异步远程取值<br />
var board_data = {<br />
&nbsp;title : "title",<br />
&nbsp;content : ""<br />
};<br />
//可以是任意组件<br />
&nbsp;&nbsp;&nbsp;&nbsp;var board_w = new Ext.Window({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id : "board_w",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title : "公告",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modal : true,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />
&nbsp;&nbsp;&nbsp;&nbsp;// 以下方法 Ext.fly("board_w");Ext.get("board_w")都错<br />
&nbsp;&nbsp;&nbsp;&nbsp;tpl.overwrite(Ext.getCmp("board_w").body, data);// 更新公告内容<br />
<img src ="http://www.blogjava.net/algz/aggbug/255938.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2009-02-21 12:03 <a href="http://www.blogjava.net/algz/articles/255938.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>extjs 问题集锦收集帖...</title><link>http://www.blogjava.net/algz/articles/253282.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Wed, 04 Feb 2009 09:02:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/253282.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/253282.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/253282.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/253282.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/253282.html</trackback:ping><description><![CDATA[<strong>1.Extjs 三个主要文件错误的引用, 浏览器无法显示Extjs效果.</strong><br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/algz/extjs-bug.jpg" border="0" /><br />
&nbsp;正确:&nbsp; &lt;script type="text/javascript" src="script/ext/ext-all.js"&gt;&lt;/script&gt;<br />
&nbsp;错误:&nbsp; &lt;script type="text/javascript" src="/script/ext/ext-all.js"&gt;&lt;/script&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type="text/javascript" src="../script/ext/ext-all.js"&gt;&lt;/script&gt; <br />
<br />
<strong>2.gridpanel加态重新加载columnModel和store</strong><br />
<span style="display: inline;" id="Code_Open_Text_173624"><span style="background-color: #f5f5f5; color: #008000;">//</span><span style="background-color: #f5f5f5; color: #008000;">重新绑定grid</span><span style="background-color: #f5f5f5; color: #008000;"><br />
</span><span style="background-color: #f5f5f5; color: #0000ff;">this</span><span style="background-color: #f5f5f5; color: #000000;">.grid.reconfigure(newStore,&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff;">new</span><span style="background-color: #f5f5f5; color: #000000;">&nbsp;Ext.grid.ColumnModel(cm1));<br />
</span><span style="background-color: #f5f5f5; color: #008000;">//</span><span style="background-color: #f5f5f5; color: #008000;">重新绑定分页工具栏</span><span style="background-color: #f5f5f5; color: #008000;"><br />
</span><span style="background-color: #f5f5f5; color: #0000ff;">this</span><span style="background-color: #f5f5f5; color: #000000;">.pagingBar.bind(newStore);<br />
</span><span style="background-color: #f5f5f5; color: #008000;">//</span><span style="background-color: #f5f5f5; color: #008000;">重新加载数据集<br />
</span><span style="background-color: #f5f5f5; color: #000000;">newStore.load({params:{start:</span><span style="background-color: #f5f5f5; color: #000000;">0</span><span style="background-color: #f5f5f5; color: #000000;">,limit:</span><span style="background-color: #f5f5f5; color: #000000;">10</span><span style="background-color: #f5f5f5; color: #000000;">}});&nbsp;</span></span> <br />
<strong><br />
3.tabpanel判断tab页在不在</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var tem=tabpanel.getItem("tabpage"); <span style="color: #008000;">//判断tab页在不在.</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(tem)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.Msg.alert("ok");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.Msg.alert("not"); <br />
<br />
<strong>4.panel动态加载tbar(可扩展进行延伸控制任何DIV)</strong><br />
var pan=new Ext.Panel({tbar:new Ext.Toolbar({})....); <span style="color: #008000;">//定义空对象容易在PANEL加载时没加载tbar，所以会出现没有高度或隐藏起来</span><br />
var t=new Ext.Toolbar({...});<br />
document.getElementById(pan.tbar.id).innerHTML = ""; <span style="color: #008000;">//清空panel.tbar下的所有内容<br />
</span>t.render(pan.tbar); <span style="color: #008000;">//toolpanel显示到panel.tbar(div)下</span><br />
<br />
<strong>5.Ext.data.Record 类 引用和赋值问题</strong><br />
var record=new Ext.data.Record({});<br />
......<br />
store.insert(0,record);&nbsp; //record值勤改变.store中的值也改变.<br />
store.insert(0,record.copy);&nbsp; //record值改变,store中的值不变.record.copy()复制返回另一个记录.<br />
<br />
<strong>6.Ext.data.Store 设置baseParams方法</strong><br />
myStore.setBaseParam('foo', {bar:3});<br />
<img src ="http://www.blogjava.net/algz/aggbug/253282.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2009-02-04 17:02 <a href="http://www.blogjava.net/algz/articles/253282.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsf+spring+hibernate 整合出现的错误集合</title><link>http://www.blogjava.net/algz/articles/228548.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Fri, 12 Sep 2008 03:25:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/228548.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/228548.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/228548.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/228548.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/228548.html</trackback:ping><description><![CDATA[一.错误信息提示:<br />
<span style="color: #99cc00;">WARN [main] (Configurator.java:126) - No configuration found. Configuring ehcache from <span style="color: #339966;">ehcache-failsafe.xml </span>found in the classpath: </span>jar:file:/E:/Users/algz/workspace/.metadata/.plugins/com.genuitec.eclipse.easie.tomcat.myeclipse/tomcat/webapps/item/WEB-INF/lib/ehcache-1.1.jar!/ehcache-failsafe.xml<br />
<br />
解决方案:<br />
ehcache-1.1.jar 包下的ehcache-failsafe.xml 文件复制到 src 目录下(新建文件,复制内容). <br />
<br />
二.错误信息提示:<br />
<span style="color: #99cc00;">log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).</span><br />
<span style="color: #339966;">log4j:WARN Please initialize the log4j system properly.</span><br />
<br />
解决方案:<br />
src 目录下创建 log4j.properties 文件(具体内容,详见log4j配置文件).<br />
<br />
三.错误信息提示:<br />
<p><span style="color: #99cc00;">ERROR [main] (CGLIBLazyInitializer.java:130) - CGLIB Enhancement failed:</span> item.common.hibernate.query.partsum.Partsum<br />
<span style="color: #99cc00;">java.lang.NoSuchMethodError:</span> org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V</p>
<p><span style="color: #339966;">&nbsp;WARN [main] (PojoEntityTuplizer.java:173) - could not create proxy factory for:</span> item.common.hibernate.query.partsum.Partsum<br />
<span style="color: #339966;">org.hibernate.HibernateException: CGLIB Enhancement failed:</span> item.common.hibernate.query.partsum.Partsum</p>
<p><span style="color: #33cccc;">Caused by: java.lang.NoSuchMethodError:</span> org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V</p>
<p>///////////////////////////////////////////////////////////////////////////////////////////</p>
<p>ERROR [main] (CGLIBLazyInitializer.java:130) - CGLIB Enhancement failed: item.common.hibernate.fourm.Fourm<br />
java.lang.NoClassDefFoundError</p>
<p>&nbsp;WARN [main] (PojoEntityTuplizer.java:173) - could not create proxy factory for:item.common.hibernate.fourm.Fourm<br />
org.hibernate.HibernateException: CGLIB Enhancement failed: item.common.hibernate.fourm.Fourm</p>
<p>Caused by: java.lang.NoClassDefFoundError<br />
&nbsp;at org.hibernate.proxy.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:116)</p>
<p>////////////////////////////////////////////////////////////////////////////////////////////</p>
<p>ERROR [main] (CGLIBLazyInitializer.java:130) - CGLIB Enhancement failed: item.common.hibernate.picture<br />
java.lang.NoClassDefFoundError</p>
<p>&nbsp;WARN [main] (PojoEntityTuplizer.java:173) - could not create proxy factory for:item.common.hibernate.picture<br />
org.hibernate.HibernateException: CGLIB Enhancement failed: item.common.hibernate.picture</p>
<p>Caused by: java.lang.NoClassDefFoundError<br />
&nbsp;at org.hibernate.proxy.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:116)</p>
<p><br />
解决方案:<br />
Spring 和 Hibernate 共用的一些 jar 文件发生了版本冲突, 删除 WEB-INF/lib/asm-2.2.3.jar 然后重启 Tomcat.<br />
<br />
四.错误提示:<br />
<span>org.springframework.beans.factory.BeanCreationException:&nbsp;Error&nbsp;creating&nbsp;bean&nbsp;with&nbsp;name&nbsp;'SessionFactory'&nbsp;defined&nbsp;in&nbsp;<span class="keyword">class</span><span>&nbsp;path&nbsp;resource&nbsp;[applicationContext.xml]:&nbsp;Invocation&nbsp;of&nbsp;init&nbsp;method&nbsp;failed;&nbsp;nested&nbsp;exception&nbsp;is&nbsp;java.lang.NoSuchMethodError:&nbsp;org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V&nbsp;&nbsp;</span></span><br />
...<br />
Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V<br />
<br />
解决方法:<br />
并不是真正的bean name错了,也不是找不到他的方法.是asm-2.2.3.jar与asm.jar冲突.<br />
<span style="color: #339966;">正确的删除asm-2.2.3.jar方法是到项目的发布文件夹\WEB-INF\lib中删除,不能用MyEclipse里删除.因为他在发布时仍没删除.</span></p>
<p><br />
</p>
<p>五。</p>
<p>严重: Exception sending context initialized event to listener instance of class <br />
<br />
org.springframework.web.context.ContextLoaderListener<br />
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in <br />
<br />
ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is <br />
<br />
org.hibernate.DuplicateMappingException: Duplicate class/entity mapping Check<br />
&nbsp;&nbsp;&nbsp; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean<br />
<br />
(AbstractAutowireCapableBeanFactory.java:1336)<br />
<br />
&nbsp;&nbsp;&nbsp; ... 39 more<br />
2009-8-21 11:52:37 org.apache.catalina.core.StandardContext start<br />
<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;property name="mappingResources"&gt;<br />
&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; &lt;value&gt;com/dao/Check.hbm.xml&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;value&gt;./Check.hbm.xml&lt;/value&gt;&lt;/list&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/property&gt;</p>
<p><br />
</p>
<p>六。</p>
<p>&nbsp;&lt;class catalog="page" name="com.dao.Check" table="check0908100816"&gt;<br />
&nbsp; &lt;id name="checkid" type="java.lang.Integer"&gt;<br />
&nbsp;&nbsp; &lt;column name="checkid"/&gt;<br />
&nbsp;&nbsp; &lt;generator class="native"/&gt;<br />
&nbsp; &lt;/id&gt;<br />
<br />
<br />
严重: Exception sending context initialized event to listener instance of class <br />
<br />
org.springframework.web.context.ContextLoaderListener<br />
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in <br />
<br />
ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is <br />
<br />
org.hibernate.MappingException: entity class not found: Check<br />
&nbsp;&nbsp;&nbsp; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean<br />
&nbsp;&nbsp;&nbsp; ... 52 more<br />
2009-8-21 11:56:45 org.apache.catalina.core.StandardContext start<br />
</p>
<img src ="http://www.blogjava.net/algz/aggbug/228548.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2008-09-12 11:25 <a href="http://www.blogjava.net/algz/articles/228548.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EXTJS 中接收到的 JSON 字符串转换成 JS 数组对象,具体可以跟踪查询</title><link>http://www.blogjava.net/algz/articles/228107.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Wed, 10 Sep 2008 03:53:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/228107.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/228107.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/228107.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/228107.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/228107.html</trackback:ping><description><![CDATA[API:<br />
load : ( Object This, Object node, Object response )<br />
Fires when the node has been successfuly loaded.<br />
<br />
JS:<br />
<br />
<span class="ext-mb-text" id="ext-gen456" style="color: #99cc00">//[{"identity":"","title":"车身部门","date":"","uiProvider":"col","author":"","<span style="color: #339966">children</span>":[{"identity":"车身部门"......</span><br />
treeload.on('load', function(This, node, response) {&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; //事件的参数可查API,&nbsp;参数的属性可以用 firebug 跟踪查询.<br />
&nbsp;&nbsp;&nbsp;&nbsp;var t = Ext.util.JSON.decode(response.responseText); <br />
&nbsp;&nbsp;&nbsp; var n;<br />
&nbsp;&nbsp;&nbsp; if (<span style="color: #339966">t[0].children</span>.length == 0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //注: length不是JSON对象,仅仅是JS对象内置数组属性.JS对象调用: <span style="color: #339966">t[0].children</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n = n + 1; 
 <img src ="http://www.blogjava.net/algz/aggbug/228107.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2008-09-10 11:53 <a href="http://www.blogjava.net/algz/articles/228107.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>String,int,Integer,char 类型转换</title><link>http://www.blogjava.net/algz/articles/227937.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Tue, 09 Sep 2008 06:18:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/227937.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/227937.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/227937.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/227937.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/227937.html</trackback:ping><description><![CDATA[<p><strong>&nbsp;如何将字串 String 转换成整数 int?</strong> <br />
int i = Integer.valueOf(my_str).intValue(); </p>
<p>int i=Integer.parseInt(str); </p>
<p><strong>如何将字串 String 转换成Integer ?</strong><br />
Integer integer=Integer.valueOf(str); </p>
<p><strong>如何将整数 int 转换成字串 String ?</strong> <br />
1.) String s = String.valueOf(i);<br />
&nbsp;<br />
2.) String s = Integer.toString(i); <br />
&nbsp;<br />
3.) String s = "" + i; <br />
<br />
<strong>如何将整数 int 转换成Integer ?</strong> <br />
Integer integer=new Integer(i); </p>
<p><strong>如何将Integer 转换成字串 String ?</strong> <br />
Integer integer＝String </p>
<p><strong>如何将Integer 转换成 int ?</strong> <br />
int num=Integer.intValue(); </p>
<p><strong>如何将String转换成&nbsp; BigDecimal&nbsp; ?</strong> <br />
&nbsp;BigDecimal d_id = new BigDecimal(str); <br />
</p>
<p><br />
<strong>如何将 String 转换成 char ?</strong><br />
char[] ca="123".toCharArray();<br />
<br />
<strong>如何将char转换成String?</strong><br />
String s=ca.toString();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //任何类型都可以采用toString()转换成String类型<br />
<br />
//-----------------日期------------------------- </p>
<p>Calendar calendar=Calendar.getInstance();<br />
&nbsp; int year=calendar.get(Calendar.YEAR);<br />
&nbsp; int month=calendar.get(Calendar.MONTH)+1;<br />
&nbsp; int day=calendar.get(Calendar.DATE); </p>
<p>获取今天的日期字符串<br />
String today=java.text.DateFormat.getDateInstance().format(new java.util.Date());<br />
获取今天的日期<br />
new java.sql.Date(System.currentTimeMillis()) </p>
 <img src ="http://www.blogjava.net/algz/aggbug/227937.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2008-09-09 14:18 <a href="http://www.blogjava.net/algz/articles/227937.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EXTJS 重新加载树结点</title><link>http://www.blogjava.net/algz/articles/226446.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Tue, 02 Sep 2008 09:18:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/226446.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/226446.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/226446.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/226446.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/226446.html</trackback:ping><description><![CDATA[var bbscenter = new Ext.tree.ColumnTree({...<br />
bbscenter.getRootNode().reload();//重新加载树结点.<br />
<br />
以下是转载某位朋友的内容:<br />
解决这个问题，可以有两种解决办法。<br />
1.重新加tree的根节点,将所有的节点重新加载。即：tree.getRootNode().reload();<br />
2.直接在前台操作tree的节点。tree.getNodeById('0101');//该方法是tree通过节点的id查找并返回节点对象（有一个前提就是树形必须全部展开否则找不到节点），找到相应的节点后通过节点的set方法（setText）改变节点的属性。
<img src ="http://www.blogjava.net/algz/aggbug/226446.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2008-09-02 17:18 <a href="http://www.blogjava.net/algz/articles/226446.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EXTJS 一般提交表单时, 出现奇怪的"SYNTAX ERROR: )"错误</title><link>http://www.blogjava.net/algz/articles/226436.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Tue, 02 Sep 2008 08:57:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/226436.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/226436.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/226436.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/226436.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/226436.html</trackback:ping><description><![CDATA[<p>&lt;%<br />
&nbsp;ServletContext sc = request.getSession().getServletContext();<br />
&nbsp;ApplicationContext ac = WebApplicationContextUtils<br />
&nbsp;&nbsp;&nbsp;.getWebApplicationContext(sc);<br />
&nbsp;FourmService fs = (FourmService) ac.getBean("fourmService");<br />
&nbsp;String c = request.getParameter("command");<br />
&nbsp;if (c == null)<br />
&nbsp;&nbsp;return;<br />
&nbsp;if (c.equals("notDetail")) { //论坛概述调用</p>
<p>&nbsp;&nbsp;out.print(fs.showfourm());<br />
&nbsp;} else if (c.equals("isDetail")) { //论坛详细内容调用<br />
&nbsp;&nbsp;String title = request.getParameter("title");<br />
&nbsp;&nbsp;String identity = request.getParameter("identity");<br />
&nbsp;&nbsp;out.print(fs.showfourm(title, identity));<br />
&nbsp;} else if (c.equals("insert")) {<br />
&nbsp;&nbsp;String[] t = new String[4];<br />
&nbsp;&nbsp;t[0] = "title";//request.getParameter("title");<br />
&nbsp;&nbsp;t[1] = "底盘部门";//request.getParameter("identity");<br />
&nbsp;&nbsp;t[2] = "底盘作者";//request.getParameter("author");<br />
&nbsp;&nbsp;t[3] ="底盘详细内容"; //request.getParameter("detail");<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;fs.insertjson(t);<br />
&nbsp;&nbsp;out.print("{success:true,msg:'添加成功!'}");&nbsp; <span style="color: #339966">//必须指定{success:true'},他传回EXTJS调用成功,否则EXTJS卡住无法执行;如果没有这行代码即为报"SYNTAX ERROR:)"错.他还能传任意参数如MSG回EXTJS.<br />
</span>&nbsp;}<br />
%&gt;</p>
 <img src ="http://www.blogjava.net/algz/aggbug/226436.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2008-09-02 16:57 <a href="http://www.blogjava.net/algz/articles/226436.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>extjs 提交表单(注意Form必须的规定) , 取JSP返回值 , 转换JSON数据为JSON对象使用 </title><link>http://www.blogjava.net/algz/articles/224524.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Tue, 26 Aug 2008 09:17:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/224524.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/224524.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/224524.html#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/224524.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/224524.html</trackback:ping><description><![CDATA[&nbsp;/**(注:以下只是部分代码,只可理解不要照抄)<br />
&nbsp; * 以下是表单 __________________________________________________<br />
&nbsp; * */<br />
var memberAddWindow;<br />
<br />
&nbsp;//文章标题<br />
&nbsp;var articletitle = new Ext.form.TextField({<br />
&nbsp;&nbsp;fieldLabel:'文章标题',<br />
&nbsp;&nbsp;name:'memberName',&nbsp;&nbsp;&nbsp; <span style="color: #99cc00">//必须指名name属性.用于将参数传出去.参数名:name属性值,如'memberName'.参数值:'memberName'对应的文本框的值.<br />
</span>&nbsp;&nbsp;allowBlank:false,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; anchor:'90%'<br />
&nbsp;});<br />
<br />
&nbsp;//表单对象<br />
&nbsp;&nbsp;&nbsp; var <span style="color: #339966">memberForm</span> = new Ext.FormPanel({<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title: '添加新文章信息',<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url:'./member_manage.jsp?command=insert',<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; items: [articletitle],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buttons:[<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text:'提交',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handler : <span style="color: #339966">function(){<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; if ( memberForm.getForm().isValid() )&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;&nbsp; memberForm.getForm().submit({&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; waitMsg:'保存中,请稍后...',&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #00ff00">success</span> : function(<span style="color: #808000">re,v</span>){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //表单提交成功后,调用的函数.<span style="color: #808000">参数分为两个,一个是提交的表单对象,另一个是JSP返回的参数值对象</span><br />
<span style="color: #808000">&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; var&nbsp;jsonobject = Ext.util.JSON.decode(v.response.responseText);&nbsp;&nbsp; //将返回的JSON数据转换成JSON对象,转换失败即报错.<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;Ext.Msg.alert("msg,oject",jsonobject.msg);&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;//用JSON对象获取JSON数据的值</span><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; memberForm.getForm().reset();&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memberAddWindow.hide();&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bbscenter.getRootNode().reload();&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #00ff00">failure</span> : function(){<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;Ext.Msg.alert("msg,oject",jsonobject.msg);&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;&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;&nbsp;}<br />
</span>},{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #339966">text:'取消',<br />
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;handler : function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memberForm.getForm().reset();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memberAddWindow.hide();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp; }]<br />
&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; //窗体对象<br />
&nbsp;&nbsp;&nbsp; function addarticle(){<br />
&nbsp;&nbsp;&nbsp;&nbsp; if(!memberAddWindow){<br />
&nbsp;&nbsp;&nbsp;memberAddWindow = new Ext.Window({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; el:'window_win',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout:'fit',<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; closable:true,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; closeAction:'hide',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plain:true,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; items: [<span style="color: #339966">memberForm</span>]<br />
&nbsp;&nbsp;&nbsp;});<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;memberAddWindow.show(Ext.get('newWindowButton'));<br />
&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />
<br />
<br />
JSP:<br />
out.print("{<span style="color: #808000">success:true</span> , msg:'123'}") ;&nbsp; //只有指定<span style="color: #808000">success:true</span>才能<span style="color: #00ff00">返回成功</span>,<span style="color: #808000">succes:false或</span>其他字符<span style="color: #00ff00">返回失败</span>.<br />
//form的提交是对ajax请求做了封装，要求必须是那咱格式返回响应，否则无法正确解析 ; Ajax.lib.request 没有这规定. 
<img src ="http://www.blogjava.net/algz/aggbug/224524.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2008-08-26 17:17 <a href="http://www.blogjava.net/algz/articles/224524.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>获取ApplicationContext.xml文件中定义的BEAN</title><link>http://www.blogjava.net/algz/articles/222982.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Tue, 19 Aug 2008 05:26:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/222982.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/222982.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/222982.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/222982.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/222982.html</trackback:ping><description><![CDATA[<p>jsp文件:<br />
&lt;%@ page import="javax.servlet.ServletContext" %&gt;<br />
&lt;%@ page import="org.springframework.context.ApplicationContext" %&gt;<br />
&lt;%@ page import="org.springframework.web.context.support.WebApplicationContextUtils" %&gt;<br />
<br />
&lt;% <br />
<span style="color: #339966">//获取ApplicationContext对象</span><br />
ServletContext&nbsp;&nbsp; servletContext&nbsp;&nbsp; =&nbsp;&nbsp; request.getSession().getServletContext();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
ApplicationContext&nbsp;&nbsp; ac&nbsp;&nbsp; =&nbsp;&nbsp; WebApplicationContextUtils.getWebApplicationContext(servletContext); </p>
<p><span style="color: #339966">//获取ApplicationContext.xml文件中定义的BEAN</span><br />
PictureService ps=(PictureService)ac.getBean("pictureService");</p>
<img src ="http://www.blogjava.net/algz/aggbug/222982.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2008-08-19 13:26 <a href="http://www.blogjava.net/algz/articles/222982.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>extjs 单击按钮,刷新GRID数据</title><link>http://www.blogjava.net/algz/articles/213903.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Thu, 10 Jul 2008 03:23:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/213903.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/213903.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/213903.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/213903.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/213903.html</trackback:ping><description><![CDATA[(一)HTML:<br />
......<br />
<p>&lt;!--显示数据的表格窗口--&gt;<br />
&lt;div id="member_grid"&gt;&lt;/div&gt; </p>
<p>&lt;input type="button" id="button1" value="update"&gt; </p>
......<br />
<br />
(二)JS:<br />
Ext.onReady(function(){<br />
......<br />
<br />
var button = Ext.get('button1');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //获得按钮实例<br />
button.on('click', function(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //按钮单击事件<br />
<span style="color: #339966">grid.store.reload();&nbsp;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //刷新GRID数据源 , 方法一<br />
//<span style="color: #99cc00">store.reload();&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>//刷新GRID方法二<br />
});<br />
......<br />
<br />
//设置数据源,获取JSON数据赋值给变量store.<br />
&nbsp;<span style="color: #99cc00">var store = new Ext.data.JsonStore</span>({&nbsp; <br />
......<br />
<br />
<span style="color: #339966">var grid = new Ext.grid.EditorGridPanel</span>({<br />
...... 
<img src ="http://www.blogjava.net/algz/aggbug/213903.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2008-07-10 11:23 <a href="http://www.blogjava.net/algz/articles/213903.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EXTJS AJAX发送数据到JAVA后台 js-&gt;jsp-&gt;java-&gt;html</title><link>http://www.blogjava.net/algz/articles/213079.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Mon, 07 Jul 2008 09:27:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/213079.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/213079.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/213079.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/213079.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/213079.html</trackback:ping><description><![CDATA[js-&gt;jsp-&gt;java-&gt;html<br />
<span style="color: #008080">(一)js:</span><br />
发送AJAX请求:<br />
&nbsp;&nbsp;&nbsp;&nbsp;Ext.Ajax.request({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method : 'POST',&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//(1)<span style="color: #008000">发送方式.'POST'或'GET',一般是'POST'</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url: './member_manage.jsp',&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;//(2)<span style="color: #008000">发送到页面</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; success:function(request){&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;//(3)<span style="color: #008000">发送成功的回调函数</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var message = request.responseText;&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;//(4)<span style="color: #008000">取得从JSP文件out.print(...)传来的文本</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.Msg.alert('信息',message);&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; //(5)<span style="color: #008000">弹出对话框</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;store.reload();&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//(6)<span style="color: #008000">重新读入数据</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//grid.getView().refresh();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;failure:function(){&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //(7)<span style="color: #008000">发送失败的回调函数</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.Msg.alert("错误", "与后台联系的时候出现了问题");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params:{command:'save',members: Ext.encode(json)} //(8)<span style="color: #008000">发送名为command和members两参数</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;});<br />
<br />
<span style="color: #008080">(二)jsp:<br />
</span><br />
(1)<span style="color: #008000">取得'POST'参数</span>:&nbsp; String command = request.getParameter("command");<br />
(2)<span style="color: #008000">把参数转化成JSON形式</span>:&nbsp; <br />
JSONArray members = new JSONArray(params);&nbsp; //params= new String(command .getBytes("ISO-8859-1"),"UTF-8");<br />
(3)<span style="color: #008000">把JSON数据传入后台</span>:<br />
<span style="color: #000000">页面中以${对象.属性}调用后台数据</span><br />
Member member = new Member();<br />
&nbsp;member.doSave(members);<br />
out.print("数据保存成功!");<br />
<br />
<span style="color: #008080">(三)java:<br />
</span>(1)<span style="color: #008000">取出JSON对象数组(JSONArray)里的对象( JSONObject )</span> :<br />
JSONObject member = members.optJSONObject(i);<br />
(2)<span style="color: #008000">判断JSON对象里的元素的值</span>:&nbsp; if(member.has("id"))<br />
(3)<span style="color: #008000">取出JSON对象里的元素的值存入数据库</span>:&nbsp; <br />
s = c.prepareStatement("update Members m set m.realName=?,m.sex=?,m.age=?,m.birth=? where m.id=?");<br />
s.setString(1, member.getString("name"));<br />
s.addBatch();<br />
s.executeBatch(); 
<img src ="http://www.blogjava.net/algz/aggbug/213079.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2008-07-07 17:27 <a href="http://www.blogjava.net/algz/articles/213079.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]JSF中文输入乱码问题解决方法</title><link>http://www.blogjava.net/algz/articles/201833.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Wed, 21 May 2008 01:50:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/201833.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/201833.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/201833.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/201833.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/201833.html</trackback:ping><description><![CDATA[<br />
<p>以下总结这段时间以来遇到的中文问题汇集：</p>
<p>注：以下&#8220;后台&#8221;字眼，相当于在servlet内，或者某一个类内，或者struts的action内。</p>
<p>1.一字符串在后台用system.out.println输出正常，保存在session里到JSP页面显示乱码</p>
<p>最初的乱码问题.</p>
<p>原因：似乎是默认的JSP页面采用8859-1编码，显示不了中文。</p>
<p>解决：在JSP页面上方加个&lt;%@ page contentType="text/html;charset=utf-8"%&gt;解决。当然，也可以用charaset="gbk"，"gb2312"之类的编码，不过建议还是用utf-8，详细原因去看看jdon板桥里人的那篇《中文乱码终极解决方法》。</p>
<p>&nbsp;*****************************************************************************</p>
<p><span style="color: #339966">2.提交表单，在后台读取表单内容发现乱码</span></p>
<p>原因：request的默认编码问题，具体不甚清楚，没看过tomcat源代码。。。</p>
<p>解决：写个fileter，具体如下：</p>
<p>package operator;</p>
<p>import java.io.IOException;</p>
<p>import javax.servlet.Filter;<br />
import javax.servlet.FilterChain;<br />
import javax.servlet.FilterConfig;<br />
import javax.servlet.ServletException;<br />
import javax.servlet.ServletRequest;<br />
import javax.servlet.ServletResponse;</p>
<p>public class SetCharacterEncodingFilter implements Filter {<br />
&nbsp;protected String encoding = null;</p>
<p>&nbsp;protected FilterConfig filterConfig = null;</p>
<p>&nbsp;public void init(FilterConfig filterConfig) throws ServletException {<br />
&nbsp;&nbsp;this.filterConfig = filterConfig;<br />
&nbsp;&nbsp;this.encoding = filterConfig.getInitParameter("encoding");<br />
&nbsp;}</p>
<p>&nbsp;public void doFilter(ServletRequest request, ServletResponse response,<br />
&nbsp;&nbsp;&nbsp;FilterChain chain) throws IOException, ServletException {<br />
<br />
&nbsp;&nbsp;request.setCharacterEncoding("UTF-8");<br />
&nbsp;&nbsp;chain.doFilter(request, response);<br />
&nbsp;}</p>
<p>&nbsp;public void destroy() {<br />
<br />
&nbsp;&nbsp;this.encoding = null;<br />
&nbsp;&nbsp;this.filterConfig = null;<br />
&nbsp;}</p>
<p>&nbsp;protected String selectEncoding(ServletRequest request) {<br />
&nbsp;&nbsp;return (this.encoding);<br />
&nbsp;}<br />
}<br />
</p>
<p>web.xml配置：</p>
<p>在servlet-mapping后加入以下内容：</p>
<p>&nbsp;&lt;filter&gt;<br />
&nbsp;&nbsp;&lt;filter-name&gt;Set Character Encoding&lt;/filter-name&gt;<br />
&nbsp;&nbsp;&lt;filter-class&gt;operator.SetCharacterEncodingFilter&lt;/filter-class&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;init-param&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;param-name&gt;encoding&lt;/param-name&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;param-value&gt;UTF-8&lt;/param-value&gt;<br />
&nbsp;&nbsp;&lt;/init-param&gt;<br />
&nbsp;&lt;/filter&gt;</p>
<p>&nbsp;&lt;filter-mapping&gt;<br />
&nbsp;&nbsp;&lt;filter-name&gt;Set Character Encoding&lt;/filter-name&gt;<br />
&nbsp;&nbsp;&lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br />
&nbsp;&lt;/filter-mapping&gt;<br />
***********************************************************************<br />
</p>
<p>3.下载时，&#8220;另保存为&#8221;默认名字显示乱码</p>
<p>原因：不清楚。。。</p>
<p>在tomcat安装目录的config/sever.xml内的</p>
<p>&nbsp;&nbsp;&nbsp; &lt;Connector<br />
port="80"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxHttpHeaderSize="8192"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxThreads="150" minSpareThreads="25" maxSpareThreads="75"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enableLookups="false" redirectPort="8443" acceptCount="100"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" /&gt;</p>
<p>加进最后的&#8220;URIEncoding="UTF8"</p>
<p>4.在后台用system.out.println()输出正常，保存到mysql数据库EMS显示乱码，读回数据也是乱码</p>
<p>原因：mysql默认采用的是latin1编码；</p>
<p>解决：创建表的时候要修改成utf-8。如果已存在表，用EMS的话，直接修改table-property里面的default charater set就可以了，其他管理工具不知道，没用过。</p>
<p>5.在后台用system.out.println()输出正常，保存到mysql数据库EMS显示乱码，读回数据时——居然正常了，直接往数据库里插入正常的中文，读出——居然乱码了；</p>
<p>原因：EMS管理工具的默认显示问题</p>
<p>解决：register数据库时，client default&nbsp; charater set改utf-8</p>
<p>注：这该死的问题困扰了我好长一段时间，一直以为我程序有问题，检查了N久，发现居然是工具显示问题。。</p>
<p>6.COMMON－UPLOAD 上传中文名文件时，显示乱码</p>
<p>原因：common-upload组件默认采用系统的编码，而页面传过来的请求采用UTF-8编码。</p>
<p>我的系统是简体中文WINDOWS 2K3，系统编码是GBK，当页面请求过来时，UPLOAD就把UTF8编码的流直接按GBK编码了。。。如果用new String(oldStr.getBytes("gbk"),"utf8)可以发现，部分中文可以还原回去。</p>
<p>解决：网上的说法五花八门，甚至有归罪于这是UPLOAD的BUG，其实只要在</p>
<p>&nbsp;DiskFileUpload fu = new DiskFileUpload();</p>
<p>后加一句：</p>
<p>fu.setHeaderEncoding("utf8");</p>
<p>就解决了。。。</p>
<p>看来有时候还是直接读英文帮助手册来得正确。。。</p>
<br />
<br />
<br />
问题描述：<br />
在inputtext中输入中文，然后在输出，显示为乱码。<br />
<br />
解决方法：<br />
1、自定义转器<br />
package util;<br />
import java.util.Map;<br />
import javax.faces.component.UIComponent;<br />
import javax.faces.convert.Converter;<br />
import javax.faces.context.FacesContext;<br />
import javax.faces.convert.ConverterException;
<p>public class StringConverter implements Converter {<br />
&nbsp;public Object getAsObject(FacesContext context, UIComponent component,<br />
&nbsp;&nbsp;&nbsp;String newValues) throws ConverterException {<br />
&nbsp;&nbsp;String newstr = "";<br />
&nbsp;&nbsp;if (newValues == null) {<br />
&nbsp;&nbsp;&nbsp;newValues = "";<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;byte[] byte1 = null;<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;byte1 = newValues.getBytes("ISO-8859-1");<br />
&nbsp;&nbsp;&nbsp;newstr = new String(byte1, "GB2312");<br />
&nbsp;&nbsp;&nbsp;UIInput input=(UIInput)component;//<br />
&nbsp;&nbsp;&nbsp;input.setSubmittedValue(newstr);<br />
&nbsp;&nbsp;} catch (UnsupportedEncodingException e) {<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;return newstr;</p>
<p>&nbsp;}</p>
<p>&nbsp;public String getAsString(FacesContext context, UIComponent component,<br />
&nbsp;&nbsp;&nbsp;Object Values) throws ConverterException {&nbsp;<br />
&nbsp;&nbsp;return (String) Values;<br />
&nbsp;}<br />
}</p>
<p>2、注册转换器<br />
faces-config.xml片段<br />
&lt;converter&gt;<br />
&nbsp; &lt;converter-id&gt;stringconverter&lt;/converter-id&gt;<br />
&nbsp; &lt;converter-class&gt;util.StringConverter&lt;/converter-class&gt;<br />
&lt;/converter&gt;</p>
<p>3、在页面使用转换器<br />
&lt;h:inputText id="account" value="#{util.account}" required="true" styleClass="input" &gt;&nbsp;<br />
&nbsp;&lt;f:converter converterId="stringconverter"/&gt;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--注:这里不是EL表达式--&gt;</p>
&lt;/h:inputText&gt;<br />
<br />
<br />
<br />
<br />
<br />
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JSF估计是天生就是这个毛病，凡是有jsf标签生成的html代码中有中文的（指从 backbean中提取出来的），在html源代码中回出现类似：&amp;<span class="entity">#38632;</span>&amp;<span class="entity">#28404; 这种&#8220;汉字内码&#8221;，比如jsf的代码如下：<br />
&lt;f:view&gt;<br />
&nbsp;&nbsp; &lt;h:outputText value="#{testBean.testValue}"&gt;&lt;/h:outputText&gt;<br />
&nbsp;&nbsp; &lt;br&gt;<br />
&nbsp;&nbsp; 哈哈<br />
&lt;/f:view&gt;<br />
&lt;br&gt;呵呵</span></p>
<p><span class="entity">浏览器显示如下：<br />
雨滴雨滴2 <br />
哈哈 <br />
呵呵</span></p>
<p><span class="entity">而查看html源代码如下：<br />
</span></p>
<pre>&amp;<span class="entity">#38632;</span>&amp;<span class="entity">#28404;</span>&amp;<span class="entity">#38632;</span>&amp;<span class="entity">#28404;</span>2
&lt;<span class="start-tag">br</span>&gt;
哈哈
&lt;<span class="start-tag">br</span>&gt;呵呵</pre>
<p>我们发现用jsf标签出来的有内码，而不是jsf标签的就没事。（网页服务器编码等都是UTF-8统一的）。</p>
<p>那么有什么办法呢？</p>
<p>第一个方法，写一个自定义的Converter，在jsf中有这种功能，但是我测试了写了一个converter，但是效果令我失望，因为我发现jsf的内在逻辑把汉字变成内码的地方在converter以后，我在converter中添加什么东西，在html源代码中还是内码。于是放弃</p>
<p>第二种方法是在写个Servlet的Filter过滤器，放到web.xml中，但是由于汉字内码&amp;<span class="entity">#38632;需要去掉前后坠，然后把这几个数字变成char，在变成String。每个字都用这种方法变回来，这样本身效率回很低，而且一个html文档中用jsf显示的内容占有比率有多有少，如果没有标签的也是用这个过滤器一个字一个字取解析，那么效率就更不敢恭维了。虽然这种方法一定可行（因为过滤器可以到输出的最后一步），但是由于效率问题，我没有取试。</span></p>
<p><span class="entity">第三种方法是我自己研究出来的，通过FacesContext类来作，方法如下：<br />
首先，写一个类<br />
public class Converter {<br />
public static void process(String str){<br />
&nbsp;&nbsp; FacesContext fc=FacesContext.getCurrentInstance();<br />
&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp; fc.getResponseWriter().write(str);<br />
&nbsp;&nbsp; } catch (IOException e) {<br />
&nbsp;&nbsp;&nbsp; // TODO Auto-generated catch block<br />
&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;&nbsp; }<br />
}<br />
}</span><br />
然后在每个backbean中需要getXXX方法中返回是String的方法中修改如下：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 把 return XXX&nbsp;&nbsp; 改为&nbsp;&nbsp; return ""<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在return前面，也就是方法的最后一步，添加Converter.process(testValue)，这个testValue是你要return的变量<br />
ok，就这么简单^_^。。。</p>
<p>在网上找了一天没找到合理解决方法，用这个方法终于解决了。。</p>
<img src ="http://www.blogjava.net/algz/aggbug/201833.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2008-05-21 09:50 <a href="http://www.blogjava.net/algz/articles/201833.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate  HQL 语法 及相关的外键关联</title><link>http://www.blogjava.net/algz/articles/191835.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Thu, 10 Apr 2008 05:33:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/191835.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/191835.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/191835.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/191835.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/191835.html</trackback:ping><description><![CDATA[<div class="cnt"><span class="Apple-style-span" style="color: #339966; ">pa.equipmentaccount.id=?pa.equipmentaccount.idpa.equipmentaccount.id</span><a class="postTitle2" href="http://www.blogjava.net/myblog/archive/2006/07/07/56865.html"><font color="#56b6e9">HQL</font> </a><br />
<br />
例如对于TUser类<br />
<br />
1.实体查询<br />
<font style="background-color: #deb887">String hql = " from User"; </font><br />
<br />
执行这条语句会<span style="color: #339966">返回User</span>以及User子类的<span style="color: #339966">纪录</span>。<br />
<span style="color: #99cc00">注:&nbsp; 如果 TUser 类具有外键, 查询结果不会报错,但结果中的外键为空值,访问就报空指针错误!<br />
<span style="color: #000000">解决方法:&nbsp;&nbsp;select 别名.属性 from 类 as 别名. 没有别名.属性仍然报错!&nbsp; //此方法不一定能解决,但不会错.<br />
</span></span><br />
<br />
<font style="background-color: #deb887">hql = "from java.lang.Object"</font><br />
会返回数据库中所有库表的纪录。<br />
<br />
where 语句，as可以省略<br />
<font style="background-color: #deb887">hql = "from User as user where user.name='yyy'";&nbsp;&nbsp;&nbsp; //user.name为类的属性</font><br />
<br />
<font style="background-color: #deb887">hql = "from User user where user.name='yyy'";</font><br />
<br />
where子句中，我们可以通过比较运算符设定条件，如：<br />
=, &lt;&gt;, &gt;, &lt;, &gt;=, &lt;=, between XX and XX, not between, in (xx,xx), not in, is, like %XX% 等。<br />
<br />
2.属性查询<br />
<font style="background-color: #deb887"><span style="color: #000000"><font style="background-color: #deb887"><span style="background-color: #000000"><span style="color: #000000; background-color: #ffffff">(1)List list = session.createQuery("<span style="color: #993300">select user.name, user.age from User&nbsp; user</span>").list();<br />
<br />
还可以在HQL中动态构造对象实例的方法，将数据封装。<br />
(2)List list = session.createQuery("select new User(user.name, user.age) from TUser as user").list();<br />
<br />
Iterator it = list.iterator();<br />
while(it.hasNext() ) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; User user = (User)it.next();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(user.getName());<br />
}</span><br />
</span></font></span></font><font style="background-color: #deb887; "><font style="background-color: #ffffff">但是要注意这里的User对象只是对name和age属性的封装，其他状态均未赋值，所以不能用它来进行更新操作。<br />
</font><br />
<font style="background-color: #ffffff">也可以在HQL的Select子句中使用统计函数<br />
</font><font style="background-color: #ffffff"><span style="color: #993300"><font style="background-color: #ffffff">"select count(*) ,min(user.age) from User as user"<br />
</font></span><br />
也可以使用distinct关键字来删除重复纪录。<br />
<span style="color: #993300">select distinct user.name from User as user;</span><br />
<br />
3.实体的更新与删除<br />
<br />
hibernate 3中，提供了更灵活的方式(bulk(集体) delete/update)<br />
更新：<br />
&nbsp;&nbsp;&nbsp;&nbsp; Query query = session.createQuery("<span style="color: #993300">update User set age=18 where id=1</span>"); //age==User.age<br />
&nbsp;&nbsp;&nbsp;&nbsp; query.executeUpdate();<br />
删除：<br />
</font><font style="background-color: #000000; "><font style="background-color: #ffffff; " color="#000000">&nbsp;&nbsp;&nbsp;&nbsp; session.createQuery("<span style="color: #993300">delete User where age&gt;=18</span>");<br />
&nbsp;&nbsp;&nbsp;&nbsp; query.executeUpdate();<br />
<br />
<span style="color: #339966; ">注:不支持联表更新,即此处的User对象不能外键关联.因为更新操作不允许多表联接更新,只能更新一张表(SQL规定).</span><br />
<span style="color: #339966; ">如:</span></font></font></font><span class="Apple-style-span" style="background-color: #ffffff; color: #339966; ">update TbPartaccount pa set inoutflag=9 where pa.equipmentaccount.id=:id instr(pa.equipmentaccount.id,'Z')=1<br />
</span><span class="Apple-style-span" style="color: #339966; background-color: #ffffff; ">pa.equipmentaccount.inoutcode报错,
<div style="display: inline-block; "></div>
</span><span class="Apple-style-span" style="color: #339966; background-color: #ffffff; ">pa.equipmentaccount.id还是
<div style="display: inline-block; "></div>
</span><span class="Apple-style-span" style="color: #339966; background-color: #ffffff; ">TbPartaccount&nbsp;的字段(外键关联)<br /><br />
Hibernate 不能像我们想像的那样转换成以下方式,所以还是需要手工写子查询:</span><span class="Apple-style-span" style="color: #339966; background-color: #ffffff; ">
<div>
<div>UPDATE TB_PARTACCOUNT pa set PA.INOUTFLAG=9 where pa.equipmentaccount.id=? and pa.eaccount_code=(</div></div></span><span class="Apple-style-span" style="color: #339966; background-color: #ffffff; ">
<div>
<div>SELECT ea.id from TB_EQUIPMENTACCOUNT ea&nbsp;</div>
</div>
</span><span class="Apple-style-span" style="color: #339966; background-color: #ffffff; ">
<div>
<div>where ea.id=pa.EACCOUNT_CODE and INSTR(ea.inoutcode, 'Z')=1)</div>
</div>
</span><span class="Apple-style-span" style="color: #339966; background-color: #ffffff; ">
<div>
<div>而是转成以下形式并报异常:没有找到SET关键字:</div>
</div>
</span><span class="Apple-style-span" style="color: #339966; background-color: #ffffff; ">
<div>
<div>UPDATE TB_PARTACCOUNT pa set PA.INOUTFLAG=9 where&nbsp;<div style="display: inline-block; "></div></div>
</div>
</span><span class="Apple-style-span" style="color: #339966; background-color: #ffffff; ">pa.equipmentaccount.id=?</span><span class="Apple-style-span" style="color: #339966; background-color: #ffffff; ">&nbsp;and&nbsp;</span><span class="Apple-style-span" style="color: #339966; background-color: #ffffff; ">INSTR(pa.eaccount_code, 'Z')=1</span><span class="Apple-style-span" style="color: #339966; background-color: #ffffff; "><div>
<div>&nbsp;</div></div></span><span class="Apple-style-span" style="color: #339966; background-color: #ffffff; "><div>
<div>&nbsp;&nbsp;</div></div></span><font class="Apple-style-span" color="#339966"><br />
</font><span class="Apple-style-span" style="color: #339966; background-color: #ffffff; ">
<div>
<div>&nbsp;&nbsp;</div>
</div>
</span><font style="background-color: #deb887; "><font style="background-color: #000000"><font style="background-color: #ffffff" color="#000000">
<div>
<div></div>
</div>
</font></font></font><font style="background-color: #deb887; "><font style="background-color: #000000"><font style="background-color: #ffffff" color="#000000">
<div>
<div>
<div>
<div></div>
</div>
</div>
</div>
<br />
4.分组与排序<br />
Order by子句：<br />
&nbsp;&nbsp;&nbsp;&nbsp; from User user order by user.name, user.age desc<br />
Group by子句和Having子句<br />
&nbsp;&nbsp;&nbsp;&nbsp; "select count(user), user.age from User user group by user.age having count(user)&gt;10"<br />
<br />
5.参数邦定<br />
通过顺序占位符?来填充参数：<br />
1)hibernate 2 中通过session.find方法来填充<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session.find("from User user where user.name=?", "Erica", Hibernate.STRING);<br />
&nbsp;&nbsp; 多个参数的情况：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object[] args = new Object[] {"Erica", new Integer(20)};<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type[] types = new Type{Hibernate.STRING, Hibernate.INTEGER};<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session.find("from TUser user where user.name=? and user.age=?", args, types);<br />
<br />
2)<span style="color: #808000">通过Query接口进行参数填充</span>：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Query query = session.createQuery("from User user where user.name=? and user.age&gt;?");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; query.setString(0,"Erica");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; query.setInteger(1, 20);<br />
<br />
通过引用占位符来填充参数：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String hql = "from User where name=:name";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Query query = session.createQuery(hql);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; query.setParameter("name","Erica");<br />
<br />
甚至可以将查询条件封装为一个JavaBean<br />
class UserQuery {<br />
&nbsp;&nbsp;&nbsp;&nbsp; private String name;<br />
&nbsp;&nbsp;&nbsp;&nbsp; private Integer age;<br />
&nbsp;&nbsp;&nbsp;&nbsp; //getter and setter<br />
}<br />
String hql = "from TUser where name=:name and age=:age";<br />
Query query = session.createQuery(hql);<br />
UserQuery uq = new UserQuery();<br />
uq.setName("Erica");<br />
uq.setAge(new Integer(20));<br />
<br />
query.setProperties(uq); //会调用里面的getter?<br />
query.iterate();<br />
<br />
6.联合查询 <br />
(<span style="font-size: small"><span class="Apple-style-span" style="color: #4b4b4b; line-height: 17px; font-family: verdana; "><span style="font-size: x-small"><span style="font-size: x-small"><span style="font-size: x-small"><span style="font-size: x-small">org.hibernate.LazyInitializationException:&nbsp;<span style="color: #800000"><span style="color: #ff0000">could not initialize proxy - no Session</span></span></span></span></span></span></span></span> 异常,可能是HQL语句没有进行联表查询,产生访问的属性不存在.)<br />
&nbsp;&nbsp; User表: id, name<br />
&nbsp;&nbsp; Addresses表: user_id, addresses<br />
(1)自然联接(内联接):&nbsp; inner join [fetch]<br />
<span style="color: #808000">1.HQL: from User u inner join<span style="color: #339966">&nbsp;fetch </span>u.addresses <span style="color: #000000"><br />
</span></span>&nbsp;&nbsp; SQL: select * from User表 u inner join Addresses a on u.id=a.user_id //u.id=a.user_id在XML中已配置,所以可以省略.<br />
<span style="color: #000000">&nbsp;&nbsp; fetch: Addresses对象读出后,立即填充到User对象对应的外键(集合)中.<br />
<br />
</span><span style="color: #808000">2.HQL: from User u inner join<span style="color: #339966">&nbsp; </span>u.addresses&nbsp;</span><br />
&nbsp;&nbsp; 不加fetch,则返回的结果集中的每一条记录是一个Object数组,数组包括User和Addresses两个对象, 并且User对象.addresses集合已被Addresses对象自动填充.<br />
<br />
(2)左连接:&nbsp; left outer join [fetch]<br />
&nbsp;&nbsp;&nbsp; 同(1), 返回的结果不同而已.<br />
<br />
(3)右连接:&nbsp; right out join&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;fetch无效,因为User对象可能为NULL,无法进行填充,但返回结果里的记录是数组.<br />
<br />
(4)笛卡尔交集: full join (使用很少)&nbsp;<br />
&nbsp;&nbsp;&nbsp; 同(3), 返回结果不同而已.<br />
<br />
(5)笛卡尔集:&nbsp; 排列组合：form User, Address<br />
<br />
联合查询如有不懂, 详见SQL联合语句:<br />
SQL中的left outer join,inner join,right outer join用法<a href="http://www.blogjava.net/algz/articles/228219.html">:&nbsp;&nbsp; http://www.blogjava.net/algz/articles/228219.html</a><br />
SQL中的各种JOIN（inner join,full outer join,left join,right join,cross join ）<a href="http://www.blogjava.net/algz/articles/228218.html"><font color="#000000">:</font>http://www.blogjava.net/algz/articles/228218.html</a><br />
sql的left join 命令详解 <a href="http://www.blogjava.net/algz/articles/228220.html">: http://www.blogjava.net/algz/articles/228220.html</a><br />
</font></font></font></div><img src ="http://www.blogjava.net/algz/aggbug/191835.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2008-04-10 13:33 <a href="http://www.blogjava.net/algz/articles/191835.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>webapps JSF+Spring+Hibernate项目开发流程</title><link>http://www.blogjava.net/algz/articles/190077.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Tue, 01 Apr 2008 06:48:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/190077.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/190077.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/190077.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/190077.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/190077.html</trackback:ping><description><![CDATA[&lt;h:outputText value="主题：#{index.appinfo.maxdocsum} value里不能加入HTML代码但可以加入EL" /&gt;<br />
<br />
序.画流程图.<br />
<span style="color: #008000">一.创建数据库.</span><br />
注:<br />
1.数据库中设计INT(java.lang.Interger),&nbsp; VARCHAR(N)(java.lang.String),&nbsp; DATE(java.lang.Date)<br />
2.1:N的情况下, 数据库中设计外键(N方)和集合(一方).<br />
2.hibernate 返向工程.<br />
<br />
<span style="color: #008000">二.添加JSF, Spring,&nbsp;Hibernate 库引用.<br />
<span style="color: #000000">Spring 添加如下：</span><br />
</span><img height="98" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/addspring1.jpg" width="397" border="0" /><br />
<img height="95" alt="" src="http://www.blogjava.net/images/blogjava_net/algz/addspring2.jpg" width="394" border="0" /><br />
<br />
<span style="color: #008000">三. 为spring 配置 web.xml 和 faces-config.xml .</span><br />
(1)web.xml<br />
&nbsp;&lt;context-param&gt;<br />
&nbsp;&nbsp;&lt;param-name&gt;<span style="color: #339966">contextConfigLocation</span>&lt;/param-name&gt;<br />
&nbsp;&nbsp;&lt;param-value&gt;/WEB-INF/applicationContext.xml&lt;/param-value&gt;<br />
&nbsp;&lt;/context-param&gt;<br />
<br />
(2)web.xml<br />
&lt;listener&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;listener-class&gt;<span style="color: #339966">org.springframework.web.context.ContextLoaderListener</span>&lt;/listener-class&gt;<br />
&lt;/listener&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Servlet API 2.3以后<br />
或:<br />
&nbsp;&lt;servlet&gt;<br />
&nbsp;&nbsp;&lt;servlet-name&gt;context&lt;/servlet-name&gt;<br />
&nbsp;&nbsp;&lt;servlet-class&gt;org.springframework.web.context.ContextLoaderServlet&lt;/servlet-class&gt;<br />
&nbsp;&nbsp;&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;<br />
&nbsp;&lt;/servlet&gt;
<p><br />
(3)faces-config.xml<br />
&lt;application&gt;<br />
&lt;variable-resolver&gt;<span style="color: #339966">org.springframework.web.jsf.DelegatingVariableResolver</span>&lt;/variable-resolver&gt;<br />
&lt;/application&gt;<br />
<br />
(4)设置过滤器,解决乱码问题<br />
详见:<a href="http://www.blogjava.net/algz/articles/201833.html ">http://www.blogjava.net/algz/articles/201833.html </a>第二条<br />
<br />
以上配置完成后.<span style="color: #33cccc">JSF</span>就可以访问<span style="color: #33cccc">SPRING管理的BEAN</span>.<br />
<br />
<span style="color: #339966"><span style="color: #339966"><span style="color: #008000">四.spring+hiberante集成时,asm-2.2.3.jar与asm.jar冲突:</span><br />
</span></span><span>org.springframework.beans.factory.BeanCreationException:&nbsp;Error&nbsp;creating&nbsp;bean&nbsp;with&nbsp;name&nbsp;'SessionFactory'&nbsp;defined&nbsp;in&nbsp;<span class="keyword">class</span><span>&nbsp;path&nbsp;resource&nbsp;[applicationContext.xml]:&nbsp;Invocation&nbsp;of&nbsp;init&nbsp;method&nbsp;failed;&nbsp;nested&nbsp;exception&nbsp;is&nbsp;java.lang.NoSuchMethodError:&nbsp;org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V&nbsp;&nbsp;</span></span><br />
...<br />
Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V<br />
<br />
正确的解决方法:<br />
<span style="color: #000000">是到项目的发布文件夹\WEB-INF\lib下删除<span style="color: #339966">asm-2.2.3.jar</span>,不能用MyEclipse里删除.因为他在发布时仍没删除.</span><br />
<br />
<span style="color: #008000">五.创建进行分类的包.<br />
</span>com.dao(数据访问层), com.service(业务层), com.web(表示层)<br />
<br />
<span style="color: #008000">六.创建类.(完成MODEL层设计).&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; <br />
<span style="color: #000000">*****************************(<u>也可以利用MyEclipse反向ORM功能自动产生,<span style="color: #339966">但应注意自动配置引起的"类完全名"的错误</span></u>)*******************</span><br />
<br />
</span>&nbsp; (一)数据访问层(<span style="color: #008000">DAO</span>)开发:&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Spring 配置文件（附加）&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1)配置数据源&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <span style="color: #000000">&lt;</span><span style="color: #000000">bean&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">dataSource</span><span style="color: #000000">"</span> ...&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Myeclipse Hibernate自动反转工具自动配置<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (2)配置会话工厂&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000">&lt;</span><span style="color: #000000">bean&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">sessionFactory</span><span style="color: #000000">" ...&gt;&nbsp; //Myeclipse Hibernate自动反转工具自动配置<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(3)<span style="color: #000000"><span style="color: #000000"><span style="color: #000000">配置事务管理器</span>&nbsp; </span>&lt;bean id="transactionManager" ...&gt;<br />
</span></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (4)配置事务代理&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.blogjava.net/algz/articles/163236.html">www.blogjava.net/algz/articles/163236.html</a><br />
<span style="color: #339966">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808000">&nbsp;<span style="color: #000000">(5)数据访问层<span style="color: #808000">Bean</span>作为属性注入业务层<span style="color: #808000">Property</span>中. </span></span>(注:不要用NEW创建数据访问层对象,否则得不到ServletContext而报错.)<br />
</span>例:<br />
/**数据访问层Bean（Myeclipse Hibernate自动反转工具配置）*/<br />
&nbsp;&lt;bean id="<span style="color: #99cc00">userDao</span>" class="com.data.dao.impl.UserDaoImpl"&gt;<br />
&nbsp;&nbsp;&lt;property name="sessionFactory"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;ref local="sessionFactory" /&gt;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&lt;/bean&gt;<br />
<br />
&nbsp;/**业务层Bean（Myeclipse Spring配置文档中可以配置，但需先定义好相关类）*/<br />
&nbsp;&lt;bean id="<span style="color: #33cccc">userService</span>" class="com.model.service.impl.UserServiceImpl"&gt;<br />
&nbsp;&nbsp;&lt;property name="userDao"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;ref bean="<span style="color: #99cc00">userDao</span>" /&gt;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&lt;/bean&gt;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1. 创建&nbsp;<span style="color: #99cc00">数据访问层接口:&nbsp;&nbsp;&nbsp; </span><span style="color: #008080">必须创建</span>,详见:<a href="http://www.blogjava.net/algz/articles/262893.html">http://www.blogjava.net/algz/articles/262893.html</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public interface <span style="color: #99cc00">数据访问层接口 </span>{&nbsp;&nbsp; //在类已存在的情况下,添加其接口:Refactor(重构）-&gt;Extract Interfaces提取接口<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public String add...();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public String save...();<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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //update, delete, load<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 .创建<span style="color: #33cccc">数据访问层实现类</span>&nbsp;&nbsp;&nbsp; //<span style="color: #000000"><span style="color: #000000">ORM反向功能自动配置<br />
</span></span><span style="color: #339966">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000">&nbsp;public class </span><span style="color: #33cccc">数据访问层实现类</span> <span style="color: #000000">extends&nbsp;<span style="color: #339966">HibernateDaoSupport</span>&nbsp;implements </span><span style="color: #99cc00">数据访问层接口 </span></span>{<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;&nbsp;&nbsp;&nbsp;&nbsp; //getHibernateTemplate().save(user)<br />
&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;在实现类的方法(throw DataAccessException)中封装 getHibernateTemplate().save(user) 等Spring已封装的持久化方法.(注:如果使用Hibernate API 要用try{...}catch{...}自行处理导常.)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.注意事项:<span style="color: #3366ff">&nbsp;could not initialize proxy - no Session&nbsp;</span>异常,&nbsp; 可能是没有联表查询.详见<a href="http://www.blogjava.net/algz/articles/191835.html"><font color="#000000">: </font>http://www.blogjava.net/algz/articles/191835.html</a><br />
<br />
<br />
<span style="color: #000000"><span style="color: #000000">*****************************(<u>也可以利用MyEclipse反向ORM功能自动产生</u>)***********************************</span></span><br />
<br />
&nbsp;&nbsp;&nbsp;(二)业务逻辑层(<span style="color: #33cccc"><span style="color: #008000">Service</span></span>)开发:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.创建<span style="color: #99cc00">业务逻辑层接口</span>.&nbsp;<br />
package com.service;<br />
import com.dao.CheckDAO;<br />
public interface <span style="color: #99cc00">ICheckService </span>{<br />
&nbsp;&nbsp;&nbsp; public abstract CheckDAO getCheckDAO();<br />
&nbsp;&nbsp;&nbsp; public abstract void setCheckDAO(CheckDAO checkDAO);<br />
&nbsp;&nbsp;&nbsp; public abstract String searchCheck();<br />
}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.创建<span style="color: #33cccc">业务逻辑层实现类</span>&nbsp;<br />
<span style="color: #339966">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public class&nbsp;<span style="color: #33cccc">业务逻辑层实现类</span>&nbsp;implements <span style="color: #99cc00">业务逻辑层接口</span></span>.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在实现类中. 引用的数据访问层对象实例采用DI的设值方式注入<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; 在业务逻辑方法(throw DataAccessException)中,使用数据访问层对象实例来访问数据库.&nbsp;&nbsp;<br />
package com.service;<br />
import java.util.List;<br />
import org.json.simple.JSONArray;<br />
import org.json.simple.JSONObject;<br />
import com.dao.Check;<br />
import com.dao.CheckDAO;<br />
import com.dao.ICheckDAO;<br />
<br />
public class <span style="color: #33cccc">CheckService </span>implements <span style="color: #99cc00">ICheckService </span>{<br />
private CheckDAO checkDAO;</p>
<p>public CheckDAO getCheckDAO() {<br />
&nbsp;return checkDAO;<br />
}</p>
<p>public void setCheckDAO(CheckDAO checkDAO) {<br />
&nbsp;this.checkDAO = checkDAO;<br />
}<br />
<br />
public String searchCheck(){<br />
&nbsp;List&lt;Check&gt; l=checkDAO.findAll();<br />
&nbsp;JSONArray ja=new JSONArray();<br />
&nbsp;JSONObject jo=new JSONObject();<br />
for(Check c:l){<br />
//&nbsp;&nbsp;jo.put("department", c.getDepartment());<br />
//&nbsp;&nbsp;jo.put("checkid", c.getCheckid());<br />
//&nbsp;&nbsp;jo.put("nam", c.getNam());<br />
//&nbsp;&nbsp;jo.put("num", c.getNum());<br />
//&nbsp;&nbsp;jo.put("ondutytime", c.getOndutytime());<br />
//&nbsp;&nbsp;jo.put("offdutytime", c.getOffdutytime1());<br />
//&nbsp;&nbsp;jo.put("registerdate", c.getRegisterdate());<br />
//&nbsp;&nbsp;jo.put("overtime", c.getOvertime());<br />
//&nbsp;&nbsp;ja.add(jo.clone());<br />
//&nbsp;&nbsp;jo.clear();<br />
&nbsp;}<br />
&nbsp;&nbsp;return "";<br />
}</p>
<p>}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808000"><span style="color: #000000">3.数据</span><span style="color: #000000">访问层<span style="color: #808000">Bean</span>作为属性注入<span style="color: #33cccc">业务逻辑层实现类</span>的<span style="color: #808000">Property</span>中. </span></span>(注:不要用NEW创建数据访问层对象,否则得不到ServletContext而报错.)<br />
例:<br />
/**数据访问层Bean（Hibernate自动反转工具<span style="color: #008000">自动</span>配置）*/<br />
&nbsp;&lt;bean id="<span style="color: #99cc00">userDao</span>" class="com.data.dao.impl.UserDaoImpl"&gt;<br />
&nbsp;&nbsp;&lt;property name="sessionFactory"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;ref local="sessionFactory" /&gt;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&lt;/bean&gt;<br />
<br />
&nbsp;/**业务逻辑层Bean（Spring配置文档中<span style="color: #008000">手动</span>配置，但需先定义好相关类）*/<br />
&nbsp;&lt;bean id="<span style="color: #33cccc">userService</span>" class="com.model.service.impl.UserServiceImpl"&gt;<br />
&nbsp;&nbsp;&lt;property name="userDao"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;ref bean="<span style="color: #99cc00">userDao</span>" /&gt;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&lt;/bean&gt;<br />
<br />
<span style="color: #008000">&nbsp;&nbsp;&nbsp;(三).表示层开发<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">(1)在 faces-config.xml 中配置托管BEAN</span></span>.(实现<font color="#008000">控制层</font>层设计) <br />
<span style="color: #339966">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 业务层bean作为属性注入CONTROL层中.<br />
</p>
<p><span style="color: #000000"><br />
package com.web;</span><span style="color: #000000"><br />
import com.service.ICheckService;<br />
</span><span style="color: #000000"><br />
public class SearchAll {<br />
&nbsp;private <span style="color: #339966">ICheckService </span>searchService;<br />
&nbsp;private String searchData;</span></p>
<p><span style="color: #000000">&nbsp;public SearchAll() {<br />
&nbsp;}</span></p>
<p><span style="color: #000000">&nbsp;public <span style="color: #339966">ICheckService </span>getSearchService() {<br />
&nbsp;&nbsp;return searchService;<br />
&nbsp;}</span></p>
<p><span style="color: #000000">&nbsp;public void setSearchService(<span style="color: #339966">ICheckService </span>searchService) {<br />
&nbsp;&nbsp;this.searchService = searchService;<br />
&nbsp;}</span></p>
<p><span style="color: #000000">&nbsp;public String getSearchData() {<br />
&nbsp;&nbsp;searchData = searchService.searchCheck();<br />
&nbsp;&nbsp;return searchData;<br />
&nbsp;}</span></p>
<p><span style="color: #000000">&nbsp;public void setSearchData(String searchData) {<br />
&nbsp;&nbsp;this.searchData = searchData;<br />
&nbsp;}<br />
}</span><br />
<br />
<span style="color: #000000">&nbsp;&lt;managed-bean&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;managed-bean-name&gt;<span style="color: #3366ff">userBean</span>&lt;/managed-bean-name&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;managed-bean-class&gt;com.web.SearchAll&lt;/managed-bean-class&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;<br />
&nbsp;&nbsp; &nbsp;&lt;managed-property&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;property-name&gt;searchService&lt;/property-name&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt; <span style="color: #33cccc">#{userService}</span>&lt;/value&gt;&nbsp;&nbsp;&nbsp;<span style="color: #3366ff"><span style="color: #008080">&nbsp;//直接引用spring定义的bean</span><br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/managed-property&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;managed-property&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property-name&gt;searchData&lt;/property-name&gt;&nbsp;&nbsp;&nbsp; //页面中 userBean.name访问属性的数据<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;123&lt;/value&gt;&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;//属性默认值<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/managed-property&gt;<br />
&nbsp;&lt;/managed-bean&gt;</span><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">(2)Bean访问客户端传来的参数值<br />
</span>&nbsp;&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HttpServletRequest request=(HttpServletRequest)<span style="color: #008000">&nbsp;FacesContext</span>.<span style="color: #008000">getCurrentInstance</span>().<span style="color: #008000">getExternalContext</span>().<span style="color: #008000">getRequest</span>();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String s=request.<span style="color: #008000">getParameter</span>("webnam");</span><br />
<br />
</span><span style="color: #008000">七.页面设计</span>.(实现<span style="color: #008000">VIEW</span>层设计)&nbsp;<br />
<br />
index.faces：(共二行)<br />
<span style="color: #008000"><span style="color: #99cc00">&lt;%@ page language="java" pageEncoding="UTF-8"%&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//解决EXTJS&nbsp;接收数据中有中文出现"?????"等乱码<br />
&nbsp;${searchAll.searchData}&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;&nbsp;&nbsp;&nbsp;&nbsp;//解决JS接收数据.Ext.store({url：index.faces，...})</span></span><br />
<br />
&nbsp;&nbsp;&nbsp; 页面中访问Bean的二种方法<br />
<span style="color: #99cc00">&nbsp;&nbsp;&nbsp; <span style="color: #3366ff">方法一：直接在.faces页面中使用${<span style="color: #00ccff">userBean</span>.property} <strong>(推荐)&nbsp;</strong></span><strong>&nbsp;//property:get/set&nbsp;methord</strong></span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注,不能使用${<span style="color: #00ccff">userBean</span>.method}<br />
<span style="color: #339966"><br />
</span>&nbsp;&nbsp;&nbsp; &lt;f:view&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //JSF标签必须放在里面<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 名稱1: ${userBean.searchData}&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; //正确<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #339966">&nbsp; <span style="color: #008080">//#{userBean.searchData}&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><br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 名稱2: &lt;h:inputText value="#{userBean.searchData}"/&gt;&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;<span style="color: #008080">//&lt;h:inputText value="${userBean.searchData}"/&gt;&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;//&lt;input value="#{userBean.searchData}"/&gt;&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;<span style="color: #000000">名稱3:</span>&nbsp;<span style="color: #000000">&lt;input value="${userBean.searchData}"/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //正确,而且仍然可以使用JSF的ManagedBean</span><br />
</span>&nbsp;&nbsp;&nbsp; &lt;/f:view&gt;<br />
JSF表达式<span style="color: #339966">#{...}</span>只能用在JSF标签里，JSP表达式<span style="color: #339966">${...}</span>也只能用JSP页面里.<br />
JSP EL的语法格式:${...} 不能放在&lt;%...%&gt;中.&nbsp;<span style="color: #008000"><span style="color: #99cc00"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #3366ff">方法二： 在.JSP页面中,直接获取业务层定义的BEAN<br />
</span></span></span>&lt;%@ page import="javax.servlet.ServletContext" %&gt;<br />
&lt;%@ page import="org.springframework.context.ApplicationContext" %&gt;<br />
&lt;%@ page import="org.springframework.web.context.support.WebApplicationContextUtils" %&gt;<br />
<br />
&lt;% <br />
<span style="color: #339966">//获取ApplicationContext对象</span><br />
ServletContext&nbsp;&nbsp; servletContext&nbsp;&nbsp; =&nbsp;&nbsp; request.getSession().getServletContext();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
ApplicationContext&nbsp;&nbsp; ac&nbsp;&nbsp; =&nbsp;&nbsp; WebApplicationContextUtils.getWebApplicationContext(servletContext); </p>
<p><span style="color: #339966">//获取ApplicationContext.xml文件中定义的BEAN</span><br />
userServiceps=(userService)ac.getBean("userService");<br />
<br />
<span style="color: #339966">八.导出war</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File-&gt;Export-&gt;J2EE-&gt;WAR file</p>
<img src ="http://www.blogjava.net/algz/aggbug/190077.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2008-04-01 14:48 <a href="http://www.blogjava.net/algz/articles/190077.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>