?? struts 2與ajax(第一部分) - max on java - blogjava.htm
字號:
style="COLOR: #000000"> title;<BR><IMG
src="Struts 2與AJAX(第一部分) - Max On Java - BlogJava.files/ExpandedSubBlockEnd.gif"
align=top> }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG
src="Struts 2與AJAX(第一部分) - Max On Java - BlogJava.files/InBlock.gif"
align=top><BR><IMG
src="Struts 2與AJAX(第一部分) - Max On Java - BlogJava.files/InBlock.gif" align=top>
@Override<BR><IMG id=Codehighlighter1_990_1266_Open_Image
onclick="this.style.display='none'; Codehighlighter1_990_1266_Open_Text.style.display='none'; Codehighlighter1_990_1266_Closed_Image.style.display='inline'; Codehighlighter1_990_1266_Closed_Text.style.display='inline';"
src="Struts 2與AJAX(第一部分) - Max On Java - BlogJava.files/ExpandedSubBlockStart.gif"
align=top><IMG id=Codehighlighter1_990_1266_Closed_Image style="DISPLAY: none"
onclick="this.style.display='none'; Codehighlighter1_990_1266_Closed_Text.style.display='none'; Codehighlighter1_990_1266_Open_Image.style.display='inline'; Codehighlighter1_990_1266_Open_Text.style.display='inline';"
src="Struts 2與AJAX(第一部分) - Max On Java - BlogJava.files/ContractedSubBlock.gif"
align=top> </SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN
style="COLOR: #000000"> String execute() </SPAN><SPAN
id=Codehighlighter1_990_1266_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="Struts 2與AJAX(第一部分) - Max On Java - BlogJava.files/dot.gif"></SPAN><SPAN
id=Codehighlighter1_990_1266_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG
src="Struts 2與AJAX(第一部分) - Max On Java - BlogJava.files/InBlock.gif" align=top>
bookId </SPAN><SPAN
style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN
style="COLOR: #000000">15645912</SPAN><SPAN style="COLOR: #000000">;<BR><IMG
src="Struts 2與AJAX(第一部分) - Max On Java - BlogJava.files/InBlock.gif" align=top>
title </SPAN><SPAN
style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Max On
Java</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN
style="COLOR: #000000">;<BR><IMG
src="Struts 2與AJAX(第一部分) - Max On Java - BlogJava.files/InBlock.gif" align=top>
price </SPAN><SPAN
style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN
style="COLOR: #000000">0.9999d</SPAN><SPAN style="COLOR: #000000">;<BR><IMG
src="Struts 2與AJAX(第一部分) - Max On Java - BlogJava.files/InBlock.gif" align=top>
comments </SPAN><SPAN
style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN
style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">
ArrayList</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN
style="COLOR: #000000">String</SPAN><SPAN
style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN
style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">);<BR><IMG
src="Struts 2與AJAX(第一部分) - Max On Java - BlogJava.files/InBlock.gif" align=top>
comments.add(</SPAN><SPAN
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">It's no
bad!</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN
style="COLOR: #000000">);<BR><IMG
src="Struts 2與AJAX(第一部分) - Max On Java - BlogJava.files/InBlock.gif" align=top>
comments.add(</SPAN><SPAN
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">WOW!</SPAN><SPAN
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG
src="Struts 2與AJAX(第一部分) - Max On Java - BlogJava.files/InBlock.gif" align=top>
comments.add(</SPAN><SPAN
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">No
comment!</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN
style="COLOR: #000000">);<BR><IMG
src="Struts 2與AJAX(第一部分) - Max On Java - BlogJava.files/InBlock.gif" align=top>
secret1 </SPAN><SPAN
style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">You can't see
me!</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN
style="COLOR: #000000">;<BR><IMG
src="Struts 2與AJAX(第一部分) - Max On Java - BlogJava.files/InBlock.gif" align=top>
secret2 </SPAN><SPAN
style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">I am
invisible!</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN
style="COLOR: #000000">;<BR><IMG
src="Struts 2與AJAX(第一部分) - Max On Java - BlogJava.files/InBlock.gif" align=top>
</SPAN><SPAN
style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">
SUCCESS;<BR><IMG
src="Struts 2與AJAX(第一部分) - Max On Java - BlogJava.files/ExpandedSubBlockEnd.gif"
align=top> }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG
src="Struts 2與AJAX(第一部分) - Max On Java - BlogJava.files/ExpandedBlockEnd.gif"
align=top>}</SPAN></SPAN></DIV><SPAN
style="FONT-SIZE: smaller; FONT-STYLE: italic">清單1
src/tutorial/JsonPluginAction.java</SPAN>
<P>以上代碼值得注意的是,通過@JSON的JAVA注釋(Annotation),我們可以改變JSON結果的屬性名稱,另外帶有transient修飾符與沒有Getter方法的字段(field)都不會被串行化為JSON。</P>
<P>然后,我們來配置一下此Action,代碼如下:</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"><SPAN
style="COLOR: #0000ff"><?</SPAN><SPAN style="COLOR: #ff00ff">xml
version="1.0" encoding="UTF-8"</SPAN><SPAN
style="COLOR: #0000ff">?></SPAN><SPAN
style="COLOR: #000000"><BR><BR></SPAN><SPAN
style="COLOR: #0000ff"><!</SPAN><SPAN style="COLOR: #ff00ff">DOCTYPE struts
PUBLIC<BR> "-//Apache Software Foundation//DTD Struts Configuration
2.0//EN"<BR>
"http://struts.apache.org/dtds/struts-2.0.dtd"</SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN
style="COLOR: #000000"><BR><BR></SPAN><SPAN
style="COLOR: #0000ff"><</SPAN><SPAN
style="COLOR: #800000">struts</SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">
<BR> </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN
style="COLOR: #800000">package </SPAN><SPAN
style="COLOR: #ff0000">name</SPAN><SPAN
style="COLOR: #0000ff">="Struts2_AJAX_DEMO"</SPAN><SPAN style="COLOR: #ff0000">
extends</SPAN><SPAN style="COLOR: #0000ff">="json-default"</SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR>
</SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN
style="COLOR: #800000">action </SPAN><SPAN
style="COLOR: #ff0000">name</SPAN><SPAN
style="COLOR: #0000ff">="JsonPlugin"</SPAN><SPAN style="COLOR: #ff0000">
class</SPAN><SPAN
style="COLOR: #0000ff">="tutorial.JsonPluginAction"</SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR>
</SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN
style="COLOR: #800000">result </SPAN><SPAN
style="COLOR: #ff0000">type</SPAN><SPAN
style="COLOR: #0000ff">="json"</SPAN><SPAN style="COLOR: #ff0000"> </SPAN><SPAN
style="COLOR: #0000ff">/></SPAN><SPAN style="COLOR: #000000"><BR>
</SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN
style="COLOR: #800000">action</SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">
<BR> </SPAN><SPAN
style="COLOR: #0000ff"></</SPAN><SPAN
style="COLOR: #800000">package</SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN
style="COLOR: #0000ff"></</SPAN><SPAN
style="COLOR: #800000">struts</SPAN><SPAN
style="COLOR: #0000ff">></SPAN></DIV><SPAN
style="FONT-SIZE: smaller; FONT-STYLE: italic">清單2 src/struts.xml</SPAN>
<P>上面配置文件的“package”元素和以往不同的是,它擴展了“json-default”而不是“struts-default”。“json-default”是在jsonplugin-0.11.jar包里的struts-plugin.xml中定義的。該文件同時定義了“json”的結果類型,有興趣的朋友可以打開此文件看看。</P>
<P>發布運行應用程序,在瀏覽器中鍵入:<A
href="http://localhost:8080/Struts2_Ajax/JsonPlugin.action">http://localhost:8080/Struts2_Ajax/JsonPlugin.action</A>,出現下載文件對話框,原因是JSON插件將HTTP響應(Response)的MIME類型設為“application/json”。把文件下載下來,用記事本打開,內容如下:</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"><SPAN
style="COLOR: #000000">{</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN
style="COLOR: #000000">ISBN</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN
style="COLOR: #000000">:</SPAN><SPAN style="COLOR: #000000">15645912</SPAN><SPAN
style="COLOR: #000000">,</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN
style="COLOR: #000000">comments</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN
style="COLOR: #000000">:[</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN
style="COLOR: #000000">It's no bad!</SPAN><SPAN
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">WOW!</SPAN><SPAN
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">No
comment!</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN
style="COLOR: #000000">],</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN
style="COLOR: #000000">price</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN
style="COLOR: #000000">:</SPAN><SPAN style="COLOR: #000000">0.9999</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">title</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN
style="COLOR: #000000">:</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN
style="COLOR: #000000">Max On Java</SPAN><SPAN
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">}</SPAN></DIV><SPAN
style="FONT-SIZE: smaller; FONT-STYLE: italic">清單3 例子1輸出的JSON串</SPAN>
<P>當然這還不是一個完整的AJAX的例子,下面讓我們寫一個HTML文件將其完成,HTML代碼如下:</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"><SPAN
style="COLOR: #0000ff"><!</SPAN><SPAN style="COLOR: #ff00ff">DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN
style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">html </SPAN><SPAN
style="COLOR: #ff0000">xmlns</SPAN><SPAN
style="COLOR: #0000ff">="http://www.w3.org/1999/xhtml"</SPAN><SPAN
style="COLOR: #ff0000"> </SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN
style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN
style="COLOR: #800000">head</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN
style="COLOR: #000000"><BR> </SPAN><SPAN
style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">title</SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">JSON
Plugin</SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN
style="COLOR: #800000">title</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN
style="COLOR: #000000"><BR> </SPAN><SPAN
style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">script
</SPAN><SPAN style="COLOR: #ff0000">type</SPAN><SPAN
style="COLOR: #0000ff">="text/javascript"</SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN
style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"> <BR>
</SPAN><SPAN
style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</SPAN><SPAN
style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"> bXmlHttpSupport </SPAN><SPAN
style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</SPAN><SPAN
style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"> (</SPAN><SPAN
style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">typeof</SPAN><SPAN
style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"> XMLHttpRequest </SPAN><SPAN
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -