﻿<?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-skyful</title><link>http://www.blogjava.net/skyful/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 11:27:12 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 11:27:12 GMT</pubDate><ttl>60</ttl><item><title>struts2 中checkboxlist全选</title><link>http://www.blogjava.net/skyful/archive/2007/04/06/108864.html</link><dc:creator>氓氓</dc:creator><author>氓氓</author><pubDate>Fri, 06 Apr 2007 02:13:00 GMT</pubDate><guid>http://www.blogjava.net/skyful/archive/2007/04/06/108864.html</guid><wfw:comment>http://www.blogjava.net/skyful/comments/108864.html</wfw:comment><comments>http://www.blogjava.net/skyful/archive/2007/04/06/108864.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/skyful/comments/commentRss/108864.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/skyful/services/trackbacks/108864.html</trackback:ping><description><![CDATA[&lt;body onLoad="page_onload();"&gt;<br><br>function page_onload(){<br>&nbsp;if(typeof(initPage)=='function'){<br>&nbsp;&nbsp;initPage();<br>&nbsp;}<br>}<br><br><br>function initPage(){<br>&nbsp;for(var i=0;i&lt;document.forms[0].elements.length;i++)<br>{<br>&nbsp;if (document.forms[0].elements[i].type=="checkbox" &amp;&amp; document.forms[0].elements[i].name.substring(0,22)=="hotelRoom.cardTypeItem"){<br>&nbsp;document.forms[0].elements[i].checked=true;<br>}<br>}<br>}
<img src ="http://www.blogjava.net/skyful/aggbug/108864.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/skyful/" target="_blank">氓氓</a> 2007-04-06 10:13 <a href="http://www.blogjava.net/skyful/archive/2007/04/06/108864.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Get Ready For Struts2(转)</title><link>http://www.blogjava.net/skyful/archive/2007/03/17/104468.html</link><dc:creator>氓氓</dc:creator><author>氓氓</author><pubDate>Sat, 17 Mar 2007 07:58:00 GMT</pubDate><guid>http://www.blogjava.net/skyful/archive/2007/03/17/104468.html</guid><wfw:comment>http://www.blogjava.net/skyful/comments/104468.html</wfw:comment><comments>http://www.blogjava.net/skyful/archive/2007/03/17/104468.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/skyful/comments/commentRss/104468.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/skyful/services/trackbacks/104468.html</trackback:ping><description><![CDATA[
		<form id="Form1" name="Form1" action="74353.html" method="post" _initialaction="74353.html">
				<div>Struts作为MVC 2的Web框架，自推出以来不断受到开发者的追捧，得到用广泛的应用。作为最成功的Web框架，Struts自然拥有众多的优点：</div>
				<div id="centercontent">
						<div class="post">
								<ul>
										<li>MVC 2模型的使用 
</li>
										<li>功能齐全的标志库（Tag Library） 
</li>
										<li>开放源代码 </li>
								</ul>
								<p>但是，所谓“金无赤金，人无完人”，Struts自身也有不少的缺点：</p>
								<ul>
										<li>需要编写的代码过多，容易引起“类爆炸” 
</li>
										<li>单元测试困难 </li>
								</ul>
								<p>这些缺点随着Web的发展越来越明显。这就促生了Struts 2.0，它的诞生能很好的解决上述问题。 好啦，废话就不多说了，现在就让我们感受一下的Struts 2.0的魅力吧。</p>
								<ol>
										<li>搭建开发和运行环境 
<ol><li>到Apache下载Struts 2.0包 
<p><img id="IMG1" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image001.png" /></p></li><li>打开Eclipse 3.2新建Web工程 
<p>点击菜单File\New\Project，出现如图1所示对话框<br /><img id="IMG2" alt="图1 新建工程对话框" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image003.png" /><br />图1 新建工程对话框<br />选择Web\Dynamic Web Project，点击“Next”，出现图2对话框 </p><p><img id="IMG3" alt="图2 新建动态Web工程对话框" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image005.png" /><br />图2 新建动态Web工程对话框<br />在“Project Name”中键入Struts2_HelloWorld，点击“New”，出现以下对话框 </p><p><img id="IMG4" alt="图3 新建服务器运行时对话框" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image007.png" /><br />图3 新建服务器运行时对话框<br />选择“Apache\Apache Tomat v5.5”，点击“Next”，出现以下对话框 </p><p><img id="IMG5" alt="图4新建服务器运行时对话框" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image009.png" /><br />图4新建服务器运行时对话框<br />点击“Finish”，关闭对话框。 </p></li><li>将Struts 2.0 lib下的jar文件加到工程的构建路径（build path） 
<p><img id="IMG6" alt="图5 Struts 2.0的lib目录" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image011.png" /><br />图5 Struts 2.0的lib目录<br />按ctr+a全选，复制，再转到Eclipse窗口，在“Project Explorer”子窗口中选中Struts2_HelloWorld\WebContent\WEB-INF\lib，然后粘贴。经过Eclipse自动刷新“Project Explorer”子窗口，刚才所粘贴的jar文件应该会出现在Struts2_HelloWorld\Java Resources: src\Libraries\Web App Libraries下，如图6所示： </p><p><img id="IMG7" alt="图6 Project Explorer子窗口" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image013.png" /><br />图6 Project Explorer子窗口<br /></p></li><li>打开web.xml文件，将其修改为以下代码： 
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">&lt;?</span><span style="COLOR: #ff00ff">xml version="1.0" encoding="ISO-8859-1"</span><span style="COLOR: #0000ff">?&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;!</span><span style="COLOR: #ff00ff">DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">web-app</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">display-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Struts 2.0 Hello World</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">display-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">filter</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">filter-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">struts2</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">filter-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">filter-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">org.apache.struts2.dispatcher.FilterDispatcher</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">filter-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">filter</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">filter-mapping</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">filter-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">struts2</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">filter-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">url-pattern</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">/*</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">url-pattern</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">filter-mapping</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">welcome-file-list</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">welcome-file</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">index.html</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">welcome-file</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">welcome-file-list</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">web-app</span><span style="COLOR: #0000ff">&gt;</span></div><p></p></li><li>新建struts.xml文件 
<p>右键点击，Struts2_HelloWorld\Java Resources: src，出现如图7所示菜单<br /><img id="IMG8" alt="图7 新建Other菜单" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image015.png" /><br />图7 新建Other菜单<br />点击“Other”，出现新建对话框，如图8所示 </p><p><img id="IMG9" alt="图8 新建对话框" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image017.png" /><br />图8 新建对话框<br />点击“Next”，出现新建文件对话框，如图9所示 </p><p><img id="IMG10" alt="图9 新建文件对话框" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image019.png" /><br />图9 新建文件对话框<br />在“File name”中键入sturts.xml，点击“Finish”，然后将struts.xml的内容修改为：<br /></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">&lt;!</span><span style="COLOR: #ff00ff">DOCTYPE struts PUBLIC<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        "http://struts.apache.org/dtds/struts-2.0.dtd"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">struts</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">include </span><span style="COLOR: #ff0000">file</span><span style="COLOR: #0000ff">="struts-default.xml"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">struts</span><span style="COLOR: #0000ff">&gt;</span></div><p></p></li><li>新建index.html文件 
<p>右键点击Struts2_HelloWorld\WebContent，出现如图10所示的菜单<br /><img id="IMG11" alt="图10 新建Other菜单" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image021.png" /><br />图10 新建Other菜单<br />点击“Other”，出现新建对话框，如图11所示 </p><p><img id="IMG12" alt="图11 新建对话框" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image023.png" /><br />图11 新建对话框<br />选择Web\HTML，点击“Next”出现如图12所示的对话框 </p><p><img id="IMG13" alt="图12 新建HTML页面对话框" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image025.png" /><br />图12 新建HTML页面对话框<br />在“File Name”中键入index.html，点击“Next”，出现如图13所示的对话框 </p><p><img id="IMG14" alt="图13 模板选择对话框" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image027.png" /><br />图13 模板选择对话框<br />点击“Finish”，将index.html的内容修改为以下内容：<br /></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">&lt;!</span><span style="COLOR: #ff00ff">DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">meta </span><span style="COLOR: #ff0000">http-equiv</span><span style="COLOR: #0000ff">="Content-Type"</span><span style="COLOR: #ff0000"> content</span><span style="COLOR: #0000ff">="text/html; charset=UTF-8"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Hello World</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">h3</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Hello World!</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">h3</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span></div><p></p></li><li>将应用程序打包到tomcat上 
<p>右键点击Struts_HelloWorld，出现如图14所示的菜单<br /><img id="IMG15" alt="图14 工程菜单" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image029.png" /><br />图14 工程菜单<br />点击“Export\WAR file”，出现如图15所示的对话框 </p><p><img id="IMG16" alt="图15 输出对话框" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image031.png" /><br />图15 输出对话框<br />选择“Web\WAR file”，点击“Next”，出现如图16所示的对话框 </p><p><img id="IMG17" alt="图16 输出路径对话框" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image033.png" /><br />图16 输出路径对话框<br />输入war文件的路径（如%tomcat%\webapps\Struts2_HelloWorld.war），点击“Finish”关闭对话框。 </p></li><li>启动tomcat，运行应用程序 
<p>打开你的Internet Explorer，键入http://localhost:8080/Struts2_HelloWorld/，窗口输出如图17所示<br /><img id="IMG18" alt="图17 Hello World窗口" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image035.png" /><br />图17 Hello World窗口<br /></p></li></ol></li>
										<li>第一个Struts 2.0应用程序——Hello World 
<ol><li>新建类包（package） 
<p>右键点击Struts2_HelloWorld\Java Resources: src，出现如图18所示菜单<br /><img id="IMG19" alt="图18 新建菜单" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image037.png" /><br />图18 新建菜单"<br />点击“New\Package”，出现如图19所示对话框<br /></p><p><img id="IMG20" alt="图19新建Java类包对话框" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image039.png" /><br />图19新建Java类包对话框<br />在“Name”键入tutorial，点击“Finish”关闭对话框。 </p></li><li>新建HelloWorld.java文件 
<p>右键点击Struts2_HelloWorld\Java Resources: src\tutorial，出现如图20所示菜单<br /><img id="IMG21" alt="图20 新建菜单" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image041.png" /><br />图20 新建菜单<br />点击“New\Class”，出现如图21所示对话框 </p><p><img id="IMG22" alt="图21 新建Java类对话框" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image043.png" /><br />图21 新建Java类对话框<br />在“Name”中键入HelloWorld，在“Superclass”中键入com.opensymphony.xwork2.ActionSupport，点击“Finish”关闭对话框。将HelloWorld.java的内容修改为：<br /></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> tutorial;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> com.opensymphony.xwork2.ActionSupport;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img id="Codehighlighter1_112_328_Open_Image" onclick="this.style.display='none'; Codehighlighter1_112_328_Open_Text.style.display='none'; Codehighlighter1_112_328_Closed_Image.style.display='inline'; Codehighlighter1_112_328_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_112_328_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_112_328_Closed_Text.style.display='none'; Codehighlighter1_112_328_Open_Image.style.display='inline'; Codehighlighter1_112_328_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> HelloWorld </span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000"> ActionSupport </span><span id="Codehighlighter1_112_328_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_112_328_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> String name;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    <br /><img id="Codehighlighter1_163_181_Open_Image" onclick="this.style.display='none'; Codehighlighter1_163_181_Open_Text.style.display='none'; Codehighlighter1_163_181_Closed_Image.style.display='inline'; Codehighlighter1_163_181_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_163_181_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_163_181_Closed_Text.style.display='none'; Codehighlighter1_163_181_Open_Image.style.display='inline'; Codehighlighter1_163_181_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> String getName() </span><span id="Codehighlighter1_163_181_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_163_181_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> name;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    <br /><img id="Codehighlighter1_219_242_Open_Image" onclick="this.style.display='none'; Codehighlighter1_219_242_Open_Text.style.display='none'; Codehighlighter1_219_242_Closed_Image.style.display='inline'; Codehighlighter1_219_242_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_219_242_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_219_242_Closed_Text.style.display='none'; Codehighlighter1_219_242_Open_Image.style.display='inline'; Codehighlighter1_219_242_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> setName(String name) </span><span id="Codehighlighter1_219_242_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_219_242_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.name </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> name;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    <br /><img id="Codehighlighter1_271_326_Open_Image" onclick="this.style.display='none'; Codehighlighter1_271_326_Open_Text.style.display='none'; Codehighlighter1_271_326_Closed_Image.style.display='inline'; Codehighlighter1_271_326_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_271_326_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_271_326_Closed_Text.style.display='none'; Codehighlighter1_271_326_Open_Image.style.display='inline'; Codehighlighter1_271_326_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> String execute() </span><span id="Codehighlighter1_271_326_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_271_326_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        name </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Hello, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> name </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">"</span><span style="COLOR: #000000">; <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> SUCCESS;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div><p></p></li><li>在struts.xml中添加action映射(mapping)<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">&lt;!</span><span style="COLOR: #ff00ff">DOCTYPE struts PUBLIC<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        "http://struts.apache.org/dtds/struts-2.0.dtd"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">struts</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">include </span><span style="COLOR: #ff0000">file</span><span style="COLOR: #0000ff">="struts-default.xml"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">package </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="tutorial"</span><span style="COLOR: #ff0000"> extends</span><span style="COLOR: #0000ff">="struts-default"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">action </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="HelloWorld"</span><span style="COLOR: #ff0000"> class</span><span style="COLOR: #0000ff">="tutorial.HelloWorld"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">result</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">HelloWorld.jsp</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">result</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">action</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">package</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">struts</span><span style="COLOR: #0000ff">&gt;</span></div><p></p></li><li>新建SayHello.jsp 
<p>参考“新建index.html文件”步骤，弹出如图22所示对话框<br /><img id="IMG23" alt="图22 新建对话框" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image045.png" /><br />图22 新建对话框<br />点击“Next”, 进入下一步，如图23所示 </p><p><img id="IMG24" alt="图23 新建JSP对话框" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image047.png" /><br />图23 新建JSP对话框<br />在“File name”键入SayHello.jsp，点击“Next”进入下一步，如图24所示 </p><p><img id="IMG25" alt="图24 模板选择对话框" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image049.png" /><br />图24 模板选择对话框<br />点击“Finish”关闭对话框，并将SayHello.jsp的内容修改为：<br /></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id="Codehighlighter1_2_47_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2_47_Open_Text.style.display='none'; Codehighlighter1_2_47_Closed_Image.style.display='inline'; Codehighlighter1_2_47_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_2_47_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2_47_Closed_Text.style.display='none'; Codehighlighter1_2_47_Open_Image.style.display='inline'; Codehighlighter1_2_47_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">&lt;%</span><span id="Codehighlighter1_2_47_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_2_47_Open_Text"><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">@ page contentType</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">text/html; charset=UTF-8</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"> </span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">%&gt;</span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_53_91_Open_Image" onclick="this.style.display='none'; Codehighlighter1_53_91_Open_Text.style.display='none'; Codehighlighter1_53_91_Closed_Image.style.display='inline'; Codehighlighter1_53_91_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_53_91_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_53_91_Closed_Text.style.display='none'; Codehighlighter1_53_91_Open_Image.style.display='inline'; Codehighlighter1_53_91_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">&lt;%</span><span id="Codehighlighter1_53_91_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_53_91_Open_Text"><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">@ taglib prefix</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">s</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"> uri</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">/struts-tags</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"> </span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">%&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;!</span><span style="COLOR: #ff00ff">DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Say Hello</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">h3</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Say "Hello" to: </span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">h3</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">s:form </span><span style="COLOR: #ff0000">action</span><span style="COLOR: #0000ff">="HelloWorld"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            Name: </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">s:textfield </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="name"</span><span style="COLOR: #ff0000"> </span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">s:submit </span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">s:form</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span></div><p></p></li><li>新建HelloWorld.jsp(请参考上一步)，HelloWorld.jsp的内容为：<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id="Codehighlighter1_2_47_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2_47_Open_Text.style.display='none'; Codehighlighter1_2_47_Closed_Image.style.display='inline'; Codehighlighter1_2_47_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_2_47_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2_47_Closed_Text.style.display='none'; Codehighlighter1_2_47_Open_Image.style.display='inline'; Codehighlighter1_2_47_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">&lt;%</span><span id="Codehighlighter1_2_47_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_2_47_Open_Text"><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">@ page contentType</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">text/html; charset=UTF-8</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"> </span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">%&gt;</span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_53_91_Open_Image" onclick="this.style.display='none'; Codehighlighter1_53_91_Open_Text.style.display='none'; Codehighlighter1_53_91_Closed_Image.style.display='inline'; Codehighlighter1_53_91_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_53_91_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_53_91_Closed_Text.style.display='none'; Codehighlighter1_53_91_Open_Image.style.display='inline'; Codehighlighter1_53_91_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">&lt;%</span><span id="Codehighlighter1_53_91_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_53_91_Open_Text"><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">@ taglib prefix</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">s</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"> uri</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">/struts-tags</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"> </span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">%&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;!</span><span style="COLOR: #ff00ff">DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Hello</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">h3</span><span style="COLOR: #0000ff">&gt;&lt;</span><span style="COLOR: #800000">s:property </span><span style="COLOR: #ff0000">value</span><span style="COLOR: #0000ff">="name"</span><span style="COLOR: #ff0000"> </span><span style="COLOR: #0000ff">/&gt;&lt;/</span><span style="COLOR: #800000">h3</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span></div><p></p></li><li>重新打包发布应用程序 
<p>先停止tomcat, 再将tomcat里webapps下的Struts2_HelloWorld.war和Struts2_HelloWorld文件夹删除，参照“将应用程序打包到tomcat上”重新发布应用程序。 </p></li><li>启动tomcat，运行测试 
<p>打开Internet Explorer，键入http://localhost:8080/Struts2_HelloWorld/SayHello.jsp，窗口输出如图25所示<br /><img id="IMG26" alt="图25 SayHello.jsp" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image051.png" /><br />图25 SayHello.jsp<br />在“Name”键入字符串（如World），点击Submit，转到HelloWorld.jsp页面，如图26所示 </p><p><img id="IMG27" alt="图26 HelloWorld.jsp" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image053.png" /><br />图26 HelloWorld.jsp<br /></p></li></ol></li>
										<li>单元测试Hello World 
<p>在文章开始的时候提及，单元测试困难是Struts一大缺点。现在让我们在体验一下，在Struts 2.0中是如何进行测试的。</p><ol><li>新建JUnit单元测试 
<p>右键点击Struts2_HelloWorld\Java Resources: src\tutorial，弹出如图27所示对话框<br /><img id="IMG28" alt="图27 新建菜单" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image055.png" /><br />图27 新建菜单<br />点击“Next\Other” </p><p><img id="IMG29" alt="图28 新建对话框" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image057.png" /><br />图28 新建对话框<br />选择“Java\JUnit\JUnit Test Case”，点击“Next” </p><p><img id="IMG30" alt="图29 新建JUnit 测试用例对话框" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image059.png" /><br />图29 新建JUnit 测试用例对话框<br />选择“New JUnit 4 test”，在“Name”中键入HelloWorldTest，在“Class under test”键入tutorial.HelloWorld，点击“Next” </p><p><img id="IMG31" alt="图30 选择方法对话框" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image061.png" /><br />图30 选择方法对话框<br />选中HelloWorld\execute方法，点击Finish。如果生成的HelloWorldTest.java文件的图标（Icon）出现红色交叉标志，请进行以下步骤添加JUnit 4的jar包。 </p><p>右键点击Struts2_HelloWorld，出现如图所示菜单。 <img id="IMG32" alt="图31 新建菜单" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image063.png" /><br />图31 新建菜单<br />点击“Build Path\Add Libararis”，弹出图32对话框 </p><p><img id="IMG33" alt="图32 添加库对话框" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image065.png" /><br />图32 添加库对话框<br />选中“JUnit”，点击“Next” </p><p><img id="IMG34" alt="图33 选择版本对话框" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image067.png" /><br />图33 选择版本对话框<br />选择“JUnit 4”，点击“Finish”关闭对话框，并将HelloWorldTest.java的内容修改为：<br /></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> tutorial;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> org.junit.Assert.assertTrue;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.junit.Test;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> com.opensymphony.xwork2.ActionSupport;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img id="Codehighlighter1_162_507_Open_Image" onclick="this.style.display='none'; Codehighlighter1_162_507_Open_Text.style.display='none'; Codehighlighter1_162_507_Closed_Image.style.display='inline'; Codehighlighter1_162_507_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_162_507_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_162_507_Closed_Text.style.display='none'; Codehighlighter1_162_507_Open_Image.style.display='inline'; Codehighlighter1_162_507_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> HelloWorldTest </span><span id="Codehighlighter1_162_507_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_162_507_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    @Test<br /><img id="Codehighlighter1_199_504_Open_Image" onclick="this.style.display='none'; Codehighlighter1_199_504_Open_Text.style.display='none'; Codehighlighter1_199_504_Closed_Image.style.display='inline'; Codehighlighter1_199_504_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_199_504_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_199_504_Closed_Text.style.display='none'; Codehighlighter1_199_504_Open_Image.style.display='inline'; Codehighlighter1_199_504_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> testExecute() </span><span id="Codehighlighter1_199_504_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_199_504_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        HelloWorld hello </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> HelloWorld();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        hello.setName(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">World</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        String result </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> hello.execute();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        assertTrue(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Expected a success result!</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, ActionSupport.SUCCESS.equals(result));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">final</span><span style="COLOR: #000000"> String msg </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Hello, World!</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        assertTrue(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Expected the default message!</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, msg.equals(hello.getName()));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div><p></p></li><li>运行单元测试 
<p>右键点击Struts2_HelloWorld\Java Resources: src\tutorial\HelloWorldTest.java，弹出如图34所示菜单<br /><img id="IMG35" alt="图34 运行为菜单" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image069.png" /><br />图34 运行为菜单<br />点击“Run As\JUnit Test”，出现JUnit子窗口如图35所示 </p><p><img id="IMG36" alt="图35 JUnit子窗口" src="http://www.blogjava.net/images/blogjava_net/max/16101/o_image071.png" /><br />图35 JUnit子窗口<br />图35的绿色矩形表示，所有单元测试通过。 </p></li></ol></li>
										<li>总结 
<p>上面的例子简单地演示了，Web 应用程序的基本操作，也即是，页面输入-&gt;Action处理-&gt;再输出到另外页面。Struts 2.0的简单易用、方便测试相信也会给大家留下不错的印象吧。我相信，Struts 2.0作为一个全新的Web架构，将会再次掀起Web开发的热潮。 不过，Struts 2.0还在测试中，正式版的发布还需些时日，所以文档方面可能有所欠缺。请大家继续留意<a href="/max">我的博客</a>，我会尽我所能为大家写更多关于Struts 2.0的文章。 </p></li>
								</ol>
						</div>
				</div>
		</form>
<img src ="http://www.blogjava.net/skyful/aggbug/104468.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/skyful/" target="_blank">氓氓</a> 2007-03-17 15:58 <a href="http://www.blogjava.net/skyful/archive/2007/03/17/104468.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TOMCAT 严重: Error filterStart </title><link>http://www.blogjava.net/skyful/archive/2007/03/13/103605.html</link><dc:creator>氓氓</dc:creator><author>氓氓</author><pubDate>Tue, 13 Mar 2007 09:53:00 GMT</pubDate><guid>http://www.blogjava.net/skyful/archive/2007/03/13/103605.html</guid><wfw:comment>http://www.blogjava.net/skyful/comments/103605.html</wfw:comment><comments>http://www.blogjava.net/skyful/archive/2007/03/13/103605.html#Feedback</comments><slash:comments>40</slash:comments><wfw:commentRss>http://www.blogjava.net/skyful/comments/commentRss/103605.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/skyful/services/trackbacks/103605.html</trackback:ping><description><![CDATA[
		<p>今天在eclipse＋myeclipse＋tomcat5 下，写个中文乱码转码filter，就报 <br />2007-3-13 17:43:46 org.apache.catalina.core.StandardContext start<br />严重: Error filterStart<br />2007-3-13 17:43:46 org.apache.catalina.core.StandardContext start<br />严重: Context startup failed due to previous errors<br /> 错误，所属项目也就启动不了，web。xml配置为 ：<br />&lt;filter&gt;<br />   &lt;filter-name&gt;CharsetEncodingFilter&lt;/filter-name&gt;<br />   &lt;filter-class&gt;com.changyou.filter.CharsetEncodingFilter&lt;/filter-class&gt;<br />   &lt;init-param&gt;<br />    &lt;param-name&gt;encoding&lt;/param-name&gt;<br />    &lt;param-value&gt;UTF-8&lt;/param-value&gt;<br />   &lt;/init-param&gt;<br />  &lt;/filter&gt; <br />  &lt;filter-mapping&gt;<br />   &lt;filter-name&gt;CharsetEncodingFilter&lt;/filter-name&gt;<br />   &lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br />  &lt;/filter-mapping&gt;<br />百思不得其解，问题出在哪里。<br />在google搜索，有人提出这么几个解决方案：<br />1、试着把tomat/server/lib目录下的commons-digester.jar,commons-beanutils.jar拷贝到common/lib/目录  －－经测试不行<br />2、里有个文章说tomcat里的bug,没有实现javax.servlet.Filter的Filter会报这样的错误，看来tomcat在启动就初始化Filter实例，但是在filter中又没有看到那段代码没有实现Filter，或者有代码在启动时没有实例化。－－没发现问题。<br /><br />这个问题网上也得不到解决方案，真是郁闷得紧<br />****************************************<br />终于解决了，原来是在web.xml初始化参数过程少初始化了一个，导致filter启动失败。大汗～～～～<br /><br />如果以后出现tomcat 严重: Error filterStart 错误，一般原因为：1、xml配置失误（如我） 2、filter中某段代码为实例化（这个情况是出现最多的，要仔细检查） 3、试着把tomat/server/lib目录下的commons-digester.jar,commons-beanutils.jar拷贝到common/lib/目录，有些包在部署是没有被包含<br /> </p>
<img src ="http://www.blogjava.net/skyful/aggbug/103605.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/skyful/" target="_blank">氓氓</a> 2007-03-13 17:53 <a href="http://www.blogjava.net/skyful/archive/2007/03/13/103605.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse汉化</title><link>http://www.blogjava.net/skyful/archive/2006/08/02/61333.html</link><dc:creator>氓氓</dc:creator><author>氓氓</author><pubDate>Wed, 02 Aug 2006 06:17:00 GMT</pubDate><guid>http://www.blogjava.net/skyful/archive/2006/08/02/61333.html</guid><wfw:comment>http://www.blogjava.net/skyful/comments/61333.html</wfw:comment><comments>http://www.blogjava.net/skyful/archive/2006/08/02/61333.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/skyful/comments/commentRss/61333.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/skyful/services/trackbacks/61333.html</trackback:ping><description><![CDATA[这里以Eclipse 3.1.2为例给介绍！<br /><br />一、下载 Eclipse 3.1.2 和语言包：<br />   <br />   Eclipse 3.1.2：<a href="http://eclipse.openwebeng.com/downloads/drops/R-3.1.2-200601181600/eclipse-SDK-3.1.2-win32.zip" target="_blank">点此处下载eclipse-SDK-3.1.2-win32.zip</a><br />　 <br />   语言包：<a href="http://download.eclipse.org/eclipse/downloads/drops/L-3.1.1_Language_Packs-200510051300/download.php?dropFile=NLpack1-eclipse-SDK-3.1.1a-win32.zip" target="_blank">点击下载NLpack1-eclipse-SDK-3.1.1a-win32.zip</a><br /><br />二、解压缩 eclipse-SDK-3.1.2-win32.zip 到 D:\eclipse（我放的路径，阁下可以自己选择）<br /><br />  在 eclipse 目录中新建一个名为 language 和 links 的目录，并将下载下来的语言包 NLpack1-eclipse-SDK-3.1.1a-win32.zip 解压缩到 language 目录中，然后在 links 目录里新建一个文本文件，命名为 language.link ，在文件里写入下列信息：path=D:\\eclipse\\language 其中 D 为阁下所使用的盘符，设置 path 指向 language 目录，保存即可。<br /><br />三，OK了，启动 Eclipse 3.1.2，已经是中文的了！<br /><br />其他版本同理，下载对应语言包即可，网址：http://download.eclipse.org/eclipse/downloads/ <img src ="http://www.blogjava.net/skyful/aggbug/61333.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/skyful/" target="_blank">氓氓</a> 2006-08-02 14:17 <a href="http://www.blogjava.net/skyful/archive/2006/08/02/61333.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java的时间处理(续&lt;计算Java时间&gt;)转</title><link>http://www.blogjava.net/skyful/archive/2006/06/02/49964.html</link><dc:creator>氓氓</dc:creator><author>氓氓</author><pubDate>Fri, 02 Jun 2006 08:18:00 GMT</pubDate><guid>http://www.blogjava.net/skyful/archive/2006/06/02/49964.html</guid><wfw:comment>http://www.blogjava.net/skyful/comments/49964.html</wfw:comment><comments>http://www.blogjava.net/skyful/archive/2006/06/02/49964.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/skyful/comments/commentRss/49964.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/skyful/services/trackbacks/49964.html</trackback:ping><description><![CDATA[学习在java中计算基本的时间段<br /><strong>概述</strong><br />如果你知道怎样在java中使用日期，那么使用时间和它才不多一样简单。这篇文章告诉你怎样把他们的差别联系起来。Robert Nielsen还告诉你怎样使用java来计算抵达航班和制造过程的时间。<br /><strong>作者：</strong>Robert Nielsen <br /><strong>翻译：</strong>Cocia Lin
<p> </p><p>这篇文章是在我发表过的<a href="http://www.javaworld.com/jw-12-2000/jw-1229-dates.html">&lt;计算Java时间&gt;</a>(译者:已经翻译完成)的基础上的。在这里，我列出那篇文章几个你应该熟悉得关键点。如果这几点你不太清楚，我建议你读一下&lt;计算Java时间&gt;，了解一下。 <br />1. Java计算时间依靠1970年1月1日开始的毫秒数.                                                                                                                                                               <br />2. Date类的构造函数Date()返回代表当前创建的时刻的对象。Date的方法getTime()返回一个long值在数值上等于1970年1月1日之前或之后的时刻。<br />3. DateFormat类用来转换Date到String,反之亦然。静态方法getDateInstance()返回DateFormat的缺省格式；getDateInstance(DateFormat.FIELD)返回指定的DateFormat对象格式。Format(Date d)方法返回String表示日期，例如＂January 1,2002.＂反过来，parse(String s)方法返回以参数字符串表示的Date对象。<br />4. format()方法返回的字符串格式根据不同地区的时间设置而有所不同。<br />5. GregorianCalendear类有两个重要的构造函数：GregorianCalerdar(),返回代表当前创建时间的对象；GregorianCalendar(int year,int month,int date)返回代表任意日期的对象。GregorianCalendar类的getTime()方法返回日期对象。Add(int field,int amount)方法通过加或减时间单位，象天数，月数或年数来计算日期。<br /><strong>GregorianCalendar和 时间</strong><br /> 两个GregorianCalendar的构造函数可以用来处理时间。前者创建一个表示日期，小时和分钟的对象：</p><p>GregorianCalendar(int year, int month, int date, int hour, int minute)<br /><br />第二个创建一个表示一个日期，小时，分钟和秒：</p><p>GregorianCalendar(int year, int month, int date, int hour, int minute, int second)<br /><br />首先，我应该提醒一下，每一个构造函数需要时间信息中的日期信息(年，月，日)。如果你想说2:30 p.m.,你必须指出日期。 <br />同样，每一个GregorianCalendar构造函数创建一个在时间上使用毫秒计算的对象。所以，如果你的构造函数只提供年，月，日参数，那小时，分钟，秒和毫秒的值将被置0.<br /><strong>DateFormat和时间</strong><br />你可以使用静态方法getDateTimeInstance(int dateStyle,int timeStyle)来建立DateFormat对象来显示时间和日期。这个方法表明你想要的日期和时间格式。如果你喜欢使用缺省格式，可以使用getDateTimeInstance()来代替它。<br />你可以使用静态方法getTimeInstance(int timeStyle)创建DateFormat对象来显示正确的时间。 <br />下面的程序示范了getDateTimeInstance()和getTimeInstance()怎样工作：</p><p>import java.util.*;<br />import java.text.*;</p><p>public class Apollo {<br />   public static void main(String[] args) {<br />      GregorianCalendar liftOffApollo11 = new GregorianCalendar(1969, Calendar.JULY, 16, 9, 32);<br />      Date d = liftOffApollo11.getTime();<br />      DateFormat df1 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);<br />      DateFormat df2 = DateFormat.getTimeInstance(DateFormat.SHORT);<br />      String s1 = df1.format(d);<br />      String s2 = df2.format(d);<br />      System.out.println(s1);<br />      System.out.println(s2);<br />   }<br />}  <br />        <br />在我的电脑上，上面的程序显示如下：<br /><br />Jul 16, 1969 9:32:00 AM<br />9:32 AM<br />(输出根据你所在得地区有所不同) <br /><br /><strong>计算时间间隔</strong><br />     你可能有时需要计算过去的时间；例如，给你开始和结束时间，你想知道制造流程的持续时间。一个出租公司按小时或天数出租东西，计算时间对他们也很有用。同样的，在金融界，经常需要计算重要的支付时间。<br />将问题复杂化，人类至少是用两种方法计算时间。你可以说一天已经结束当24小时过去了，或者日历从今天翻到明天。我们将讨论我们想到的这两种情况。<br /><strong>时间段，情况 1：严格时间单位</strong><br />在这种情况中，只有24小时过去，这天才过去，60分钟过去，这个小时才过去，60秒过去，这个分钟才过去，以此类推。在这个方法中，23小时的时间将被认为是0天。<br />使用这种方法计算时间段，你从计算过去的毫秒开始。为了做到这一点，首先转换每个日期为从1970年1月1日起得毫秒数。你可以从第二个毫秒值中减去第一个毫秒值。这里有一个简单的计算：</p><p>import java.util.*;</p><p>public class ElapsedMillis {<br />   public static void main(String[] args) {<br />      GregorianCalendar gc1 = new GregorianCalendar(1995, 11, 1, 3, 2, 1);<br />      GregorianCalendar gc2 = new GregorianCalendar(1995, 11, 1, 3, 2, 2);<br />      // the above two dates are one second apart<br />      Date d1 = gc1.getTime();<br />      Date d2 = gc2.getTime();<br />      long l1 = d1.getTime();<br />      long l2 = d2.getTime();<br />      long difference = l2 - l1;<br />      System.out.println("Elapsed milliseconds: " + difference);<br />   }<br />}     <br /><br />上面的程序打印如下： <br /><br />Elapsed milliseconds: 1000 <br /><br />这个程序也带来一点混淆。GregorianCalendar类的getTime()返回一个Date对象，Date类的getTime()方法返回从1970年1月1日到这个时间的long类型的毫秒数值。虽然他们的方法名字相同，返回值却不一样！<br />下面的程序片断用简单的整数除法转换毫秒到秒：</p><p>long milliseconds = 1999;<br />long seconds = 1999 / 1000;<br /><br />这种方法舍去小数部分转换毫秒到秒，所以1,999毫秒等于1秒，2,000毫秒等于2秒。<br />计算更大的单位-例如天数，小时和分钟-给定一个时间数值，可以使用下面的过程：<br />1. 计算最大的单位，减去这个数值的秒数<br />2. 计算第二大单位，减去这个数值的秒数<br />3. 重复操作直到只剩下秒<br />例如,如果你的时间的10,000秒，你想知道这个数值相应的是多少小时，多少分钟，多少秒，你从最大的单位开始：小时。10,000除以3600（一个小时的秒数）得到小时数。使用整数除法，答案是2小时（整数除法中小数舍去）计算剩下的秒数，10,000-(3,600 x 2) = 2,800秒。所以你有2小时和2,800秒。<br />将2,800秒转换成分钟，2,800除以60。使用整数除法，答案是46。2,800 - (60 x 46) = 40秒。最后答案是2小时，46分，40秒。<br />下面的Java程序使用上面的计算方法：</p><p>import java.util.*;</p><p>public class Elapsed1 {<br />   public void calcHMS(int timeInSeconds) {<br />      int hours, minutes, seconds;<br />      hours = timeInSeconds / 3600;<br />      timeInSeconds = timeInSeconds - (hours * 3600);<br />      minutes = timeInSeconds / 60;<br />      timeInSeconds = timeInSeconds - (minutes * 60);<br />      seconds = timeInSeconds;<br />      System.out.println(hours + " hour(s) " + minutes + " minute(s) " + seconds + " second(s)");<br />   }</p><p>   public static void main(String[] args) {<br />      Elapsed1 elap = new Elapsed1();<br />      elap.calcHMS(10000);<br />   }<br />} <br /><br />输出结果如下：<br /><br />2 hour(s) 46 minute(s) 40 second(s) <br /><br />上面的程序甚至在时间少于一个小时也可以正确的计算小时数。例如，你用上面的程序计算1,000秒，输出入下： <br />0 hour(s) 16 minute(s) 40 second(s) <br />举一个现实世界的例子，下面的程序计算阿波罗11飞到月球使用得时间：</p><p>import java.util.*;</p><p>public class LunarLanding {</p><p>   public long getElapsedSeconds(GregorianCalendar gc1, GregorianCalendar gc2) {<br />      Date d1 = gc1.getTime();<br />      Date d2 = gc2.getTime();<br />      long l1 = d1.getTime();<br />      long l2 = d2.getTime();<br />      long difference = Math.abs(l2 - l1);<br />      return difference / 1000;<br />   }</p><p>   public void calcHM(long timeInSeconds) {<br />      long hours, minutes, seconds;<br />      hours = timeInSeconds / 3600;<br />      timeInSeconds = timeInSeconds - (hours * 3600);<br />      minutes = timeInSeconds / 60;<br />      System.out.println(hours + " hour(s) " + minutes + " minute(s)" );<br />   }</p><p>   public static void main(String[] args) {<br />      GregorianCalendar lunarLanding = new GregorianCalendar(1969, Calendar.JULY, 20, 16, 17);<br />      GregorianCalendar lunarDeparture = new GregorianCalendar(1969, Calendar.JULY, 21, 13, 54);<br />      GregorianCalendar startEVA = new GregorianCalendar(1969, Calendar.JULY, 20, 22, 56);<br />      GregorianCalendar endEVA = new GregorianCalendar(1969, Calendar.JULY, 21, 1, 9);</p><p>      LunarLanding apollo = new LunarLanding();</p><p>      long eva = apollo.getElapsedSeconds(startEVA, endEVA);<br />      System.out.print("EVA duration = ");<br />      apollo.calcHM(eva);</p><p>      long lunarStay = apollo.getElapsedSeconds(lunarLanding, lunarDeparture);<br />      System.out.print("Lunar stay = ");<br />      apollo.calcHM(lunarStay);<br />   }<br />}          <br /><br />上面程序输出如下：<br /><br />EVA duration = 2 hour(s) 13 minute(s)<br />Lunar stay = 21 hour(s) 37 minute(s) <br /><br />目前为止，我们计算的基础公式是这样的：1分钟=60秒，1小时=60分，1天=24小时。<br />"1个月=？天，1年=？天"怎么办？<br />月份的天数有28，29，30，31；一年可以是365或366天。因此，当你试图计算严格单位的月份和年时，问题就产生了。例如，如果你使用月份的平均天数（近似30.4375），并且计算下面的时间间隔:<br /><br />* July 1, 2:00 a.m. to July 31, 10:00 p.m. <br />* February 1, 2:00 a.m. to February 29, 10:00 p.m. <br /><br />第一个计算结果是1个月；第二个结果是0个月！<br />所以，在计算严格单位时间的月份和年份是要想好。<br /><strong>时间段，情况 2:时间单位变化<br /></strong>时间单位的变化相当的简单：如果你要统计天数，你可以简单的统计日期变化次数。例如，如果某事15日开始，17日结束，经过2天。（日期先是便到16，再到17）同样的，一个步骤下午3：25开始，4：10 p.m结束，历时1个小时，因为小时数值变了一次（从3到4）。<br />图书馆经常使用这种习惯计算时间。例如，如果你从图书馆接一本书，我不能占有这本书最少24小时，会认为图书馆这样才给你算一天。而是，我的账号上记录我借书的日期。日期以变成下一天，我就已经结这本书一天了，即使总计不足24小时。<br />当使用单位的变化来计算时间段，通常感觉计算的时间没有多于一个时间单位。例如，如果9:00 p.m.我借了一本图书馆的书，第二天中午还回去，我能算出我借了这本书一天了。可是，有一种感觉在问："1天和几个小时呢？"这本说总计借出15个小时，答案是一天还差9个小时呢？因此，这篇文章里，我将以一个时间单位变化计算时间。<br /><strong>单位变化的时间算法</strong><br /> 这是你怎样计算两个日期的时间变化：<br />1. 制作两个日期的拷贝。Close()方法能制作拷贝。 <br />2. 使用日期拷贝，将所有的小于时间单位变化的部分设置成它的最小单位。例如，如果计算天数，那么将小时，分钟，秒和毫秒设置成0。这种情况中，使用clear()方法将时间值设置称他们各自的最小值。<br />3. 取出较早的日期，将你要计算的单位加1，重复直到两个日期相等。你加1的次数就是答案。可以使用before()和after()方法，他们返回boolean值，来判断是否一个日期在另一个日期之前或之后。<br />下面的类的方法用来计算天数和月数。</p><p>import java.util.*;</p><p>public class ElapsedTime {</p><p>   public int getDays(GregorianCalendar g1, GregorianCalendar g2) {<br />      int elapsed = 0;<br />      GregorianCalendar gc1, gc2;</p><p>      if (g2.after(g1)) {<br />         gc2 = (GregorianCalendar) g2.clone();<br />         gc1 = (GregorianCalendar) g1.clone();<br />      }<br />      else   {<br />         gc2 = (GregorianCalendar) g1.clone();<br />         gc1 = (GregorianCalendar) g2.clone();<br />      }</p><p>      gc1.clear(Calendar.MILLISECOND);<br />      gc1.clear(Calendar.SECOND);<br />      gc1.clear(Calendar.MINUTE);<br />      gc1.clear(Calendar.HOUR_OF_DAY);</p><p>      gc2.clear(Calendar.MILLISECOND);<br />      gc2.clear(Calendar.SECOND);<br />      gc2.clear(Calendar.MINUTE);<br />      gc2.clear(Calendar.HOUR_OF_DAY);</p><p>      while ( gc1.before(gc2) ) {<br />         gc1.add(Calendar.DATE, 1);<br />         elapsed++;<br />      }<br />      return elapsed;<br />   }</p><p>   public int getMonths(GregorianCalendar g1, GregorianCalendar g2) {<br />      int elapsed = 0;<br />      GregorianCalendar gc1, gc2;</p><p>      if (g2.after(g1)) {<br />         gc2 = (GregorianCalendar) g2.clone();<br />         gc1 = (GregorianCalendar) g1.clone();<br />      }<br />      else   {<br />         gc2 = (GregorianCalendar) g1.clone();<br />         gc1 = (GregorianCalendar) g2.clone();<br />      }</p><p>      gc1.clear(Calendar.MILLISECOND);<br />      gc1.clear(Calendar.SECOND);<br />      gc1.clear(Calendar.MINUTE);<br />      gc1.clear(Calendar.HOUR_OF_DAY);<br />      gc1.clear(Calendar.DATE);</p><p>      gc2.clear(Calendar.MILLISECOND);<br />      gc2.clear(Calendar.SECOND);<br />      gc2.clear(Calendar.MINUTE);<br />      gc2.clear(Calendar.HOUR_OF_DAY);<br />      gc2.clear(Calendar.DATE);</p><p>      while ( gc1.before(gc2) ) {<br />         gc1.add(Calendar.MONTH, 1);<br />         elapsed++;<br />      }<br />      return elapsed;<br />   }<br />}<br /><br />你可以在上面的类中补充另外的方法来处理小时和分钟。同样，计算时间段的算法能更高效一些，尤其是时间相隔很长。可是，作为介绍目的，这个算法有短小和简单的优势。<br />下面的例子使用ElapsedTime类来计算两个日期之间的天使，而后是月数：</p><p>import java.util.*;</p><p>public class Example {<br />   public static void main(String[] args) {<br />      GregorianCalendar gc1 = new GregorianCalendar(2001, Calendar.DECEMBER, 30);<br />      GregorianCalendar gc2 = new GregorianCalendar(2002, Calendar.FEBRUARY, 1);</p><p>      ElapsedTime et = new ElapsedTime();<br />      int days = et.getDays(gc1, gc2);<br />      int months = et.getMonths(gc1, gc2);</p><p>      System.out.println("Days = " + days);<br />      System.out.println("Months = " + months);<br />   }<br />}<br /><br />当计算时，上面的程序可能有用，例如，最近的航班。它显示下面的输出： <br /><br />Days = 33<br />Months = 2 <br /><br />(OK,关于航班的计算有些夸张；这个天数算法很适合像图书馆借书这样的应用，你看到了她怎样工作) <br /><strong>告诫<br /></strong>在进行时间工作时要谨慎：你看到的时间段的例子，你精确仔细的考虑非常重要。本文介绍了两种通常计算时间段的想法，但是人们能想到的时间段的计算方法仅仅受到人类想象力的限制。<br />所以，当写一个Java程序的时候，确信你的精确度能让使用和以来这些程序的人满意。同样，彻底的测试程序对处理时间的程序非重重要。<br /><strong>总结<br /></strong>本文是在我的前一篇文章 Java时间计算介绍怎样使用GregorianCalendar 和 DateFormat类处理时间问题的基础上的。你已经看到了两种方法来思考时间段问题和两种相应的途径使用Java来处理时间问题。这里提供的信息，很基础，提供给你一个在Java中处理时间问题的有力工具。</p><p><strong>关于作者</strong><br /> Robert Nielsen是SCJP。他拥有硕士学位，专攻计算机教育，并且在计算机领域执教多年。他也在各样的杂志上发表过很多计算机相关的文章。<br /><strong>关于译者<br /></strong>Cocia Lin(<a href="mailto:cocia@163.com">cocia@163.com</a>)是程序员。它拥有学士学位，现在专攻Java相关技术，刚刚开始在计算机领域折腾。</p><p> </p><br /><div style="FONT-SIZE: 14px; LINE-HEIGHT: 25px"><strong>作者Blog：</strong><a id="ArticleContent1_ArticleContent1_AuthorBlogLink" href="http://blog.csdn.net/cocia/" target="_blank">http://blog.csdn.net/cocia/</a></div><img src ="http://www.blogjava.net/skyful/aggbug/49964.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/skyful/" target="_blank">氓氓</a> 2006-06-02 16:18 <a href="http://www.blogjava.net/skyful/archive/2006/06/02/49964.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript 取百分比四舍五入</title><link>http://www.blogjava.net/skyful/archive/2006/05/19/47080.html</link><dc:creator>氓氓</dc:creator><author>氓氓</author><pubDate>Fri, 19 May 2006 08:44:00 GMT</pubDate><guid>http://www.blogjava.net/skyful/archive/2006/05/19/47080.html</guid><wfw:comment>http://www.blogjava.net/skyful/comments/47080.html</wfw:comment><comments>http://www.blogjava.net/skyful/archive/2006/05/19/47080.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/skyful/comments/commentRss/47080.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/skyful/services/trackbacks/47080.html</trackback:ping><description><![CDATA[
		<p>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""<a href="http://www.w3.org/TR/html4/loose.dtd">http://www.w3.org/TR/html4/loose.dtd</a>"&gt;<br />&lt;html&gt;<br />&lt;head&gt;<br />&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312"&gt;<br />&lt;script language="javascript"&gt;<br /> function roundFun(numberRound,roundDigit) //四舍五入，保留位数为roundDigit ,供计算时用</p>
		<p>  {<br />   if (numberRound&gt;=0)<br />   {<br />   var tempNumber = parseInt((numberRound * Math.pow(10,roundDigit)+0.5))/Math.pow(10,roundDigit);<br />   return tempNumber;<br />  }<br />  else <br />   {<br />   numberRound1=-numberRound<br />   var tempNumber = parseInt((numberRound1 * Math.pow(10,roundDigit)+0.5))/Math.pow(10,roundDigit);<br />   return -tempNumber;<br />  }</p>
		<p>     }</p>
		<p>&lt;/script&gt;<br />&lt;title&gt;Test&lt;/title&gt;<br />&lt;/head&gt;</p>
		<p>&lt;form name="form1"&gt;<br />&lt;input name="num1" type="text" id="num1" maxlength="10"&gt;<br />&lt;input type="button" name="Submit" value="Click Me" onclick="javascript:this.form.num1.value=roundFun(this.form.num1.value,2)"&gt;<br />&lt;/form&gt;</p>
		<p>&lt;/body&gt;<br />&lt;/html&gt;</p>
		<p> </p>
<img src ="http://www.blogjava.net/skyful/aggbug/47080.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/skyful/" target="_blank">氓氓</a> 2006-05-19 16:44 <a href="http://www.blogjava.net/skyful/archive/2006/05/19/47080.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp中的时间操作</title><link>http://www.blogjava.net/skyful/archive/2006/04/29/43962.html</link><dc:creator>氓氓</dc:creator><author>氓氓</author><pubDate>Sat, 29 Apr 2006 03:05:00 GMT</pubDate><guid>http://www.blogjava.net/skyful/archive/2006/04/29/43962.html</guid><wfw:comment>http://www.blogjava.net/skyful/comments/43962.html</wfw:comment><comments>http://www.blogjava.net/skyful/archive/2006/04/29/43962.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/skyful/comments/commentRss/43962.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/skyful/services/trackbacks/43962.html</trackback:ping><description><![CDATA[
		<table width="90%" align="center" border="0">
				<tbody>
						<tr>
								<td class="text9pt">
										<table align="right" border="0">
												<tbody>
														<tr>
																<td width="100%" height="10">
																		<script language="javascript" src="http://usms.tom.com/wlqy_flash.js?tomuserid=9247">
																		</script>
																</td>
														</tr>
												</tbody>
										</table>经常看见jsp版里有人问时间操作的问题，这些问题一般包括：取当前时间，把一个指定的字符串时间转化成时间类型，求两个时间之间的天数，求一段时间以前的时间，求一段时间以后的时间，在这里就把这些问题汇总一下。<br />&lt;%@  page  contentType="text/html;charset=gb2312"%&gt;<br />&lt;%@ page import="java.text.*"%&gt;<br />&lt;%@ page import="java.util.*"%&gt;<br />&lt;%<br />//字符串转化成时间类型（字符串可以是任意类型，只要和SimpleDateFormat中的格式一致即可）<br />java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("M/dd/yyyy hh:mm:ss a",java.util.Locale.US);<br />java.util.Date d = sdf.parse("5/13/2003 10:31:37 AM");  <br />out.println(d);<br />out.println("&lt;br&gt;");<br />SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");<br />String mDateTime1=formatter.format(d);<br />out.println(mDateTime1);<br />out.println("&lt;br&gt;");<br />out.println(d.getTime());<br />out.println("&lt;br&gt;");<br />//当前时间<br />Calendar cal  = Calendar.getInstance();<br />//  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss");<br />SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss G E D F w W a E F");<br />String mDateTime=formatter.format(cal.getTime());<br />out.println(mDateTime);<br />out.println("&lt;br&gt;");<br />//1年前日期<br />java.util.Date myDate=new java.util.Date();  <br />long myTime=(myDate.getTime()/1000)-60*60*24*365;<br />myDate.setTime(myTime*1000);<br />String mDate=formatter.format(myDate);<br />out.println(mDate);<br />out.println("&lt;br&gt;");<br />//明天日期<br />myDate=new java.util.Date(); <br />myTime=(myDate.getTime()/1000)+60*60*24;<br />myDate.setTime(myTime*1000);<br />mDate=formatter.format(myDate);<br />out.println(mDate);<br />out.println("&lt;br&gt;");<br />//两个时间之间的天数<br />SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");<br />java.util.Date date= myFormatter.parse("2003-05-1"); <br />java.util.Date mydate= myFormatter.parse("1899-12-30");<br />long  day=(date.getTime()-mydate.getTime())/(24*60*60*1000);<br />out.println(day);<br />out.println("&lt;br&gt;");<br />//加半小时<br />SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");<br />java.util.Date date1 = format.parse("2002-02-28 23:16:00");<br />long Time=(date1.getTime()/1000)+60*30;<br />date1.setTime(Time*1000);<br />String mydate1=formatter.format(date1);<br />out.println(mydate1);<br />out.println("&lt;br&gt;");<br />//年月周求日期<br />SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM F E");<br />java.util.Date date2= formatter2.parse("2003-05 5 星期五"); <br />SimpleDateFormat formatter3 = new SimpleDateFormat("yyyy-MM-dd");<br />String mydate2=formatter3.format(date2);<br />out.println(mydate2);<br />out.println("&lt;br&gt;");<br />//求是星期几<br />mydate= myFormatter.parse("2001-1-1");<br />SimpleDateFormat formatter4 = new SimpleDateFormat("E");<br />String mydate3=formatter4.format(mydate);<br />out.println(mydate3);<br />out.println("&lt;br&gt;");<br />%&gt; </td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.blogjava.net/skyful/aggbug/43962.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/skyful/" target="_blank">氓氓</a> 2006-04-29 11:05 <a href="http://www.blogjava.net/skyful/archive/2006/04/29/43962.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE to_date()与24小时制表示法及mm分钟的显示</title><link>http://www.blogjava.net/skyful/archive/2006/04/29/43955.html</link><dc:creator>氓氓</dc:creator><author>氓氓</author><pubDate>Sat, 29 Apr 2006 02:31:00 GMT</pubDate><guid>http://www.blogjava.net/skyful/archive/2006/04/29/43955.html</guid><wfw:comment>http://www.blogjava.net/skyful/comments/43955.html</wfw:comment><comments>http://www.blogjava.net/skyful/archive/2006/04/29/43955.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/skyful/comments/commentRss/43955.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/skyful/services/trackbacks/43955.html</trackback:ping><description><![CDATA[一、在使用Oracle的to_date函数来做日期转换时，很多Java程序员也许会和我一样，直觉的采用“yyyy-MM-dd HH:mm:ss”的格式作为格式进行转换，但是在Oracle中会引起错误：“ORA 01810 格式代码出现两次”。<br />如：select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') from dual;<br />原因是SQL中不区分大小写，MM和mm被认为是相同的格式代码，所以Oracle的SQL采用了mi代替分钟。<br />select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual;<br /><br />二、另要以24小时的形式显示出来要用HH24<br />select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;//mi是分钟<br />select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;//mm会显示月份<br /><img src ="http://www.blogjava.net/skyful/aggbug/43955.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/skyful/" target="_blank">氓氓</a> 2006-04-29 10:31 <a href="http://www.blogjava.net/skyful/archive/2006/04/29/43955.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp获取系统时间</title><link>http://www.blogjava.net/skyful/archive/2006/04/27/43563.html</link><dc:creator>氓氓</dc:creator><author>氓氓</author><pubDate>Thu, 27 Apr 2006 07:04:00 GMT</pubDate><guid>http://www.blogjava.net/skyful/archive/2006/04/27/43563.html</guid><wfw:comment>http://www.blogjava.net/skyful/comments/43563.html</wfw:comment><comments>http://www.blogjava.net/skyful/archive/2006/04/27/43563.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/skyful/comments/commentRss/43563.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/skyful/services/trackbacks/43563.html</trackback:ping><description><![CDATA[&lt;%@page import=<font class="java-string">"java.sql.*,java.io.*,java.util.*,java.text.*"</font> contentType=<font class="java-string">"text/html;charset=Big5"</font> %&gt;<br />&lt;%<br />   SimpleDateFormat setDateFormat = <font class="java-reserved_word"><b>new</b></font> SimpleDateFormat(<font class="java-string">"yyyy/MM/dd HH:mm:ss"</font>);<br />   <font class="java-comment">/* 時：分：秒  HH:mm:ss  HH : 23小時制 (0-23)<br />                            kk : 24小時制 (1-24)<br />                            hh : 12小時制 (1-12)<br />                            KK : 11小時制 (0-11)*/</font><br />   String temp = setDateFormat.format(Calendar.getInstance().getTime());<br />%&gt;<img src ="http://www.blogjava.net/skyful/aggbug/43563.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/skyful/" target="_blank">氓氓</a> 2006-04-27 15:04 <a href="http://www.blogjava.net/skyful/archive/2006/04/27/43563.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp中文字符转换函数</title><link>http://www.blogjava.net/skyful/archive/2006/04/27/43516.html</link><dc:creator>氓氓</dc:creator><author>氓氓</author><pubDate>Thu, 27 Apr 2006 03:35:00 GMT</pubDate><guid>http://www.blogjava.net/skyful/archive/2006/04/27/43516.html</guid><wfw:comment>http://www.blogjava.net/skyful/comments/43516.html</wfw:comment><comments>http://www.blogjava.net/skyful/archive/2006/04/27/43516.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/skyful/comments/commentRss/43516.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/skyful/services/trackbacks/43516.html</trackback:ping><description><![CDATA[
		<p>public class MyChinese {<br />  public static String Decode(String s) {<br />    try {<br />      return new String(s.getBytes("ISO8859_1"), "gb2312");<br />    }<br />    catch (Exception e) {<br />      return s;<br />    }<br />  }</p>
		<p>  public static String Encode(String s) {<br />    try {<br />      return new String(s.getBytes("gb2312"), "ISO8859_1");<br />    }<br />    catch (Exception e) {<br />      return s;<br />    }<br />  }</p>
		<p>}</p>
<img src ="http://www.blogjava.net/skyful/aggbug/43516.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/skyful/" target="_blank">氓氓</a> 2006-04-27 11:35 <a href="http://www.blogjava.net/skyful/archive/2006/04/27/43516.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>