﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-想飞就别怕摔</title><link>http://www.blogjava.net/hhhaaawwwkkk/</link><description>大爷的并TM骂人</description><language>zh-cn</language><lastBuildDate>Sat, 09 May 2026 13:06:30 GMT</lastBuildDate><pubDate>Sat, 09 May 2026 13:06:30 GMT</pubDate><ttl>60</ttl><item><title>js以json形式提交数据，后台接受</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2012/08/21/385910.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Tue, 21 Aug 2012 02:09:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2012/08/21/385910.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/385910.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2012/08/21/385910.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/385910.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/385910.html</trackback:ping><description><![CDATA[<div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->$("#savename").click(<span style="color: #0000FF; ">function</span>(){<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;fananname=$("#editname").val();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;jsonList&nbsp;=&nbsp;eval(createArray());&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;jsonText&nbsp;=&nbsp;JSON.stringify(jsonList);<br />&nbsp;&nbsp;&nbsp;&nbsp;$.ajax({<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type:&nbsp;"POST",<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url:&nbsp;"/shop/ffselect!saveAttachedUrl.action",<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataType:"json",<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data:&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"fanan":fananname,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"jsonarray":jsonText<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;success:&nbsp;<span style="color: #0000FF; ">function</span>(data)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(data.status=="success"){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.location.href="www.baidu.com";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br />&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />})<br /><br /><span style="color: #0000FF; ">function</span>&nbsp;createArray(){<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;jsonarray=[];<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;fanganid=$("#selectTitleid").val();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;$goodsurl=$(".goodsurl");<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;$isadd=$(".isadd");<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;$review=$(".inputtextarea");<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;$isclear=$(".isclear");<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;$.each($goodsurl,<span style="color: #0000FF; ">function</span>(n){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;goodsurl=$($goodsurl[n]).val();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;isadd=$($isadd[n]).val();&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;review=$($review[n]).val();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;isclear=$($isclear[n]).val();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;obj=createObj(goodsurl,isadd,fanganid,review,isclear);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jsonarray.push(obj);<br />&nbsp;&nbsp;&nbsp;&nbsp;})<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;jsonarray;<br />}<br /><br /><span style="color: #0000FF; ">function</span>&nbsp;createObj(urlval,isaddval,faidval,reviewval,isclearval){<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url:urlval,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isadd:isaddval,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;faid:faidval,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;review:reviewval,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isclear:isclearval<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /></div></div><div><div><div><br /><br />后台接受<span style="font-size: 13px; color: #008080; ">&nbsp;1</span><span style="background-color: #eeeeee; font-size: 13px; ">&nbsp;</span><span style="font-size: 13px; color: #0000ff; ">public</span><span style="background-color: #eeeeee; font-size: 13px; ">&nbsp;String&nbsp;saveAttachedUrl(){</span></div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #008080; ">&nbsp;2</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LlSelectAttachedUrl&nbsp;attacheURL&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;LlSelectAttachedUrl();<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;fanan&nbsp;=&nbsp;getParameter("fanan");<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;jsonarray&nbsp;=&nbsp;getParameter("jsonarray");<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(fanan);<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(jsonarray);<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;str&nbsp;=&nbsp;"[{'name':'张三','sex':'男'},{'name':'李四','sex':'女'},{'name':'王五','sex':'男'}]";</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JSONArray&nbsp;json&nbsp;=&nbsp;JSONArray.fromObject(jsonarray);<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;size&nbsp;=&nbsp;json.size();<br /><span style="color: #008080; ">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&lt;size;&nbsp;i++){<br /><span style="color: #008080; ">11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;re&nbsp;=&nbsp;json.getString(i);<br /><span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JSONObject&nbsp;s&nbsp;=&nbsp;JSONObject.fromObject(re);<br /><span style="color: #008080; ">13</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attacheURL.setAdd_date(<span style="color: #0000FF; ">new</span>&nbsp;Date());<br /><span style="color: #008080; ">14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attacheURL.setComments(s.getString(""));<br /><span style="color: #008080; ">15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attacheURL.setGoods_url(s.getString(""));<br /><span style="color: #008080; ">16</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attacheURL.setId(re);<br /><span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attacheURL.setRemark(s.getString(""));<br /><span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attacheURL.setSelect_title_id(s.getString(""));<br /><span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(s.getString("")!=<span style="color: #0000FF; ">null</span>){<br /><span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attacheURL.setIsAddUrl(Integer.parseInt(s.getString("")));<br /><span style="color: #008080; ">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<span style="color: #0000FF; ">if</span>(s.getString("")!=<span style="color: #0000FF; ">null</span>){<br /><span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attacheURL.setState(Integer.parseInt(s.getString("")));<br /><span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>.selectFanFan.saveSelectAttachedUrl(attacheURL);<br /><span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;ajax(Status.success);<br /><span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</div></div></div><img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/385910.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2012-08-21 10:09 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2012/08/21/385910.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android学习笔记（一）初步Activity与Intent【乘法运算】</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2012/05/28/379349.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Mon, 28 May 2012 03:32:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2012/05/28/379349.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/379349.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2012/05/28/379349.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/379349.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/379349.html</trackback:ping><description><![CDATA[MyActivity.java<br /><div style="font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; border-image: initial; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; background-color: #eeeeee; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span>&nbsp;zzn.android;<br /><br /><span style="color: #0000FF; ">import</span>&nbsp;android.app.Activity;<br /><span style="color: #0000FF; ">import</span>&nbsp;android.content.Intent;<br /><span style="color: #0000FF; ">import</span>&nbsp;android.net.Uri;<br /><span style="color: #0000FF; ">import</span>&nbsp;android.os.Bundle;<br /><span style="color: #0000FF; ">import</span>&nbsp;android.view.Menu;<br /><span style="color: #0000FF; ">import</span>&nbsp;android.view.MenuItem;<br /><span style="color: #0000FF; ">import</span>&nbsp;android.view.View;<br /><span style="color: #0000FF; ">import</span>&nbsp;android.widget.Button;<br /><span style="color: #0000FF; ">import</span>&nbsp;android.widget.EditText;<br /><span style="color: #0000FF; ">import</span>&nbsp;android.widget.TextView;<br /><br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;MyActivity&nbsp;<span style="color: #0000FF; ">extends</span>&nbsp;Activity<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/**</span><span style="color: #008000; ">&nbsp;Called&nbsp;when&nbsp;the&nbsp;activity&nbsp;is&nbsp;first&nbsp;created.&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;Button&nbsp;myButton&nbsp;=&nbsp;<span style="color: #0000FF; ">null</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;EditText&nbsp;myEdit01;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;EditText&nbsp;myEdit02;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;TextView&nbsp;myText01;<br />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;onCreate(Bundle&nbsp;savedInstanceState)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">super</span>.onCreate(savedInstanceState);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setContentView(R.layout.main);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myEdit01&nbsp;=&nbsp;(EditText)findViewById(R.id.edit01);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myEdit02&nbsp;=(EditText)findViewById(R.id.edit02);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myText01&nbsp;=&nbsp;(TextView)findViewById(R.id.text01);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myButton&nbsp;=&nbsp;(Button)findViewById(R.id.myButton);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myText01.setText(R.string.textView01);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myButton.setText(R.string.myButton);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myButton.setOnClickListener(<span style="color: #0000FF; ">new</span>&nbsp;MyButtonListener());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;当点击键盘上的menu按钮时调用此方法。</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">boolean</span>&nbsp;onCreateOptionsMenu(Menu&nbsp;menu)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;menu.add(1,1,1,R.string.exit);<br />&nbsp;&nbsp;&nbsp;&nbsp;menu.add(1,2,2,R.string.about);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">super</span>.onCreateOptionsMenu(menu);<br />}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">boolean</span>&nbsp;onOptionsItemSelected(MenuItem&nbsp;item)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(item.getItemId()&nbsp;==&nbsp;1){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;finish();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">super</span>.onOptionsItemSelected(item);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;MyButtonListener&nbsp;<span style="color: #0000FF; ">implements</span>&nbsp;View.OnClickListener&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;onClick(View&nbsp;view)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;&nbsp;edit01Str&nbsp;=&nbsp;myEdit01.getText().toString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;edit02Str&nbsp;=&nbsp;myEdit02.getText().toString();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Intent&nbsp;intent&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Intent();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intent.putExtra("edit01",edit01Str);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intent.putExtra("edit02",edit02Str);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intent.setClass(MyActivity.<span style="color: #0000FF; ">this</span>,MyActivity01.<span style="color: #0000FF; ">class</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;startActivity(intent);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">生成一个Intent对象</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">&nbsp;Intent&nbsp;intent&nbsp;=&nbsp;new&nbsp;Intent();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intent.putExtra("testExtra","123456");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intent.setClass(MyActivity.this,MyActivity01.class);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyActivity.this.startActivity(intent);</span><span style="color: #008000; ">*/</span><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">Uri&nbsp;uri&nbsp;=&nbsp;Uri.parse("smsto://0800000123");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Intent&nbsp;intent&nbsp;&nbsp;&nbsp;=&nbsp;new&nbsp;Intent(Intent.ACTION_SENDTO,uri);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intent.putExtra("sms_body","this&nbsp;is&nbsp;sms&nbsp;test");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;startActivity(intent);</span><span style="color: #008000; ">*/</span><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}</div><br />MyActivity02.java<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span>&nbsp;zzn.android;<br /><br /><span style="color: #0000FF; ">import</span>&nbsp;android.app.Activity;<br /><span style="color: #0000FF; ">import</span>&nbsp;android.content.Intent;<br /><span style="color: #0000FF; ">import</span>&nbsp;android.os.Bundle;<br /><span style="color: #0000FF; ">import</span>&nbsp;android.widget.TextView;<br /><br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;MyActivity01&nbsp;<span style="color: #0000FF; ">extends</span>&nbsp;Activity&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;TextView&nbsp;myTextView&nbsp;=&nbsp;<span style="color: #0000FF; ">null</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">protected</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;onCreate(Bundle&nbsp;savedInstanceState)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">super</span>.onCreate(savedInstanceState);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setContentView(R.layout.other);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Intent&nbsp;intent&nbsp;=&nbsp;getIntent();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;edit01Str&nbsp;=&nbsp;intent.getStringExtra("edit01");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;edit02Str&nbsp;=&nbsp;intent.getStringExtra("edit02");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;intEdit01&nbsp;=&nbsp;Integer.parseInt(edit01Str);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;intEdit02&nbsp;=&nbsp;Integer.parseInt(edit02Str);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;result&nbsp;=&nbsp;intEdit01*intEdit02;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myTextView&nbsp;=&nbsp;(TextView)<span style="color: #0000FF; ">this</span>.findViewById(R.id.myTextView);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myTextView.setText(result+"");<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</div><br />main.xml<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">&lt;?</span><span style="color: #FF00FF; ">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: #0000FF; ">?&gt;</span><br /><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">LinearLayout&nbsp;</span><span style="color: #FF0000; ">xmlns:android</span><span style="color: #0000FF; ">="http://schemas.android.com/apk/res/android"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;android:orientation</span><span style="color: #0000FF; ">="vertical"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">EditText<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF0000; ">android:id</span><span style="color: #0000FF; ">="@+id/edit01"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height</span><span style="color: #0000FF; ">="wrap_content"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">TextView<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF0000; ">android:id</span><span style="color: #0000FF; ">="@+id/text01"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height</span><span style="color: #0000FF; ">="wrap_content"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">EditText<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF0000; ">android:id</span><span style="color: #0000FF; ">="@+id/edit02"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height</span><span style="color: #0000FF; ">="wrap_content"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">Button<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF0000; ">android:id</span><span style="color: #0000FF; ">="@+id/myButton"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height</span><span style="color: #0000FF; ">="wrap_content"</span><span style="color: #FF0000; "><br />android:text</span><span style="color: #0000FF; ">="点击我跳转"</span><span style="color: #FF0000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br /><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">LinearLayout</span><span style="color: #0000FF; ">&gt;</span></div><br />other.xml<br /><div style="font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; border-image: initial; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; background-color: #eeeeee; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">&lt;?</span><span style="color: #FF00FF; ">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: #0000FF; ">?&gt;</span><br /><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">LinearLayout&nbsp;</span><span style="color: #FF0000; ">xmlns:android</span><span style="color: #0000FF; ">="http://schemas.android.com/apk/res/android"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:orientation</span><span style="color: #0000FF; ">="vertical"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&gt;</span><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">TextView<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF0000; ">android:id</span><span style="color: #0000FF; ">="@+id/myTextView"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height</span><span style="color: #0000FF; ">="wrap_content"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br /><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">LinearLayout</span><span style="color: #0000FF; ">&gt;</span></div><br />String.xml<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">&lt;?</span><span style="color: #FF00FF; ">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: #0000FF; ">?&gt;</span><br /><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">resources</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">string&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="app_name"</span><span style="color: #0000FF; ">&gt;</span>myAndroid01<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">string</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">string&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="myTextView"</span><span style="color: #0000FF; ">&gt;</span>otherActivity<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">string</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">string&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="textView01"</span><span style="color: #0000FF; ">&gt;</span>乘以<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">string</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">string&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="myButton"</span><span style="color: #0000FF; ">&gt;</span>计算结果<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">string</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">string&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="exit"</span><span style="color: #0000FF; ">&gt;</span>退出<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">string</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">string&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="about"</span><span style="color: #0000FF; ">&gt;</span>关于<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">string</span><span style="color: #0000FF; ">&gt;</span><br /><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">resources</span><span style="color: #0000FF; ">&gt;</span></div><br />AndroidManifest.xml<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">&lt;?</span><span style="color: #FF00FF; ">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: #0000FF; ">?&gt;</span><br /><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">manifest&nbsp;</span><span style="color: #FF0000; ">xmlns:android</span><span style="color: #0000FF; ">="http://schemas.android.com/apk/res/android"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;package</span><span style="color: #0000FF; ">="zzn.android"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:versionCode</span><span style="color: #0000FF; ">="1"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:versionName</span><span style="color: #0000FF; ">="1.0"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">uses-sdk&nbsp;</span><span style="color: #FF0000; ">android:minSdkVersion</span><span style="color: #0000FF; ">="8"</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">application&nbsp;</span><span style="color: #FF0000; ">android:label</span><span style="color: #0000FF; ">="@string/app_name"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">activity&nbsp;</span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="MyActivity"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:label</span><span style="color: #0000FF; ">="@string/app_name"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">intent-filter</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">action&nbsp;</span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.intent.action.MAIN"</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">category&nbsp;</span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.intent.category.LAUNCHER"</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">intent-filter</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">activity</span><span style="color: #0000FF; ">&gt;</span><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">activity&nbsp;</span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="MyActivity01"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:label</span><span style="color: #0000FF; ">="@string/myTextView"</span><span style="color: #0000FF; ">/&gt;</span><br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">application</span><span style="color: #0000FF; ">&gt;</span><br /><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">manifest</span><span style="color: #0000FF; ">&gt;</span>&nbsp;</div><br /><br /><br /><br /><br /><br /><br /><img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/379349.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2012-05-28 11:32 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2012/05/28/379349.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2 使用annotation从action跳转到action并传递参数</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2012/02/16/370135.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Thu, 16 Feb 2012 09:55:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2012/02/16/370135.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/370135.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2012/02/16/370135.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/370135.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/370135.html</trackback:ping><description><![CDATA[MyAction.java<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span><span style="color: #000000; ">&nbsp;com.zzn.action;<br /><br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;org.apache.struts2.convention.annotation.Result;<br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;org.apache.struts2.convention.annotation.Results;<br /><br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;com.opensymphony.xwork2.ActionSupport;<br /><br />@Results(<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Result(name</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">aaaa</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,location</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">aaaa!aaaa.action</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,type</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">redirect</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;{</span><span style="color: #000000; ">"</span><span style="color: #000000; ">flag</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">${flag}</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">flag2</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">${flag2}</span><span style="color: #000000; ">"</span><span style="color: #000000; ">}),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Result(name</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">bbbb</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,location</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">bbbb!bbbb.action</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,type</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">redirect</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;{</span><span style="color: #000000; ">"</span><span style="color: #000000; ">flag</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">${flag}</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">flag2</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">${flag2}</span><span style="color: #000000; ">"</span><span style="color: #000000; ">}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />)<br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;MyAction&nbsp;</span><span style="color: #0000FF; ">extends</span><span style="color: #000000; ">&nbsp;ActionSupport{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;String&nbsp;flag&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;String&nbsp;flag2;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;jump(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(flag</span><span style="color: #000000; ">!=</span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">flag.equals(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">aaaa</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">aaaa</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">bbbb</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;getFlag()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;flag;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setFlag(String&nbsp;flag)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.flag&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;flag;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;getFlag2()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;flag2;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setFlag2(String&nbsp;flag2)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.flag2&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;flag2;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}<br /></span></div><br /><div><span style="color: #000000; ">AaaaAction.java<br /></span></div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span><span style="color: #000000; ">&nbsp;com.zzn.action;<br /><br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;com.opensymphony.xwork2.ActionSupport;<br /><br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;AaaaAction&nbsp;</span><span style="color: #0000FF; ">extends</span><span style="color: #000000; ">&nbsp;ActionSupport&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;String&nbsp;flag;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;String&nbsp;flag2;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;aaaa(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">我调用的aaaa方法</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">flag</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; ">flag2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">page</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;getFlag()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;flag;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setFlag(String&nbsp;flag)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.flag&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;flag;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;getFlag2()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;flag2;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setFlag2(String&nbsp;flag2)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.flag2&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;flag2;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /></span></div><br /><div><span style="color: #000000; ">BbbbAction.java<br /></span></div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span><span style="color: #000000; ">&nbsp;com.zzn.action;<br /><br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;com.opensymphony.xwork2.ActionSupport;<br /><br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;BbbbAction&nbsp;</span><span style="color: #0000FF; ">extends</span><span style="color: #000000; ">&nbsp;ActionSupport&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;String&nbsp;flag;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;String&nbsp;flag2;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;bbbb(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">我调用的bbb方法</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">flag);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">page</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;getFlag()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;flag;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setFlag(String&nbsp;flag)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.flag&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;flag;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;getFlag2()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;flag2;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setFlag2(String&nbsp;flag2)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.flag2&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;flag2;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /></span></div><br /><br /><img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/370135.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2012-02-16 17:55 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2012/02/16/370135.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>spring-security学习笔记--配置文件</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/13/366222.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Tue, 13 Dec 2011 05:07:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/13/366222.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/366222.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/13/366222.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/366222.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/366222.html</trackback:ping><description><![CDATA[记录一下配置文件中的配置介绍<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">&lt;?</span><span style="color: #FF00FF; ">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000FF; ">?&gt;</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">beans&nbsp;</span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/beans"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;xmlns:sec</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/security"</span><span style="color: #FF0000; ">&nbsp;xmlns:xsi</span><span style="color: #0000FF; ">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;xsi:schemaLocation</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/beans&nbsp;http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&nbsp;http://www.springframework.org/schema/security&nbsp;http://www.springframework.org/schema/security/spring-security-2.0.4.xsd"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;default-lazy-init</span><span style="color: #0000FF; ">="true"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;auto-config&nbsp;=&nbsp;true&nbsp;则使用from-login.&nbsp;如果不使用该属性&nbsp;则默认为http-basic(没有session).&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lowercase-comparisons：表示URL比较前先转为小写。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path-type：表示使用Apache&nbsp;Ant的匹配模式。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;access-denied-page：访问拒绝时转向的页面。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;access-decision-manager-ref：指定了自定义的访问策略管理器。当系统角色名的前缀不是默认的ROLE_时，需要自定义访问策略管理器。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:http&nbsp;</span><span style="color: #FF0000; ">auto-config</span><span style="color: #0000FF; ">="true"</span><span style="color: #FF0000; ">&nbsp;servlet-api-provision</span><span style="color: #0000FF; ">="false"</span><span style="color: #FF0000; ">&nbsp;lowercase-comparisons</span><span style="color: #0000FF; ">="false"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;access-denied-page</span><span style="color: #0000FF; ">="/html/error_page_access_denied.html"</span><span style="color: #FF0000; ">&nbsp;path-type</span><span style="color: #0000FF; ">="ant"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;access-decision-manager-ref</span><span style="color: #0000FF; ">="accessDecisionManager"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;login-page：指定登录页面。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;login-processing-url：指定了客户在登录页面中按下&nbsp;Sign&nbsp;In&nbsp;按钮时要访问的&nbsp;URL。与登录页面form的action一致。其默认值为：/j_spring_security_check。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;authentication-failure-url：指定了身份验证失败时跳转到的页面。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default-target-url：指定了成功进行身份验证和授权后默认呈现给用户的页面。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;always-use-default-target：指定了是否在身份验证通过后总是跳转到default-target-url属性指定的URL。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:form-login&nbsp;</span><span style="color: #FF0000; ">login-page</span><span style="color: #0000FF; ">="/admin/page!login.action"</span><span style="color: #FF0000; ">&nbsp;login-processing-url</span><span style="color: #0000FF; ">="/admin/login"</span><span style="color: #FF0000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default-target-url</span><span style="color: #0000FF; ">="/admin/page!main.action"</span><span style="color: #FF0000; ">&nbsp;authentication-failure-url</span><span style="color: #0000FF; ">="/admin/page!login.action"</span><span style="color: #FF0000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;always-use-default-target</span><span style="color: #0000FF; ">="true"</span><span style="color: #FF0000; ">&nbsp;&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;"记住我"功能，采用持久化策略（将用户的登录信息存放在数据库表中）&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:remember-me&nbsp;</span><span style="color: #FF0000; ">key</span><span style="color: #0000FF; ">="e37f8888-0ooo-22dd-bd0b-9900211c9a66"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logout-url：指定了用于响应退出系统请求的URL。其默认值为：/j_spring_security_logout。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logout-success-url：退出系统后转向的URL。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;invalidate-session：指定在退出系统时是否要销毁Session。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:logout&nbsp;</span><span style="color: #FF0000; ">invalidate-session</span><span style="color: #0000FF; ">="true"</span><span style="color: #FF0000; ">&nbsp;logout-success-url</span><span style="color: #0000FF; ">="/admin/page!login.action"</span><span style="color: #FF0000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logout-url</span><span style="color: #0000FF; ">="/admin/logout"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max-sessions:允许用户帐号登录的次数。范例限制用户只能登录一次。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exception-if-maximum-exceeded:&nbsp;默认为false，此值表示：用户第二次登录时，前一次的登录信息都被清空。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当exception-if-maximum-exceeded="true"时系统会拒绝第二次登录。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:concurrent-session-control&nbsp;</span><span style="color: #FF0000; ">max-sessions</span><span style="color: #0000FF; ">="1"</span><span style="color: #FF0000; ">&nbsp;exception-if-maximum-exceeded</span><span style="color: #0000FF; ">="false"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;后台登录&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;intercept-url:拦截器,可以设定哪些路径需要哪些权限来访问.&nbsp;filters=none&nbsp;不使用过滤,也可以理解为忽略&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:intercept-url&nbsp;</span><span style="color: #FF0000; ">pattern</span><span style="color: #0000FF; ">="/admin/page!login.action"</span><span style="color: #FF0000; ">&nbsp;filters</span><span style="color: #0000FF; ">="none"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;商品管理&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:intercept-url&nbsp;</span><span style="color: #FF0000; ">pattern</span><span style="color: #0000FF; ">="/admin/goods!**"</span><span style="color: #FF0000; ">&nbsp;access</span><span style="color: #0000FF; ">="ROLE_GOODS"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;基础管理权限&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:intercept-url&nbsp;</span><span style="color: #FF0000; ">pattern</span><span style="color: #0000FF; ">="/admin/**"</span><span style="color: #FF0000; ">&nbsp;access</span><span style="color: #0000FF; ">="ROLE_BASE"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下面是对Struts2的Action请求时的配置。注意在前面加/，否则不会被拦截验证。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;表示具有访问/unitsManager资源的用户必须具有ROLE_PLATFORMADMIN的权限。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当用户登录时,将用户的所有权限从数据库中提取出来，形成列表。&nbsp;当用户访问该资源时，<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;将登录用户的权限列表提出来跟下面配置的权限进行比对，若有，则允许访问，若没有，<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;则给出AccessDeniedException。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:intercept-url&nbsp;</span><span style="color: #FF0000; ">pattern</span><span style="color: #0000FF; ">="/unitsManager"</span><span style="color: #FF0000; ">&nbsp;access</span><span style="color: #0000FF; ">="ROLE_PLATFORMADMIN"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:intercept-url&nbsp;</span><span style="color: #FF0000; ">pattern</span><span style="color: #0000FF; ">="/usersManager"</span><span style="color: #FF0000; ">&nbsp;access</span><span style="color: #0000FF; ">="ROLE_PLATFORMADMIN"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:intercept-url&nbsp;</span><span style="color: #FF0000; ">pattern</span><span style="color: #0000FF; ">="/horizontalQuery"</span><span style="color: #FF0000; ">&nbsp;access</span><span style="color: #0000FF; ">="ROLE_PLATFORMADMIN"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:intercept-url&nbsp;</span><span style="color: #FF0000; ">pattern</span><span style="color: #0000FF; ">="/verticalQuery"</span><span style="color: #FF0000; ">&nbsp;access</span><span style="color: #0000FF; ">="ROLE_PLATFORMADMIN"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">sec:http</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:authentication-provider&nbsp;</span><span style="color: #FF0000; ">user-service-ref</span><span style="color: #0000FF; ">="adminDetailsServiceImpl"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:password-encoder&nbsp;</span><span style="color: #FF0000; ">hash</span><span style="color: #0000FF; ">="md5"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">sec:authentication-provider</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /><br /></span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">beans</span><span style="color: #0000FF; ">&gt;</span></div><img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/366222.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2011-12-13 13:07 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/13/366222.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2学习笔记（六）--OGNL</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/11/366097.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Sun, 11 Dec 2011 08:07:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/11/366097.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/366097.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/11/366097.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/366097.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/366097.html</trackback:ping><description><![CDATA[一、直接访问value stack contents中的值<br />从页面传递给action值username与password。<br />action写法：<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;OgnlAction&nbsp;</span><span style="color: #0000FF; ">extends</span><span style="color: #000000; ">&nbsp;ActionSupport&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;String&nbsp;username;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;String&nbsp;password;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;execute()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;SUCCESS;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;getPassword()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;password;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;getUsername()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;username;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setPassword(String&nbsp;password)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.password&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;password;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setUsername(String&nbsp;username)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.username&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000;">&nbsp;username;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}<br /></span></div>jsp页面使用ognl获取username与password值<br /><div>&lt;li&gt;访问值栈中的action的普通属性: username = &lt;s:property value="username"/&gt; <div>password = &lt;s:property value="password"/&gt;</div>&lt;/li&gt;<br /><br />二、使用user.java类来接受传递数据<br />user.java<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;User&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;age&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;String&nbsp;username;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;getAge()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;age;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;getUsername()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;username;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setUsername(String&nbsp;username)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.username&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;username;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setAge(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;age)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.age&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;age;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;toString()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">user</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;age;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</span></div><br />页面传递数据<br /><div>&lt;a href="&lt;%=contextPath %&gt;/ognl.action?<strong><span style="color: red;">user.age=2012&amp;user.username=xxxxxxxx</span></strong>"&gt;ognl&lt;/a&gt;<br /><br />action接收<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;OgnlAction&nbsp;</span><span style="color: #0000FF; ">extends</span><span style="color: #000000; ">&nbsp;ActionSupport&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;User&nbsp;user;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;User&nbsp;getUser()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;user;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setUser(User&nbsp;user)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.user&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;user;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;String&nbsp;excute()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;SUCCESS;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</span></div></div>传递到页面上显示<br /><div>&lt;s:property value="user.age"/&gt;| &lt;s:property value="user['age']"/&gt; | &lt;s:property value="user[\"age\"]"/&gt;<div>&lt;s:property value="user.username"/&gt;<br />这里提起一下ognl在jsp中访问action的方法的写法<br /><div>&lt;li&gt;访问值栈中对象的普通方法：&lt;s:property value="password.length()"/&gt;&lt;/li&gt;</div><div>&lt;li&gt;访问值栈中对象的普通方法：&lt;s:property value="cat.miaomiao()" /&gt;&lt;/li&gt;</div><div>&lt;li&gt;访问值栈中action的普通方法：&lt;s:property value="m()" /&gt;&lt;/li&gt;<br /><br />ognl可以访问静态方法。需要在struts.xml中设置&lt;constant name="struts.ognl.allowStaticMethodAccess" value="true"&gt;&lt;/constant&gt;</div><div>&lt;li&gt;访问静态方法：&lt;s:property value="@com.bjsxt.struts2.ognl.S@s()"/&gt;&lt;/li&gt;</div><div>&lt;li&gt;访问静态属性：&lt;s:property value="@com.bjsxt.struts2.ognl.S@STR"/&gt;&lt;/li&gt;<br /><div>&lt;li&gt;访问Math类的静态方法：&lt;s:property value="@@max(2,3)" /&gt;&lt;/li&gt;</div><br /><div>&lt;li&gt;访问普通类的构造方法：&lt;s:property value="new com.bjsxt.struts2.ognl.User(8)"/&gt;&lt;/li&gt;</div><br />ogin访问集合<br /><div>&lt;li&gt;访问List:&lt;s:property value="users"/&gt;&lt;/li&gt;<br />&lt;li&gt;访问List中某个元素:&lt;s:property value="users[1]"/&gt;&lt;/li&gt;<br />&lt;li&gt;访问List中元素某个属性的集合:&lt;s:property value="users.{age}"/&gt;&lt;/li&gt;<br />&lt;li&gt;访问List中元素某个属性的集合中的特定值:&lt;s:property value="users.{age}[0]"/&gt; | &lt;s:property value="users[0].age"/&gt;&lt;/li&gt;<br />&lt;li&gt;访问Set:&lt;s:property value="dogs"/&gt;&lt;/li&gt;<br />&lt;li&gt;访问Set中某个元素:&lt;s:property value="dogs[1]"/&gt;&lt;/li&gt;<br />&lt;li&gt;访问Map:&lt;s:property value="dogMap"/&gt;&lt;/li&gt;<br />&lt;li&gt;访问Map中某个元素:&lt;s:property value="dogMap.dog101"/&gt; | &lt;s:property value="dogMap['dog101']"/&gt; | &lt;s:property value="dogMap[\"dog101\"]"/&gt;&lt;/li&gt;<br />&lt;li&gt;访问Map中所有的key:&lt;s:property value="dogMap.keys"/&gt;&lt;/li&gt;<br />&lt;li&gt;访问Map中所有的value:&lt;s:property value="dogMap.values"/&gt;&lt;/li&gt;<br />&lt;li&gt;访问容器的大小：&lt;s:property value="dogMap.size()"/&gt; | &lt;s:property value="users.size"/&gt; &lt;/li&gt;</div><br /><div>&lt;li&gt;投影(过滤)：&lt;s:property value="users.{?#this.age==1}[0]"/&gt;&lt;/li&gt;<br />&lt;li&gt;投影：&lt;s:property value="users.{^#this.age&gt;1}.{age}"/&gt;&lt;/li&gt;&lt;!-- age&gt;1集合中开头的一个 --&gt;&lt;li&gt;<br />投影：&lt;s:property value="users.{$#this.age&gt;1}.{age}"/&gt;&lt;/li&gt;&lt;!-- age&gt;1集合中结尾的一个 --&gt;&lt;li&gt;<br />投影：&lt;s:property value="users.{$#this.age&gt;1}.{age} == null"/&gt;&lt;/li&gt;&lt;!-- 获取的集合是否为空&nbsp; --&gt;</div></div><br /><br /></div></div></div><img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/366097.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2011-12-11 16:07 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/11/366097.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2学习笔记（五）--result返回值的其他用法</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/11/366094.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Sun, 11 Dec 2011 05:23:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/11/366094.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/366094.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/11/366094.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/366094.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/366094.html</trackback:ping><description><![CDATA[result可以动态的返回。方便了struts2的使用，不过这种方法很少使用。<br />
第一种result返回值方法<br />
struts.xml中的配置如下：<br />
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">struts</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.devMode"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="true"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">package&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="user"</span><span style="color: #FF0000; ">&nbsp;namespace</span><span style="color: #0000FF; ">="/user"</span><span style="color: #FF0000; ">&nbsp;extends</span><span style="color: #0000FF; ">="struts-default"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">action&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="user"</span><span style="color: #FF0000; ">&nbsp;class</span><span style="color: #0000FF; ">="com.bjsxt.struts2.user.action.UserAction"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">result</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">${r}</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">result</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">action</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">package</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">struts</span><span style="color: #0000FF; ">&gt;</span></div>
action的写法：<br />
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;UserAction&nbsp;</span><span style="color: #0000FF; ">extends</span><span style="color: #000000; ">&nbsp;ActionSupport&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;type;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;String&nbsp;r;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;getR()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;r;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setR(String&nbsp;r)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.r&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;r;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;getType()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;type;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setType(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;type)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.type&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;type;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;execute()&nbsp;</span><span style="color: #0000FF; ">throws</span><span style="color: #000000; ">&nbsp;Exception&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(type&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)&nbsp;r</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/user_success.jsp</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(type&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">2</span><span style="color: #000000; ">)&nbsp;r</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/user_error.jsp</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">success</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
}</span></div>
<br />
<div>第二种result返回值方法<br />
<div>struts.xml中的配置如下，这种方法可以把type值传递到页面中去。在页面中可以渠道type的值，&lt;s:property value="#parameters.t"&gt;</div>
</div>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">struts</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.devMode"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="true"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">package&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="user"</span><span style="color: #FF0000; ">&nbsp;namespace</span><span style="color: #0000FF; ">="/user"</span><span style="color: #FF0000; ">&nbsp;extends</span><span style="color: #0000FF; ">="struts-default"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">action&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="user"</span><span style="color: #FF0000; ">&nbsp;class</span><span style="color: #0000FF; ">="com.bjsxt.struts2.user.action.UserAction"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">result&nbsp;</span><span style="color: #FF0000; ">type</span><span style="color: #0000FF; ">="redirect"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">/user_success.jsp?t=${type}</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">result</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">action</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">package</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">struts</span><span style="color: #0000FF; ">&gt;</span></div>
<div>action的写法：</div>
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;UserAction&nbsp;</span><span style="color: #0000FF; ">extends</span><span style="color: #000000; ">&nbsp;ActionSupport&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;type;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;getType()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;type;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setType(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;type)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.type&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;type;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;execute()&nbsp;</span><span style="color: #0000FF; ">throws</span><span style="color: #000000; ">&nbsp;Exception&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">success</span><span style="color: #000000; ">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
}<br />
<br />
</span></div><img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/366094.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2011-12-11 13:23 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/11/366094.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2学习笔记（二）--Conversion-plugin实现零配饰</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/10/365679.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Sat, 10 Dec 2011 04:52:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/10/365679.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/365679.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/10/365679.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/365679.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/365679.html</trackback:ping><description><![CDATA[首先感谢http://www.cnblogs.com/MoShin/archive/2011/04/06/2006591.html给的这么详细的讲解。<br /><div>如何使用Convention（约定）将struts-Convention-plugin-2.1.6.jar文件复制到WEB-INF/lib路径下</div><br /><div><div>零配置并不是没有配置，而是通过约定大于配置的方式，大量通过约定来调度页面的跳转而使得配置大大减少。所以，首先应该了解下convention-plugin的约定：<br /> 1.	默认所有的结果页面都存储在WEB-INF/content下，你可以通过设置struts.convention.result.path这个属性的值来改变到其他路径。如：</div><div><div><span style="color: #000000;">&nbsp;</span><span style="color: #000000;"><br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.convention.result.path"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="/WEB-INF/page"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; ">&nbsp; <br /></span></div></div></div><p>&nbsp;则将路径配置到了WEB-INF/page 下。<br /></p><p>&nbsp;</p><p> 2.	默认包路径包含action,actions,struts,struts2的所有包都会被struts作为含有Action类的路径来搜索。</p><p><div>（A）Convention插件会把如下两种java类当成Action处理：<br />&nbsp;&nbsp; &nbsp;1） 所有实现了com.opensymphony.xwork2.Action的java类。<br />&nbsp;&nbsp; &nbsp;2） 所有类名以Action结尾的java类</div></p><p>（B）你也可以通过设置struts.convention.package.locators属性来修改这个配置。如：<span style="color: #0000ff;"><br /></span></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span>&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.convention.package.locators"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="web,action"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "> <br /></span></div><p><span style="color: #000000;"></span></p><div>则定义了在项目中，包路径包含web和action的将被视为Action存在的路径来进行搜索。<br /> Com.ustb.web.*/com.ustb.action.*都将被视为含有Action的包路径而被搜索。<br /><div>struts.Convention.exclude.packges:指定不扫描哪些包下的java类，位于这些包结构下的java类将不会自动映射成Action；</div><div>（C）struts.convention.action.packages:Convention插件以该常量指定包作为根包来搜索Action类。Convention插件除了扫描action,actions,struts,struts2四个包的类以外，还会扫描该常量指定的一个&nbsp; 或多个包，Convention会试图从中发现Action类。<br />（D）注意：struts.convention.package.locators和struts.convention.action.packages两个常量的作用比较微妙，开发者在利用这两个常量时务必小心。<br />&nbsp;&nbsp; &nbsp;如：下面Action所在包被映射的命名空间如下：<br />&nbsp;&nbsp; &nbsp;com.fun.actions.LoginAction 映射到 /<br />&nbsp;&nbsp; &nbsp;com.fun.actions.myoffice.CarInfoAction 映射到 /myoffice<br />&nbsp;&nbsp; &nbsp;com.fun.struts.myoffice.EntINfoAction 映射到 /myofiice</div></div><div>3.	接着，Convention从前一步找到的package以及其子package中寻找 com.opensymphony.xwork2.Action 的实现以及以Action结尾的类：</div><div><div><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">.&nbsp;com.example.actions.MainAction&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">.&nbsp;com.example.actions.products.Display&nbsp;(</span><span style="color: #0000ff;">implements</span><span style="color: #000000;">&nbsp;com.opensymphony.xwork2.Action)&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">3</span><span style="color: #000000;">.&nbsp;com.example.struts.company.details.ShowCompanyDetailsAction&nbsp; <br /></span></div></div><p>&nbsp;</p><div>4.	命名空间。从定义的.package.locators标示开始到包结束的部分，就是命名空间。举个例子：<br /> &nbsp;&nbsp;&nbsp; Com.ustb.web.user.userAction的命名空间是：&#8221;/user&#8221;。Com.ustb.web.user.detail.UserAction的命名空间是：&#8221;/user/detail&#8221;<br /><br /> 5.	Convention通过如下规则确定URL的具体资源部分:去掉类名的Action部分。然后将将每个分部的首字母转为小写，用&#8217;-&#8217;分割，你可以设置struts.convention.action.name.separator 如:</div><div><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.convention.action.name.separator"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="-"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span></div><span style="color: #0000ff;"></span></div></div> <div><div>&nbsp;&nbsp;&nbsp; 还是举个例子：<br />  &nbsp;&nbsp;&nbsp; UserAction-&gt;user&nbsp; UserDetailAction   -&gt;user-detail。结合上面的。对于com.ustb.web.user.detail.UserDetailAction，映射的  url就是/WEB-INF/content/user/detail/user-detail.jsp<br /><br /> 6.	struts支持.jsp .html .htm .vm格式的文件。<br /> 下面是action和结果模版的映射关系：<strong><br /></strong>  <table style="height: 130px;" align="left" border="1" width="590"><tbody> <tr> <td> <strong>URL</strong> </td> <td> <strong>Result <br /></strong> </td> <td> <strong>File that could match</strong> </td> <td> <strong>Result Type</strong> </td> </tr> <tr> <td>/hello</td> <td>success</td> <td>/WEB-INF/content/hello.jsp</td> <td>Dispatcher</td> </tr> <tr> <td>/hello</td> <td>success</td> <td>/WEB-INF/content/hello-success.htm	</td> <td>Dispatcher</td> </tr> <tr> <td>/hello</td> <td>success</td> <td>/WEB-INF/content/hello.ftl	</td> <td> FreeMarker</td> </tr> <tr> <td>/hello-world</td> <td>input</td> <td>/WEB-INF/content/hello-world-input.vm</td> <td>Velocity</td> </tr> <tr> <td>/test1/test2/hello</td> <td>error</td> <td>/WEB-INF/content/test/test2/hello-error.html</td> <td>Dispatcher</td> </tr> </tbody></table> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p><p>&nbsp;</p><p>当然，简单的通过默认的方式来进行配置不能完全满足实际项目的需要。所幸，convention的零配置是非常灵活的。<br /><strong>通过@Action注释</strong> <br /> 对如下例子：</p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;com.opensymphony.xwork2.Action;<br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;com.opensymphony.xwork2.ActionSupport;<br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;HelloAction&nbsp;</span><span style="color: #0000FF; ">extends</span><span style="color: #000000; ">&nbsp;ActionSupport&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;@Action(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">action1</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;method1()&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;SUCCESS;<br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;@Action(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/user/action2</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;method2()&nbsp;{<br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;SUCCESS;<br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; ">}</span></div></div><div><div><span style="color: #000000;"></span><span style="color: #000000;"></span><span style="color: #000000;"></span><span style="color: #0000ff;"></span><span style="color: #000000;"><br /></span></div></div></div><div><table style="height: 65px;" border="0" width="640"><tbody><tr><td><strong>方法名</strong> </td> <td> <strong>默认调用路径</strong> </td> <td> <strong>默认映射路径</strong> </td> </tr> <tr> <td> <span style="font-size: small;">method1</span> </td> <td> <span style="font-size: small;">/hello!method1.action .</span> </td> <td> <span style="font-size: small;">/WEB-INF/content/hello.jsp</span> </td> </tr> <tr> <td> <span style="font-size: small;">method2</span> </td> <td> <span style="font-size: small;">/hello!method2.action.</span> </td> <td> <span style="font-size: small;">/WEB-INF/content/hello.jsp</span> </td> </tr> </tbody></table> <p><span style="color: #ff6600;"><span style="text-decoration: underline;">通过@Action注释后</span> </span> </p> <table style="height: 64px;" border="0" width="639"><tbody> <tr> <td> <strong>方法名</strong> </td> <td> <strong>@Action注释后调用路径</strong> </td> <td> <strong>@Action注释</strong> <strong>后映射路径</strong> </td> </tr> <tr> <td> <span style="font-size: small;">method1</span> </td> <td> <span style="font-size: small;">/action1!method1.action.</span>  </td> <td> <span style="font-size: small;">/WEB-INF/content/action1.jsp</span> </td> </tr> <tr> <td> <span style="font-size: small;">method1</span> </td> <td> <span style="font-size: small;">/user/action2!method2.action</span> </td> <td> <span style="font-size: small;">/WEB-INF/content/user/action2.jsp</span> </td> </tr> </tbody></table> <p><br /><strong>通过@Actions注释</strong> </p></div><div><div><span style="color: #000000;"></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;com.opensymphony.xwork2.ActionSupport;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;org.apache.struts2.convention.annotation.Action;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;org.apache.struts2.convention.annotation.Actions;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; ">&nbsp;<br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;HelloAction&nbsp;</span><span style="color: #0000FF; ">extends</span><span style="color: #000000; ">&nbsp;ActionSupport&nbsp;{&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;@Actions({&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Action(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/different/url</span><span style="color: #000000; ">"</span><span style="color: #000000; ">),&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Action(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/another/url</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;})&nbsp;&nbsp;<br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;method1()&nbsp;{&nbsp;&nbsp;<br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;&#8220;error&#8221;;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">} <br /></span></div>&nbsp; </div></div><div>我们可以通过：<span style="font-size: medium;"><strong><span style="color: #008000;"><span style="color: #0000ff;"><span style="font-size: small;"><em>/different/url!method1.action</em> </span> </span> </span> </strong> 或</span>   <span style="color: #008000; font-size: small;"><strong><span style="font-size: medium;"><span style="color: #0000ff;"><span style="font-size: small;"><em>/another/url!method1.action</em> </span> </span> </span> </strong> </span> 来调用<strong>method1</strong> 方法。<br /> 对应的映射路径分别是<strong><span style="color: #0000ff; font-size: small;"><em>/WEB-INF/content/different/url-error.jsp; /WEB-INF/content/another/url-error.jsp</em> </span> <br /></strong>  <br /> 可能误导了大家，一个方法被@Action注释后，只是多了一种调用方式，而不是说覆盖了原来的调用方式。比如对于如下例子：</div><div><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;com.opensymphony.xwork2.ActionSupport;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;org.apache.struts2.convention.annotation.Action;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;org.apache.struts2.convention.annotation.Actions;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;HelloAction&nbsp;</span><span style="color: #0000FF; ">extends</span><span style="color: #000000; ">&nbsp;ActionSupport&nbsp;{&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;@Action(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/another/url</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;method1()&nbsp;{&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;&#8220;error&#8221;;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; ">}</span></div><span style="color: #000000;"></span><span style="color: #000000;"></span></div></div><div>我们调用method1方法可以通过两种方式：<br /> 1&nbsp;<span style="color: #0000ff; font-size: medium;"> <span style="font-size: small;"><strong>/hello!method1.action</strong> </span> </span> <span style="font-size: small;">  映射</span> <span style="font-size: small;">url：<strong><span style="color: #0000ff; font-size: small;">/WEB-INF/content/hello-error.jsp</span> </strong>  </span> <span style="font-size: small;"><br /> 	2</span> <span style="font-size: small;">  <span style="font-size: medium;"><strong><span style="color: #0000ff; font-size: small;">/another/url!method1.action</span> </strong>  </span> </span> <span style="font-size: small;"> 映射</span> <span style="font-size: small;">url：<span style="font-size: small;"><strong><span style="color: #0000ff;">/WEB-INF/content/another/url-error.jsp</span> </strong> </span> </span> <br /> 可见，两种方式均可对method1方法进行调用，唯一的区别就是，两种调用的映射是不一样的，所以，想跳转到不同的界面，这是一个非常好的选择。</div><p>&nbsp;</p><p><strong>通过@Namespace 注释</strong></p><div><div><span style="color: #000000;"></span><span style="color: #000000;"></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;com.opensymphony.xwork2.ActionSupport;<br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;org.apache.struts2.convention.annotation.Action;<br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;org.apache.struts2.convention.annotation.Actions;<br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; ">@Namespace(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/other</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;HelloWorld&nbsp;</span><span style="color: #0000FF; ">extends</span><span style="color: #000000; ">&nbsp;ActionSupport&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;method1()&nbsp;{&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;&#8220;error&#8221;;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;@Action(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">url</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)&nbsp;&nbsp;<br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;method2()&nbsp;{&nbsp;&nbsp;<br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;&#8220;error&#8221;;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;@Action(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/different/url</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)&nbsp;&nbsp;<br /></span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;method3()&nbsp;{&nbsp;&nbsp;<br /></span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;&#8220;error&#8221;;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">19</span>&nbsp;<span style="color: #000000; ">}</span></div><span style="color: #000000;"> </span></div></div><div><span style="font-size: small;">通过 <strong><span style="color: #0000ff; font-size: small;">/other/hello-world!method1.action</span> </strong> </span> <span style="font-size: small;"> 访问<strong>method1</strong> 方法。<br /> 通过</span> <strong>   <span style="color: #0000ff; font-size: small;">/other/url!method2.action</span> </strong>  <span style="font-size: small;"> 访问<strong>method2</strong> 方法<br /> 通过</span> <strong><span style="color: #0000ff; font-size: small;">/different /url!method3.action</span> </strong> <span style="font-size: small;"> 访问<strong>method3</strong> 方法</span> <br /> 与@Action 注释不同的是，该注释覆盖了默认的namespace(这里是&#8217;/&#8217;)，此时再用<span style="font-size: small;">hello!method1.action</span> 已经不能访问<strong>method1</strong> 了.<br /><strong>@Results和@Result</strong> <br /><strong>1 全局的（global）。</strong> <br /> 全局results可以被action类中所有的action分享，这种results在action类上使用注解进行声明。</div><div><div><span style="color: #000000;">&nbsp;&nbsp; </span><span style="color: #000000;"><br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;com.opensymphony.xwork2.ActionSupport;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;org.apache.struts2.convention.annotation.Action;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;org.apache.struts2.convention.annotation.Actions;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;org.apache.struts2.convention.annotation.Result;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;org.apache.struts2.convention.annotation.Results;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; ">&nbsp;@Results({&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;@Result(name</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">failure</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,&nbsp;location</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/WEB-INF/fail.jsp</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&nbsp;})&nbsp;&nbsp;<br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;HelloWorld&nbsp;</span><span style="color: #0000FF; ">extends</span><span style="color: #000000; ">&nbsp;ActionSupport&nbsp;{&nbsp;&nbsp;<br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;method1()&nbsp;{&nbsp;&nbsp;<br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;&#8220;failure&#8221;;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Action(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/different/url</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)&nbsp;&nbsp;<br /></span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;method2()&nbsp;{&nbsp;&nbsp;<br /></span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;&#8220;failure&#8221;;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br /></span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #000000; ">}</span></div></div></div><div><span style="font-size: small;">当我们访问</span> <span style="font-size: small;"> <strong>      </strong> </span>  <span style="font-size: small;"><strong><span style="color: #0000ff; font-size: small;">/hello</span> </strong> </span> <span style="font-size: small;"><strong><span style="color: #0000ff; font-size: small;">-world</span> </strong> </span> <span style="font-size: small;"><strong><span style="color: #0000ff; font-size: small;">!method1.action</span> </strong> <span style="font-size: small;">时，返回</span> <span style="color: #0000ff; font-size: small;"> <strong>/WEB-INF/fail.jsp</strong> </span> <br /><span style="font-size: small;">当我们访问</span> <strong><span style="color: #0000ff; font-size: small;">/hello</span> </strong> </span> <span style="font-size: small;"><strong><span style="color: #0000ff; font-size: small;">-world</span> </strong> </span> <span style="font-size: small;"><strong><span style="color: #0000ff; font-size: small;">!method2.action</span> </strong> <span style="font-size: small;">时，返回</span> <strong><span style="color: #0000ff; font-size: small;">/WEB-INF/fail.jsp</span> </strong>  <br /><span style="font-size: small;">当我们访问</span> <strong><span style="color: #0000ff; font-size: small;"> /different/url!method2.action</span> </strong> <span style="font-size: small;">时，返回</span> <strong> <span style="color: #0000ff; font-size: small;">/WEB-INF/fail.jsp</span> </strong>  </span> <br /><br /><strong>2 本地的（local）。</strong> <br /> 本地results只能在action方法上进行声明。</div><div><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;com.opensymphony.xwork2.ActionSupport;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;org.apache.struts2.convention.annotation.Action;<br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;org.apache.struts2.convention.annotation.Actions;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;org.apache.struts2.convention.annotation.Result;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;org.apache.struts2.convention.annotation.Results;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;HelloWorld&nbsp;</span><span style="color: #0000FF; ">extends</span><span style="color: #000000; ">&nbsp;ActionSupport&nbsp;{&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;@Action(value</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/other/bar</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,results</span><span style="color: #000000; ">=</span><span style="color: #000000; ">{@Result(name&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">error</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,&nbsp;location&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">www.baidu.com</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,type</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">redirect</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)})&nbsp;&nbsp;<br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;method1()&nbsp;{&nbsp;&nbsp;<br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;&#8220;error&#8221;;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000;">} <br /></span></div><span style="color: #000000;">&nbsp;</span> </div><div><span style="font-size: small;">当我们调用</span>   <span style="font-size: small;"><strong><span style="color: #0000ff;">/hello</span> </strong> </span> <span style="font-size: small;"><strong><span style="color: #0000ff; font-size: small;">-world</span> </strong> </span> <span style="font-size: small;"><strong><span style="color: #0000ff;">!method1.action</span> </strong> </span> <span style="font-size: small;"> 时，返回</span> <strong>  <span style="color: #0000ff; font-size: small;">/WEB-INF/content/hello-error.jsp</span> </strong>  <span style="font-size: small;"><br /></span> <span style="font-size: small;">当我们调用</span> <strong>    <span style="color: #0000ff; font-size: small;">/other/bar!method1.action</span> </strong>  <span style="font-size: small;"> 时，返回</span> <span style="font-size: small;"><strong>   <span style="color: #0000ff;">www.baidu.com</span> </strong> </span>  </div></div><img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/365679.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2011-12-10 12:52 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/10/365679.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2学习笔记（三）--action接受参数</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/10/365625.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Sat, 10 Dec 2011 04:52:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/10/365625.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/365625.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/10/365625.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/365625.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/365625.html</trackback:ping><description><![CDATA[一、在action中直接写页面传递的属性来接受<br />action<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;UserAction&nbsp;</span><span style="color: #0000FF; ">extends</span><span style="color: #000000; ">&nbsp;ActionSupport&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;String&nbsp;name;<br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;age;<br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;add()&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">name=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;name);<br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">age=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;age);<br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;SUCCESS;<br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;getName()&nbsp;{<br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;name;<br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setName(String&nbsp;name)&nbsp;{<br /></span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.name&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;name;<br /></span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">19</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">20</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;getAge()&nbsp;{<br /></span><span style="color: #008080; ">21</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;age;<br /></span><span style="color: #008080; ">22</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">23</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">24</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setAge(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;age)&nbsp;{<br /></span><span style="color: #008080; ">25</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.age&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;age;<br /></span><span style="color: #008080; ">26</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">27</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">28</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">29</span>&nbsp;<span style="color: #000000; ">}</span></div>页面传递参数为name与age如：&lt;a href="user/user!add?name=a&amp;age=8"&gt;添加用户&lt;/a&gt;<br /><br />二、使用DomainModel接受参数<br />action<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;UserAction&nbsp;</span><span style="color: #0000FF; ">extends</span><span style="color: #000000; ">&nbsp;ActionSupport&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;User&nbsp;user;<br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">private&nbsp;UserDTO&nbsp;userDTO;</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;add()&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">name=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;user.getName());<br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">age=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;user.getAge());<br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;SUCCESS;<br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;User&nbsp;getUser()&nbsp;{<br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;user;<br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setUser(User&nbsp;user)&nbsp;{<br /></span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.user&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;user;<br /></span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #000000;">}</span></div>domain<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;User&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;String&nbsp;name;<br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;age;<br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;getName()&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;name;<br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setName(String&nbsp;name)&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.name&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;name;<br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;getAge()&nbsp;{<br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;age;<br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setAge(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;age)&nbsp;{<br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.age&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;age;<br /></span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #000000;">}</span></div>页面传递参数是需要这样来传递如：<br /><div>&lt;a href="user/user!add?<span style="color: red;">user.name=a&amp;user.age=8</span>"&gt;添加用户&lt;/a&gt;</div><img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/365625.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2011-12-10 12:52 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/10/365625.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2学习笔记（一）--struts.xml配置文件</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/10/365624.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Sat, 10 Dec 2011 03:20:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/10/365624.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/365624.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/10/365624.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/365624.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/365624.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all">学习sturts2无非就是学习各种配置而已。最重要的就是struts.xml配置文件。<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">&lt;?</span><span style="color: #FF00FF; ">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"&nbsp;</span><span style="color: #0000FF; ">?&gt;</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">&lt;!</span><span style="color: #FF00FF; ">DOCTYPE&nbsp;struts&nbsp;PUBLIC<br />&nbsp;&nbsp;&nbsp;&nbsp;"-//Apache&nbsp;Software&nbsp;Foundation//DTD&nbsp;Struts&nbsp;Configuration&nbsp;2.0//EN"<br />&nbsp;&nbsp;&nbsp;&nbsp;"http://struts.apache.org/dtds/struts-2.0.dtd"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /><br /></span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">struts</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">include&nbsp;</span><span style="color: #FF0000; ">file</span><span style="color: #0000FF; ">="login.xml"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">将其他的xml文件容纳进来</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.devMode"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="true"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;开发模式，更改配置文件无需重启服务器。&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.i18n.encoding"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="UTF-8"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;字符集，页面传递是中文需要使用此配置。解决中文问题。&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.custom.i18n.resources"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="i18n"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;国际化&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.i18n.reload"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="false"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">国际化是否生效</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.convention.classes.reload"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="false"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;配置Convention插件自动重加载映射</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.convention.action.packages"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="net.shopxx.action"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个属性用于约定Action&nbsp;类的根包（这个包是Java&nbsp;类的包，而不是Struts.xml中配置的&lt;package&gt;节点）<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在一个项目中有这样一系列的Java&nbsp;包，那么当指定convention的这个属性，Struts<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;框架就会在你访问特定的URL时会自动的找到所要的请求的实现类。&nbsp;当你在浏览器中输入：<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://localhost:8080/HelloWorld.action<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;，Struts会自动的找到并执行com.ZTest.web.action.HelloWorldAction.java类。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当你在浏览器中输入：&nbsp;http://localhost:8080/test/aaa.action<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;，Struts会自动的找到并执行com.ZTest.web.action.test.aaaAction.java类。<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.serve.static.browserCache"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="false"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">是否struts过滤器中提供的静态内容应该被浏览器缓存在头部属性中</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.objectFactory"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="spring"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;com.opensymphony.xwork2.ObjectFactory接口&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.multipart.maxSize"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="-1"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;multipart请求信息的最大尺寸（文件上传用）&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.ui.theme"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="simple"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;默认的UI&nbsp;template主题&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.action.extension"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="action"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用URL扩展名来确定是否这个请求是被用作Struts&nbsp;action，其实也就是设置&nbsp;action的后缀，例如login.do的'do'字<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.convention.result.path"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="/WEB-INF/template/"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;设置Convention插件定位视图资源的根路径。默认值为/WEB-INF/content<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个属性用于约定Action类执行完毕以后返回资源的结果路径&nbsp;当你在浏览器中输入：xxx/HelloWorld.aciton<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;，Struts会自动的找到并执行com.ZTest.web.action.HelloWorldAction.java类，并放回到WEB-INF/template/HelloWorld.jsp。<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.convention.action.name.separator"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value</span><span style="color: #0000FF; ">="_"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个属性是约定当一个Java&nbsp;类&nbsp;有多个单词组合成的时候，映射的URL地址的时候访问的格式的分隔符。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果不指定这个属性，Struts默认的分隔符是&nbsp;&#8220;-&#8221;，例如&nbsp;HelloWorldAction&nbsp;则访问的URL<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;是Hello-World.action&nbsp;如果指定这个属性是上面的格式，则是没有分隔符，会按照Java&nbsp;类名直接映射，例如<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HelloWorldAction&nbsp;则访问的URL&nbsp;是HelloWorld.action<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.convention.action.name.lowercase"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value</span><span style="color: #0000FF; ">="false"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;是否将Action类转换成小写当一个类的类名是多个单词组合起来的时候，例如&nbsp;HelloWolrdAction，如果指定了这个属性，<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;则访问的地址必须是：&nbsp;HelloWorld.action&nbsp;,如果不是指定这个属性则是：&nbsp;helloworld.action<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.convention.default.parent.package"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value</span><span style="color: #0000FF; ">="default"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个属性指定的是Strtus.xml中配置的&nbsp;&lt;package&gt;节点的父节点。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.freemarker.manager.classname"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="net.shopxx.common.FreemarkerManager"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;属性指定Struts&nbsp;2使用的FreeMarker管理器。该属性的默认值是<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts2.views.freemarker.FreemarkerManager，这是Struts<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2内建的FreeMarker管理器。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struts.freemarker.wrapper.altMap该属性只支持true和false两个属性值，默认值是true。通常无需修改该属性值。<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">访问http://localhost:8080/工程名/hello_struts（既可以访问根目录下得Hello.jsp）</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">package&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="front"</span><span style="color: #FF0000; ">&nbsp;extends</span><span style="color: #0000FF; ">="struts-default"</span><span style="color: #FF0000; ">&nbsp;namespace</span><span style="color: #0000FF; ">="/"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">default-action-ref&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="errorPage404Action"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;默认的action&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">action&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="errorPage404Action"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">result&nbsp;</span><span style="color: #FF0000; ">type</span><span style="color: #0000FF; ">="redirect"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">/html/error_page_404.html</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">result</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">action</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">global-results</span><span style="color: #0000FF; ">&gt;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;全局的result，只使用与此packeage中的所有action&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">result&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="mainpage"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">/main.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 />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">global-results</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">action&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="index"</span><span style="color: #FF0000; ">&nbsp;class</span><span style="color: #0000FF; ">="com.bjsxt.struts2.front.action.IndexAction1"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;配置了class程序会访问自己的action中的execute方法返回String，如return&nbsp;success<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">result&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="success"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">/ActionIntroduction.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 />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">action</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">package</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">package&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="user"</span><span style="color: #FF0000; ">&nbsp;extends</span><span style="color: #0000FF; ">="struts-default"</span><span style="color: #FF0000; ">&nbsp;namespace</span><span style="color: #0000FF; ">="/user"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">action&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="userAdd"</span><span style="color: #FF0000; ">&nbsp;class</span><span style="color: #0000FF; ">="com.bjsxt.struts2.user.action.UserAction"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method</span><span style="color: #0000FF; ">="add"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">加入了method="add"所以会访问UserAction中的add方法（这种方法不建议使用,忘了吧！）</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">result</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">/user_add_success.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 />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;页面调用&lt;a&nbsp;href="&lt;%=context<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%&gt;/user/userAdd"&gt;添加用户&lt;/a&gt;【这样会访问】namespace="/user"，action名称为name="userAdd"的action中add方法<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">action</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">action&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="user"</span><span style="color: #FF0000; ">&nbsp;class</span><span style="color: #0000FF; ">="com.bjsxt.struts2.user.action.UserAction"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;建议使用的方法在这里，这样配置需要使用的调用发放是（动态调用DMI）<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">result</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">/user_add_success.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 />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;页面调用&lt;a&nbsp;href="&lt;%=context<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%&gt;/user/user!add"&gt;添加用户&lt;/a&gt;【这样会访问】namespace="/user"，action名称为name="user"的action中add方法<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">用于一个action中多个方法对应返回同一个页面，返回不同页面需要配置多个result</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">action</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">package</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">package&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="actions"</span><span style="color: #FF0000; ">&nbsp;extends</span><span style="color: #0000FF; ">="struts-default"</span><span style="color: #FF0000; ">&nbsp;namespace</span><span style="color: #0000FF; ">="/actions"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">action&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="Student*"</span><span style="color: #FF0000; ">&nbsp;class</span><span style="color: #0000FF; ">="com.bjsxt.struts2.action.StudentAction"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method</span><span style="color: #0000FF; ">="{1}"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">result</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">/Student{1}_success.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 />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;通配符的使用；jsp中有两个访问连接&nbsp;&lt;a&nbsp;href="&lt;%=context<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%&gt;/actions/Studentadd"&gt;添加学生&lt;/a&gt;&nbsp;&lt;a&nbsp;href="&lt;%=context<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%&gt;/actions/Studentdelete"&gt;删除学生&lt;/a&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*和{1}就是填充add和delete后所访问action中的方法与jsp&nbsp;【action中一定会有两个方法一个add一个delete】<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">用于一个action中多个方法，返回不同页面。只需配置一个带有通配符的result【约定优于配置】</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">action</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">action&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="*_*"</span><span style="color: #FF0000; ">&nbsp;class</span><span style="color: #0000FF; ">="com.bjsxt.struts2.action.{1}Action"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method</span><span style="color: #0000FF; ">="{2}"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">第一个*对应{1}；第二个*对应{2}</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">result</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">/{1}_{2}_success.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 />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;{0}_success.jsp&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">action</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">用于多个action中多个方法，返回不同页面。只需配置一个带有通配符的result【约定优于配置】</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">package</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">package&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="default"</span><span style="color: #FF0000; ">&nbsp;namespace</span><span style="color: #0000FF; ">="/"</span><span style="color: #FF0000; ">&nbsp;extends</span><span style="color: #0000FF; ">="struts-default"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">default-action-ref&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="index"</span><span style="color: #0000FF; ">&gt;&lt;/</span><span style="color: #800000; ">default-action-ref</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">默认的action配置</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">action&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="index"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">result</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">/default.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 />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">action</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">package</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /><br /></span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">struts</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span></div><span style="color: #800000; "></span><span style="color: #0000FF; "></span><span style="color: #000000; "></span><span style="color: #008080; "></span><span style="color: #000000; "></span></div><div>如果使用struts2的convertion plugin约束，可以完全不用配置action</div><div><div></div></div><img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/365624.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2011-12-10 11:20 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/10/365624.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle强杀进程，解决表锁死等问题</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/10/09/360285.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Sun, 09 Oct 2011 08:22:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/10/09/360285.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/360285.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/10/09/360285.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/360285.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/360285.html</trackback:ping><description><![CDATA[<div id="cnblogs_post_body">
<p>&nbsp;1、找到sid,serial#；</p>
<div></div>
<div>SELECT&nbsp;/*+&nbsp;rule&nbsp;*/&nbsp;s.username,&nbsp;l.type,</div>
<div>decode(l.type,'TM','TABLE&nbsp;LOCK',&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'TX','ROW&nbsp;LOCK',&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL)&nbsp;LOCK_LEVEL,&nbsp;</div>
<div>o.owner,o.object_name,o.object_type,&nbsp;</div>
<div>s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser,s.status&nbsp;</div>
<div>FROM&nbsp;v$session&nbsp;s,v$lock&nbsp;l,dba_objects&nbsp;o&nbsp;</div>
<div>WHERE&nbsp;l.sid&nbsp;=&nbsp;s.sid&nbsp;</div>
<div>AND&nbsp;l.id1&nbsp;=&nbsp;o.object_id(+)&nbsp;</div>
<div>AND&nbsp;s.username&nbsp;is&nbsp;NOT&nbsp;NULL&nbsp;order&nbsp;by&nbsp;l.type;<br /><br /></div>
<div></div>
<div></div>
<div>2、根据找到的sid,serial#，执行以下语句，清除进程。</div>
<div></div>
<div>alter&nbsp;system&nbsp;kill&nbsp;session&nbsp;'~sid~,~serial#~';</div>
<div></div>
<div></div>
<div>例如： alter&nbsp;system&nbsp;kill&nbsp;session&nbsp;'14,4820';<br /><br />
<div>如果死锁不能自动释放，就需要我们手工的kill session。 步骤如下：</div>
<div>&nbsp;<wbr></div>
<div>1. &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 查看有无死锁对象，如有kill session</div>
<div>&nbsp;<wbr></div>
<div>SELECT &nbsp;<wbr> 'alter system kill session ''' || sid || ',' || serial# || ''';' &nbsp;<wbr>"Deadlock"</div>
<div>&nbsp;<wbr>&nbsp;<wbr>FROM &nbsp;<wbr> v$session</div>
<div>&nbsp;<wbr>WHERE &nbsp;<wbr> sid IN (SELECT &nbsp;<wbr> sid</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> FROM &nbsp;<wbr> v$lock</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr>WHERE &nbsp;<wbr> block = 1);</div>
<div>如果有，会返回类似与如下的信息：</div>
<div><wbr><wbr><wbr><wbr><wbr>alter system kill session '132,731';</div>
<div>alter system kill session '275,15205';</div>
<div>alter system kill session '308,206';</div>
<div>alter system kill session '407,3510';</div>
<div>&nbsp;<wbr></div>
<div>kill session：</div>
<div>执行alter system kill session '391,48398'(sid为391);</div>
<div>注意：应当注意对于sid在100以下的应当谨慎，可能该进程对应某个application，如对应某个事务,可以kill.</div>
<div>&nbsp;<wbr></div>
<div>&nbsp;<wbr></div>
<div>2. &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 查看导致死锁的SQL</div>
<div>&nbsp;<wbr></div>
<div>&nbsp;<wbr>&nbsp;<wbr>SELECT &nbsp;<wbr> s.sid, q.sql_text</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>FROM &nbsp;<wbr> v$sqltext q, v$session s</div>
<div>&nbsp;<wbr>&nbsp;<wbr> WHERE &nbsp;<wbr> q.address = s.sql_address AND s.sid = &amp;sid &nbsp;<wbr>-- 这个&amp;sid 是第一步查询出来的</div>
<div>ORDER BY &nbsp;<wbr> piece;</div>
<div>&nbsp;<wbr></div>
<div>返回：</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr>SID SQL_TEXT</div>
<div>---------- ----------------------------------------------------------------</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 77 UPDATE PROFILE_USER SET ID=1,COMPANY_ID=2,CUSTOMER_ID=3,NAMED &nbsp;<wbr></div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 77 _INSURED_ID=4,LOGIN=5,ROLE_ID=6,PASSWORD=7,EMAIL=8,TIME_ZON</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 77 E=9 WHERE PROFILE_USER.ID=:34</div>
<div>3 rows selected.</div>
<div>&nbsp;<wbr></div>
<div>&nbsp;<wbr></div>
<div>3. 查看谁锁了谁</div>
<div>SELECT &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr>s1.username</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> || '@'</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> || s1.machine</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> || ' ( SID='</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> || s1.sid</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> || ' ) &nbsp;<wbr>is blocking '</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> || s2.username</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> || '@'</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> || s2.machine</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> || ' ( SID='</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> || s2.sid</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> || ' ) '</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr>AS blocking_status</div>
<div>&nbsp;<wbr>&nbsp;<wbr>FROM &nbsp;<wbr> v$lock l1,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> v$session s1,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> v$lock l2,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> v$session s2</div>
<div>&nbsp;<wbr>WHERE &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> s1.sid = l1.sid</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> AND s2.sid = l2.sid</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> AND l1.BLOCK = 1</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> AND l2.request &gt; 0</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> AND l1.id1 = l2.id1</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> AND l2.id2 = l2.id2;</div>
<div>&nbsp;<wbr></div>
<div>或者</div>
<div>&nbsp;<wbr></div>
<div>&nbsp;<wbr>&nbsp;<wbr>SELECT &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr></div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr>LPAD (' ', DECODE (l.xidusn, 0, 3, 0))</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> || l.oracle_username</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr>User_name,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> o.owner,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> o.object_name,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> o.object_type,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> s.sid,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> s.serial#</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>FROM &nbsp;<wbr> v$locked_object l, dba_objects o, v$session s</div>
<div>&nbsp;<wbr>&nbsp;<wbr> WHERE &nbsp;<wbr> l.object_id = o.object_id AND l.session_id = s.sid</div>
<div>ORDER BY &nbsp;<wbr> o.object_id, xidusn DESC</div>
<div>&nbsp;<wbr></div>
<div>&nbsp;<wbr></div>
<div>&nbsp;<wbr></div>
<div>三．锁 和 阻塞</div>
<div>&nbsp;<wbr></div>
<div>3.1 相关概念</div>
<div>&nbsp;<wbr></div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 通常来讲，系统如果平时运行正常，突然会停止不动，多半是被阻塞（Blocked）住了。 我们可以通过v$lock 这张视图，看查看阻塞的信息。</div>
<div>&nbsp;<wbr></div>
<div>SQL&gt; desc v$lock;</div>
<div>&nbsp;<wbr>名称 &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr>是否为空? 类型</div>
<div>&nbsp;<wbr>----------------------------------------- -------- -----------------</div>
<div>&nbsp;<wbr>ADDR &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> RAW(4)</div>
<div>&nbsp;<wbr>KADDR &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr>RAW(4)</div>
<div>&nbsp;<wbr>SID &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> NUMBER</div>
<div>&nbsp;<wbr>TYPE &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr>VARCHAR2(2)</div>
<div>&nbsp;<wbr>ID1 &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> NUMBER</div>
<div>&nbsp;<wbr>ID2 &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> NUMBER</div>
<div>&nbsp;<wbr>LMODE &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr>NUMBER</div>
<div>&nbsp;<wbr>REQUEST &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> NUMBER</div>
<div>&nbsp;<wbr>CTIME &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> NUMBER</div>
<div>&nbsp;<wbr>BLOCK &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> NUMBER</div>
<div>&nbsp;<wbr></div>
<div>&nbsp;<wbr></div>
<div>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr></div>
<div>&nbsp;<wbr></div>
<div>我们关注的比较多的是request 和 block 字段。</div>
<div>如果某个request列是一个非0值，那么它就是在等待一个锁。 &nbsp;<wbr>如果block列是1，这个SID 就持有了一个锁，并且阻塞别人获得这个锁。 这个锁的类型由TYPE 字段定义。锁的模式有LMODE 字段定义，ID1和ID2 字段定义了这个锁的相关信息。ID1相同，就代表指向同一个资源。这样就有可能有加锁者和等待者。 &nbsp;<wbr>LMODE 的6中模式参考上面的TM锁类型表。</div>
<div>&nbsp;<wbr></div>
<div>可以结合v$lock 和 v$session 视图来查询相关的信息：</div>
<div>&nbsp;<wbr></div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr></div>
<div>&nbsp;<wbr>&nbsp;<wbr>SELECT &nbsp;<wbr> sn.username,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> m.SID,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> sn.SERIAL#,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> m.TYPE,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> DECODE (m.lmode,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 0,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 'None',</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 1,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 'Null',</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 2,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 'Row Share',</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 3,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 'Row Excl.',</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 4,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 'Share',</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 5,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 'S/Row Excl.',</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 6,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 'Exclusive',</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> lmode,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> LTRIM (TO_CHAR (lmode, '990')))</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr>lmode,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> DECODE (m.request,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 0,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 'None',</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 1,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 'Null',</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 2,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 'Row Share',</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 3,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 'Row Excl.',</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 4,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 'Share',</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 5,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 'S/Row Excl.',</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 6,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> 'Exclusive',</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> request,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> LTRIM (TO_CHAR (m.request, '990')))</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr>request,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> m.id1,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> m.id2</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>FROM &nbsp;<wbr> v$session sn, v$lock m</div>
<div>&nbsp;<wbr>&nbsp;<wbr> WHERE &nbsp;<wbr> (sn.SID = m.SID AND m.request != 0) &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr>--存在锁请求，即被阻塞</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> OR (sn.SID = m.SID &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> --不存在锁请求，但是锁定的对象被其他会话请求锁定</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> AND m.request = 0 AND lmode != 4</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> AND (id1, id2) IN</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr>(SELECT &nbsp;<wbr> s.id1, s.id2</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> FROM &nbsp;<wbr> v$lock s</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr>WHERE &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> request != 0</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr>AND s.id1 = m.id1</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr>AND s.id2 = m.id2))</div>
<div>ORDER BY &nbsp;<wbr> id1, id2, m.request;</div>
<div>&nbsp;<wbr></div>
<div>或者</div>
<div>&nbsp;<wbr></div>
<div>SELECT &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr></div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr>s &nbsp;<wbr>.username,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> DECODE (l.TYPE, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', NULL)</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr>LOCK_LEVEL,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> o.owner,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> o.object_name,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> o.object_type,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> s.sid,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> s.serial#,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> s.terminal,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> s.machine,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> s.program,</div>
<div>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> &nbsp;<wbr> s.osuser</div>
<div>&nbsp;<wbr>&nbsp;<wbr>FROM &nbsp;<wbr> v$session s, v$lock l, dba_objects o</div>
<div>&nbsp;<wbr>WHERE &nbsp;<wbr> l.sid = s.sid AND l.id1 = o.object_id(+) AND s.username IS NOT NULL</div></div></div><img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/360285.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2011-10-09 16:22 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2011/10/09/360285.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IE报错提示“类不支持Automation操作”</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/10/08/360210.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Sat, 08 Oct 2011 09:43:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/10/08/360210.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/360210.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/10/08/360210.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/360210.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/360210.html</trackback:ping><description><![CDATA[<p>一段程序,IE上老是提示&#8220;类不支持Automation操作&#8221;的错误，IE6、7、8都一样，但是Firefox可以<br />重新注册下以下文件，问题便解决了：<br />msscript.ocx<br />dispex.dll<br />vbscript.dll<br />scrrun.dll<br />urlmon.dll</p>
<p>注册方法为，在开始运行里面运行 regsvr32 msscript.ocx 以此类推，注册完后清理一下浏览器缓存</p><img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/360210.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2011-10-08 17:43 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2011/10/08/360210.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle 10g 下载地址 </title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/09/15/358680.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Thu, 15 Sep 2011 02:35:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/09/15/358680.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/358680.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/09/15/358680.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/358680.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/358680.html</trackback:ping><description><![CDATA[<div id="cnblogs_post_body"><strong>Oracle Database 10g Release 2 (10.2.0.1.0) Enterprise/Standard Edition for Microsoft Windows (32-bit)</strong> 
<blockquote>http://download.oracle.com/otn/nt/oracle10g/10201/10201_database_win32.zip<br />http://download.oracle.com/otn/nt/oracle10g/10201/10201_client_win32.zip<br />http://download.oracle.com/otn/nt/oracle10g/10201/10201_clusterware_win32.zip<br />http://download.oracle.com/otn/nt/oracle10g/10201/10201_gateways_win32.zip</blockquote>
<p><wbr></p>
<p><strong>Oracle Database 10g Release 2 (10.2.0.1.0) Enterprise/Standard Edition for Microsoft Windows (x64)</strong></p>
<blockquote>http://download.oracle.com/otn/nt/oracle10g/10201/102010_win64_x64_database.zip<br />http://download.oracle.com/otn/nt/oracle10g/10201/102010_win64_x64_client.zip<br />http://download.oracle.com/otn/nt/oracle10g/10201/102010_win64_x64_clusterware.zip</blockquote>
<p><wbr></p>
<p><strong>Oracle Database 10g Release 2 (10.2.0.1.0) Enterprise/Standard Edition for Linux x86</strong></p>
<blockquote>http://download.oracle.com/otn/linux/oracle10g/10201/10201_database_linux32.zip<br />http://download.oracle.com/otn/linux/oracle10g/10201/10201_client_linux32.zip<br />http://download.oracle.com/otn/linux/oracle10g/10201/10201_gateways_linux32.zip</blockquote>
<p><wbr></p>
<p><strong>Oracle Database 10g Release 2 (10.2.0.1.0) Enterprise/Standard Edition for Linux x86-64</strong></p>
<blockquote>http://download.oracle.com/otn/linux/oracle10g/10201/10201_database_linux_x86_64.cpio.gz<br />http://download.oracle.com/otn/linux/oracle10g/10201/10201_client_linux_x86_64.cpio.gz<br />http://download.oracle.com/otn/linux/oracle10g/10201/10201_clusterware_linux_x86_64.cpio.gz<br />http://download.oracle.com/otn/linux/oracle10g/10201/10201_gateways_linux_x86_64.cpio.gz</blockquote>
<p><wbr></p>
<p><strong>Oracle Database 10g Release 2 (10.2.0.1.0) Enterprise/Standard Edition for AIX5L</strong></p>
<blockquote>http://download.oracle.com/otn/aix/oracle10g/10201/10gr2_aix5l64_database.cpio.gz<br />http://download.oracle.com/otn/aix/oracle10g/10201/10gr2_aix5l64_client.cpio.gz<br />http://download.oracle.com/otn/aix/oracle10g/10201/10gr2_aix5l64_cluster.cpio.gz<br />http://download.oracle.com/otn/aix/oracle10g/10201/10gr2_aix5l64_gateways.cpio.gz</blockquote>
<p><wbr></p>
<p><strong>Oracle Database 10g Release 2 (10.2.0.2) Enterprise/Standard Edition for Solaris Operating System (x86)</strong></p>
<blockquote>http://download.oracle.com/otn/solaris/oracle10g/10202/10202_database_solx86.zip<br />http://download.oracle.com/otn/solaris/oracle10g/10202/10202_client_solx86.zip<br />http://download.oracle.com/otn/solaris/oracle10g/10202/10202_clusterware_solx86.zip</blockquote>
<p><wbr></p>
<p><strong>Oracle Database 10g Release 2 (10.2.0.1.0) Enterprise/Standard Edition for Solaris Operating System (x86-64)</strong></p>
<blockquote>http://download.oracle.com/otn/solaris/oracle10g/10201/x8664/10201_database_solx86_64.zip<br />http://download.oracle.com/otn/solaris/oracle10g/10201/x8664/10201_client_solx86_64.zip<br />http://download.oracle.com/otn/solaris/oracle10g/10201/x8664/10201_clusterware_solx86_64.zip</blockquote><br /><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#83;&#104;&#97;&#110;&#83;&#104;&#97;&#110;&#49;&#49;&#50;&#52;&#49;&#49;&#55;&#51;&#48;&#55;&#55;&#51;&#64;&#113;&#113;&#46;&#99;&#111;&#109;">ShanShan112411730773@qq.com</a>&nbsp;&nbsp;</div><img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/358680.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2011-09-15 10:35 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2011/09/15/358680.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JDom解析xml学习笔记</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/08/17/356695.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Wed, 17 Aug 2011 02:51:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/08/17/356695.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/356695.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/08/17/356695.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/356695.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/356695.html</trackback:ping><description><![CDATA[<div>学习中发现两个哥们写的挺好的。转过来方便以后使用。谢谢那俩哥们了。<br /><a href="http://wuhongyu.iteye.com/blog/361842">http://wuhongyu.iteye.com/blog/361842</a><br />&nbsp;xml是一种广为使用的可扩展标记语言，java中解析xml的方式有很多，最常用的像jdom、dom4j、sax等等。前两天刚好有个程序需要解析xml，就学了下jdom，写了个小例子，这里做个学习笔记。 
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 要使用jdom解析xml文件，需要下载jdom的包，我使用的是jdom-1.1。解压之后，将lib文件夹下的.jar文件以及build文件夹下的jdom.jar拷贝到工程文件夹下，然后就可以使用jdom操作xml文件了。</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 一、读取xml文件</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 假设有这样一个xml文件：</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Xml代码 <a title="复制代码" href="http://wuhongyu.iteye.com/blog/361842#"><img alt="复制代码" src="http://wuhongyu.iteye.com/images/icon_copy.gif" /></a>&nbsp;<a title="收藏这段代码" href="javascript:void()"><img class="star" alt="收藏代码" src="http://wuhongyu.iteye.com/images/icon_star.png" /><img style="display: none" class="spinner" src="http://wuhongyu.iteye.com/images/spinner.gif"  alt="" /></a></div></div>
<ol class="dp-xml"><li><span><strong><font color="#006699"><span class="tag">&lt;?</span><span class="tag-name">xml</span></font></strong><span>&nbsp;</span><span class="attribute"><font color="#ff0000">version</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"1.0"</font></span><span>&nbsp;</span><span class="attribute"><font color="#ff0000">encoding</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"UTF-8"</font></span><span class="tag"><strong><font color="#006699">?&gt;</font></strong></span><span>&nbsp;&nbsp;</span></span></li><li><span></span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">sys-config</span><span class="tag">&gt;</span></font></strong><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">jdbc-info</span><span class="tag">&gt;</span></font></strong><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">driver-class-name</span><span class="tag">&gt;</span></font></strong><span>oracle.jdbc.driver.OracleDriver</span><strong><font color="#006699"><span class="tag">&lt;/</span><span class="tag-name">driver-class-name</span><span class="tag">&gt;</span></font></strong><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">url</span><span class="tag">&gt;</span></font></strong><span>jdbc:oracle:thin:@localhost:1521:database</span><strong><font color="#006699"><span class="tag">&lt;/</span><span class="tag-name">url</span><span class="tag">&gt;</span></font></strong><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">user-name</span><span class="tag">&gt;</span></font></strong><span>why</span><strong><font color="#006699"><span class="tag">&lt;/</span><span class="tag-name">user-name</span><span class="tag">&gt;</span></font></strong><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">password</span><span class="tag">&gt;</span></font></strong><span>why</span><strong><font color="#006699"><span class="tag">&lt;/</span><span class="tag-name">password</span><span class="tag">&gt;</span></font></strong><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><font color="#006699"><span class="tag">&lt;/</span><span class="tag-name">jdbc-info</span><span class="tag">&gt;</span></font></strong><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">provinces-info</span><span class="tag">&gt;</span></font></strong><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">province</span></font></strong><span>&nbsp;</span><span class="attribute"><font color="#ff0000">id</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"hlj"</font></span><span>&nbsp;</span><span class="attribute"><font color="#ff0000">name</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"黑龙江"</font></span><span class="tag"><strong><font color="#006699">&gt;</font></strong></span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">city</span></font></strong><span>&nbsp;</span><span class="attribute"><font color="#ff0000">id</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"harb"</font></span><span class="tag"><strong><font color="#006699">&gt;</font></strong></span><span>哈尔滨</span><strong><font color="#006699"><span class="tag">&lt;/</span><span class="tag-name">city</span><span class="tag">&gt;</span></font></strong><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">city</span></font></strong><span>&nbsp;</span><span class="attribute"><font color="#ff0000">id</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"nj"</font></span><span class="tag"><strong><font color="#006699">&gt;</font></strong></span><span>嫩江</span><strong><font color="#006699"><span class="tag">&lt;/</span><span class="tag-name">city</span><span class="tag">&gt;</span></font></strong><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><font color="#006699"><span class="tag">&lt;/</span><span class="tag-name">province</span><span class="tag">&gt;</span></font></strong><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">province</span></font></strong><span>&nbsp;</span><span class="attribute"><font color="#ff0000">id</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"jl"</font></span><span>&nbsp;</span><span class="attribute"><font color="#ff0000">name</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"吉林"</font></span><strong><font color="#006699"><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">province</span><span class="tag">&gt;</span></font></strong><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><font color="#006699"><span class="tag">&lt;/</span><span class="tag-name">provinces-info</span><span class="tag">&gt;</span></font></strong><span>&nbsp;&nbsp;</span></span></li><li><span></span><strong><font color="#006699"><span class="tag">&lt;/</span><span class="tag-name">sys-config</span><span class="tag">&gt;</span></font></strong><span>&nbsp;&nbsp;</span></span></li></ol></div><pre style="display: none" class="xml" title="jdom解析xml" pre_index="0" source_url="http://wuhongyu.iteye.com/blog/361842" codeable_type="Blog" codeable_id="361842" name="code">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;sys-config&gt;
	&lt;jdbc-info&gt;
		&lt;driver-class-name&gt;oracle.jdbc.driver.OracleDriver&lt;/driver-class-name&gt;
		&lt;url&gt;jdbc:oracle:thin:@localhost:1521:database&lt;/url&gt;
		&lt;user-name&gt;why&lt;/user-name&gt;
		&lt;password&gt;why&lt;/password&gt;
	&lt;/jdbc-info&gt;
	&lt;provinces-info&gt;
		&lt;province id="hlj" name="黑龙江"&gt;
			&lt;city id="harb"&gt;哈尔滨&lt;/city&gt;
			&lt;city id="nj"&gt;嫩江&lt;/city&gt;
		&lt;/province&gt;
		&lt;province id="jl" name="吉林"&gt;&lt;/province&gt;
	&lt;/provinces-info&gt;
&lt;/sys-config&gt;</pre>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 首先，用 org.jdom.input.SAXBuilder 这个类取得要操作的xml文件，会返回一个 org.jdom.Document 对象，这里需要做一下异常处理。然后，取得这个xml文件的根节点，org.jdom.Element 代表xml文件中的一个节点，取得跟节点后，便可以读取xml文件中的信息。利用 org.jdom.xpath.XPath 可以取得xml中的任意制定的节点中的信息。</p>
<p>&nbsp;&nbsp;&nbsp; 例如，要取得上面文件中的 &lt;jdbc-info&gt; 下的 &lt;driver-class-name&gt; 中的内容，先取得这个节点Element driverClassNameElement = (Element)XPath.selectSingleNode(rootEle, "//sys-config/jdbc-info/driver-class-name")，注意，根节点前要使用两个 "/" ，然后，用 driverClassNameElement.getText() 便可以取得这个节点下的信息。</p>
<p>&nbsp;&nbsp;&nbsp; 如果一个节点下有多个名称相同的子节点，可以用XPath.selectNodes()方法取得多个子节点的List，遍历这个List就可以操作各个子节点的内容了。</p>
<p>&nbsp;&nbsp;&nbsp; 下面是我写的读取上面xml文件的例子，比起文字描述更直观一些吧：</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Java代码 <a title="复制代码" href="http://wuhongyu.iteye.com/blog/361842#"><img alt="复制代码" src="http://wuhongyu.iteye.com/images/icon_copy.gif" /></a>&nbsp;<a title="收藏这段代码" href="javascript:void()"><img class="star" alt="收藏代码" src="http://wuhongyu.iteye.com/images/icon_star.png" /><img style="display: none" class="spinner" src="http://wuhongyu.iteye.com/images/spinner.gif"  alt="" /></a></div></div>
<ol class="dp-j"><li><span class="keyword"><font color="#7f0055">package</font></span><span>&nbsp;com.why.jdom; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span></span><span class="keyword"><font color="#7f0055">import</font></span><span>&nbsp;java.io.IOException; &nbsp;&nbsp;</span></span></li><li><span></span><span class="keyword"><font color="#7f0055">import</font></span><span>&nbsp;java.util.Iterator; &nbsp;&nbsp;</span></span></li><li><span></span><span class="keyword"><font color="#7f0055">import</font></span><span>&nbsp;java.util.List; &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;</span></li><li><span></span><span class="keyword"><font color="#7f0055">import</font></span><span>&nbsp;org.jdom.input.SAXBuilder; &nbsp;&nbsp;</span></span></li><li><span></span><span class="keyword"><font color="#7f0055">import</font></span><span>&nbsp;org.jdom.xpath.XPath; &nbsp;&nbsp;</span></span></li><li><span></span><span class="keyword"><font color="#7f0055">import</font></span><span>&nbsp;org.jdom.Document; &nbsp;&nbsp;</span></span></li><li><span></span><span class="keyword"><font color="#7f0055">import</font></span><span>&nbsp;org.jdom.Element; &nbsp;&nbsp;</span></span></li><li><span></span><span class="keyword"><font color="#7f0055">import</font></span><span>&nbsp;org.jdom.JDOMException; &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;</span></li><li><span></span><span class="keyword"><font color="#7f0055">public</font></span><span>&nbsp;</span><span class="keyword"><font color="#7f0055">class</font></span><span>&nbsp;ReadXML&nbsp;{ &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/** </span>&nbsp;</span></li><li><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;args </span>&nbsp;</li><li><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><font color="#7f0055">public</font></span><span>&nbsp;</span><span class="keyword"><font color="#7f0055">static</font></span><span>&nbsp;</span><span class="keyword"><font color="#7f0055">void</font></span><span>&nbsp;main(String[]&nbsp;args)&nbsp;{ &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SAXBuilder&nbsp;sax&nbsp;=&nbsp;</span><span class="keyword"><font color="#7f0055">new</font></span><span>&nbsp;SAXBuilder(); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><font color="#7f0055">try</font></span><span>&nbsp;{ &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Document&nbsp;doc&nbsp;=&nbsp;sax.build(</span><span class="string">"src/config.xml"</span><span>); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element&nbsp;rootEle&nbsp;=&nbsp;doc.getRootElement(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element&nbsp;driverClassNameElement&nbsp;=&nbsp;(Element)XPath.selectSingleNode(rootEle,&nbsp;</span><span class="string">"//sys-config/jdbc-info/driver-class-name"</span><span>); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;driverClassName&nbsp;=&nbsp;driverClassNameElement.getText(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span class="string">"driverClassName&nbsp;=&nbsp;"</span><span>&nbsp;+&nbsp;driverClassName); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;provinceList&nbsp;=&nbsp;XPath.selectNodes(rootEle,&nbsp;</span><span class="string">"//sys-config/provinces-info/province"</span><span>); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><font color="#7f0055">for</font></span><span>(Iterator&nbsp;it&nbsp;=&nbsp;provinceList.iterator();it.hasNext();){ &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element&nbsp;provinceEle&nbsp;=&nbsp;(Element)it.next(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;proId&nbsp;=&nbsp;provinceEle.getAttributeValue(</span><span class="string">"id"</span><span>); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;proName&nbsp;=&nbsp;provinceEle.getAttributeValue(</span><span class="string">"name"</span><span>); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span class="string">"provinceId&nbsp;=&nbsp;"</span><span>&nbsp;+&nbsp;proId&nbsp;+&nbsp;</span><span class="string">"&nbsp;&nbsp;&nbsp;provinceName&nbsp;=&nbsp;"</span><span>&nbsp;+&nbsp;proName); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;cityEleList&nbsp;=&nbsp;(List)provinceEle.getChildren(</span><span class="string">"city"</span><span>); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><font color="#7f0055">for</font></span><span>(Iterator&nbsp;cityIt&nbsp;=&nbsp;cityEleList.iterator();cityIt.hasNext();){ &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element&nbsp;cityEle&nbsp;=&nbsp;(Element)cityIt.next(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;cityId&nbsp;=&nbsp;cityEle.getAttributeValue(</span><span class="string">"id"</span><span>); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;cityName&nbsp;=&nbsp;cityEle.getText(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;cityId&nbsp;=&nbsp;"</span><span>&nbsp;+&nbsp;cityId&nbsp;+&nbsp;</span><span class="string">"&nbsp;&nbsp;&nbsp;cityName&nbsp;=&nbsp;"</span><span>&nbsp;+&nbsp;cityName); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="keyword"><font color="#7f0055">catch</font></span><span>&nbsp;(JDOMException&nbsp;e)&nbsp;{ &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;TODO&nbsp;自动生成&nbsp;catch&nbsp;块 </span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="keyword"><font color="#7f0055">catch</font></span><span>&nbsp;(IOException&nbsp;e)&nbsp;{ &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;TODO&nbsp;自动生成&nbsp;catch&nbsp;块 </span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>}&nbsp;&nbsp;</span></li></ol></div><pre style="display: none" class="java" title="jdom解析xml" pre_index="1" source_url="http://wuhongyu.iteye.com/blog/361842" codeable_type="Blog" codeable_id="361842" name="code">package com.why.jdom;

import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import org.jdom.input.SAXBuilder;
import org.jdom.xpath.XPath;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;

public class ReadXML {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		SAXBuilder sax = new SAXBuilder();
		try {
			Document doc = sax.build("src/config.xml");
			Element rootEle = doc.getRootElement();
			Element driverClassNameElement = (Element)XPath.selectSingleNode(rootEle, "//sys-config/jdbc-info/driver-class-name");
			String driverClassName = driverClassNameElement.getText();
			System.out.println("driverClassName = " + driverClassName);
			
			List provinceList = XPath.selectNodes(rootEle, "//sys-config/provinces-info/province");
			for(Iterator it = provinceList.iterator();it.hasNext();){
				Element provinceEle = (Element)it.next();
				String proId = provinceEle.getAttributeValue("id");
				String proName = provinceEle.getAttributeValue("name");

				System.out.println("provinceId = " + proId + "   provinceName = " + proName);
				
				List cityEleList = (List)provinceEle.getChildren("city");
				
				for(Iterator cityIt = cityEleList.iterator();cityIt.hasNext();){
					Element cityEle = (Element)cityIt.next();
					String cityId = cityEle.getAttributeValue("id");
					String cityName = cityEle.getText();

					System.out.println("    cityId = " + cityId + "   cityName = " + cityName);
				}
			}
		} catch (JDOMException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		} catch (IOException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}

	}

}
</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 二、写xml文件</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 写xml文件与读取xml文件的操作类似，利用 org.jdom.output.XMLOutputter 就可以将处理好的xml输出到文件了。可以设置文件的编码方式，不过一般使用UTF-8就可以了。代码如下：</p>
<p>&nbsp;</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Java代码 <a title="复制代码" href="http://wuhongyu.iteye.com/blog/361842#"><img alt="复制代码" src="http://wuhongyu.iteye.com/images/icon_copy.gif" /></a>&nbsp;<a title="收藏这段代码" href="javascript:void()"><img class="star" alt="收藏代码" src="http://wuhongyu.iteye.com/images/icon_star.png" /><img style="display: none" class="spinner" src="http://wuhongyu.iteye.com/images/spinner.gif"  alt="" /></a></div></div>
<ol class="dp-j"><li><span class="keyword"><font color="#7f0055">package</font></span><span>&nbsp;com.why.jdom; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span></span><span class="keyword"><font color="#7f0055">import</font></span><span>&nbsp;java.io.FileNotFoundException; &nbsp;&nbsp;</span></span></li><li><span></span><span class="keyword"><font color="#7f0055">import</font></span><span>&nbsp;java.io.FileOutputStream; &nbsp;&nbsp;</span></span></li><li><span></span><span class="keyword"><font color="#7f0055">import</font></span><span>&nbsp;java.io.IOException; &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;</span></li><li><span></span><span class="keyword"><font color="#7f0055">import</font></span><span>&nbsp;org.jdom.Document; &nbsp;&nbsp;</span></span></li><li><span></span><span class="keyword"><font color="#7f0055">import</font></span><span>&nbsp;org.jdom.Element; &nbsp;&nbsp;</span></span></li><li><span></span><span class="keyword"><font color="#7f0055">import</font></span><span>&nbsp;org.jdom.output.XMLOutputter; &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;</span></li><li><span></span><span class="keyword"><font color="#7f0055">public</font></span><span>&nbsp;</span><span class="keyword"><font color="#7f0055">class</font></span><span>&nbsp;WriteXML&nbsp;{ &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/** </span>&nbsp;</span></li><li><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;args </span>&nbsp;</li><li><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><font color="#7f0055">public</font></span><span>&nbsp;</span><span class="keyword"><font color="#7f0055">static</font></span><span>&nbsp;</span><span class="keyword"><font color="#7f0055">void</font></span><span>&nbsp;main(String[]&nbsp;args)&nbsp;{ &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;TODO&nbsp;自动生成方法存根 </span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element&nbsp;rootEle&nbsp;=&nbsp;</span><span class="keyword"><font color="#7f0055">new</font></span><span>&nbsp;Element(</span><span class="string">"sys-config"</span><span>); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element&nbsp;provincesEle&nbsp;=&nbsp;</span><span class="keyword"><font color="#7f0055">new</font></span><span>&nbsp;Element(</span><span class="string">"provinces-info"</span><span>); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element&nbsp;provinceEle&nbsp;=&nbsp;</span><span class="keyword"><font color="#7f0055">new</font></span><span>&nbsp;Element(</span><span class="string">"province"</span><span>); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;provinceEle.setAttribute(</span><span class="string">"id"</span><span>,</span><span class="string">"hlj"</span><span>); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;provinceEle.setAttribute(</span><span class="string">"name"</span><span>,</span><span class="string">"黑龙江省"</span><span>); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element&nbsp;cityEle1&nbsp;=&nbsp;</span><span class="keyword"><font color="#7f0055">new</font></span><span>&nbsp;Element(</span><span class="string">"city"</span><span>); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cityEle1.setAttribute(</span><span class="string">"id"</span><span>,</span><span class="string">"harb"</span><span>); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cityEle1.addContent(</span><span class="string">"哈尔滨"</span><span>); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element&nbsp;cityEle2&nbsp;=&nbsp;</span><span class="keyword"><font color="#7f0055">new</font></span><span>&nbsp;Element(</span><span class="string">"city"</span><span>); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cityEle2.setAttribute(</span><span class="string">"id"</span><span>,</span><span class="string">"nj"</span><span>); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cityEle2.addContent(</span><span class="string">"嫩江"</span><span>); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;provinceEle.addContent(cityEle1); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;provinceEle.addContent(cityEle2); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;provincesEle.addContent(provinceEle); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rootEle.addContent(provincesEle); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Document&nbsp;doc&nbsp;=&nbsp;</span><span class="keyword"><font color="#7f0055">new</font></span><span>&nbsp;Document(rootEle); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XMLOutputter&nbsp;out&nbsp;=&nbsp;</span><span class="keyword"><font color="#7f0055">new</font></span><span>&nbsp;XMLOutputter(); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span></span><span class="comment">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.setFormat(Format.getCompactFormat().setEncoding("GBK"));//设置文件编码，默认为UTF-8 </span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;xmlStr&nbsp;=&nbsp;out.outputString(doc); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(xmlStr); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><font color="#7f0055">try</font></span><span>&nbsp;{ &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.output(doc,&nbsp;</span><span class="keyword"><font color="#7f0055">new</font></span><span>&nbsp;FileOutputStream(</span><span class="string">"c:/test.xml"</span><span>)); &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="keyword"><font color="#7f0055">catch</font></span><span>&nbsp;(FileNotFoundException&nbsp;e)&nbsp;{ &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;TODO&nbsp;自动生成&nbsp;catch&nbsp;块 </span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="keyword"><font color="#7f0055">catch</font></span><span>&nbsp;(IOException&nbsp;e)&nbsp;{ &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;TODO&nbsp;自动生成&nbsp;catch&nbsp;块 </span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>}&nbsp;&nbsp;</span></li></ol></div></div><br /><a href="http://www.cnblogs.com/ling_yun/archive/2011/01/19/1939674.html">http://www.cnblogs.com/ling_yun/archive/2011/01/19/1939674.html</a><br /><br />
<div class="postTitle"><a id="ctl02_TitleUrl" class="postTitle2" href="http://www.cnblogs.com/ling_yun/archive/2011/01/19/1939674.html"><font color="#4371a6">jdom解析xml</font></a> </div>
<div id="cnblogs_post_body">
<p><span style="font-size: small"><span size="2">下面是xml文件:</span></span></p>
<p><span style="font-size: small"><span size="2">&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;persons&gt;<br />&nbsp;&lt;person perid="1001"&gt;<br />&nbsp;&nbsp;&lt;name&gt;lhu&lt;/name&gt;<br />&nbsp;&nbsp;&lt;age&gt;89&lt;/age&gt;<br />&nbsp;&nbsp;&lt;address&gt;安徽淮北&lt;/address&gt;<br />&nbsp;&nbsp;&lt;sex&gt;男&lt;/sex&gt;<br />&nbsp;&lt;/person&gt;<br />&nbsp;<br />&nbsp;&lt;person perid="1002"&gt;<br />&nbsp;&nbsp;&lt;name&gt;we&lt;/name&gt;<br />&nbsp;&nbsp;&lt;age&gt;56&lt;/age&gt;<br />&nbsp;&nbsp;&lt;address&gt;北京海淀&lt;/address&gt;<br />&nbsp;&nbsp;&lt;sex&gt;女&lt;/sex&gt;<br />&nbsp;&lt;/person&gt;<br />&lt;/persons&gt;<br /></span></span></p>
<p>&nbsp;</p>
<p><span style="font-size: small"><span size="2">下面是解析上面的xml文件:</span></span></p>
<p><span style="font-size: small"><span size="2">通过JDOM来解析,需要借助第三方的组件.jdom.jar,网上有1.0的版本下载</span></span></p>
<p><span style="font-size: small"><span size="2">package cn.com.jdom;</span></span></p>
<p><span style="font-size: small"><span size="2">import java.io.File;<br />import java.io.IOException;<br />import java.util.Iterator;<br />import java.util.List;</span></span></p>
<p><span style="font-size: small"><span size="2">import org.jdom.Attribute;<br />import org.jdom.Document;<br />import org.jdom.Element;<br />import org.jdom.JDOMException;<br />import org.jdom.ProcessingInstruction;<br />import org.jdom.input.SAXBuilder;</span></span></p>
<p><span style="font-size: small"><span size="2">import com.sun.xml.internal.bind.v2.runtime.Name;</span></span></p>
<p><span style="font-size: small"><span size="2">/**<br />&nbsp;* jdom解析xml文件<br />&nbsp;* <br />&nbsp;* @author&nbsp;ly&nbsp;* <br />&nbsp;*/<br />public class JDomXML {</span></span></p>
<p><span style="font-size: small"><span size="2">&nbsp;public JDomXML() {<br />&nbsp;}</span></span></p>
<p><span style="font-size: small"><span size="2">&nbsp;/**<br />&nbsp; * 解析xml文件<br />&nbsp; * @param xmlFile<br />&nbsp; */<br />&nbsp;public void parseXml(File xmlFile) {<br />&nbsp;&nbsp;SAXBuilder sax = new SAXBuilder();//在内存中建立一个sax文档模型<br />&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;Document xmlDom = sax.build(xmlFile);//创建文档<br />&nbsp;&nbsp;&nbsp;//获得文件的根元素<br />&nbsp;&nbsp;&nbsp;Element root = xmlDom.getRootElement();<br />&nbsp;&nbsp;&nbsp;System.out.println("根元素是:"+root.getName());<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;//获得根元素的子节点<br />&nbsp;&nbsp;&nbsp;List childList = root.getChildren();<br />&nbsp;&nbsp;&nbsp;Iterator listIt = childList.iterator();<br />&nbsp;&nbsp;&nbsp;while(listIt.hasNext()){<br />&nbsp;&nbsp;&nbsp;&nbsp;Element element = (Element)listIt.next();<br />&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("孩子结点是:"+element.getName());<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;//获得第一个孩子结点<br />&nbsp;&nbsp;&nbsp;Element firstChild = (Element) childList.get(0);<br />&nbsp;&nbsp;&nbsp;//获得孩子结点的属性<br />&nbsp;&nbsp;&nbsp;List attrList = firstChild.getAttributes();<br />&nbsp;&nbsp;&nbsp;Iterator attrIt = attrList.iterator();<br />&nbsp;&nbsp;&nbsp;while(attrIt.hasNext()){<br />&nbsp;&nbsp;&nbsp;&nbsp;Attribute&nbsp; attr = (Attribute ) attrIt.next();<br />&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("第一个元素的属性是:"+attr.getName());<br />&nbsp;&nbsp;&nbsp;&nbsp;//获得属性的值<br />&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("属性的值是:"+attr.getValue());<br />&nbsp;&nbsp;&nbsp;&nbsp;//获得属性的类型<br />&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("属性的类型是:"+attr.getAttributeType());<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;List sonList = firstChild.getChildren();<br />&nbsp;&nbsp;&nbsp;Iterator sonIt = sonList.iterator();<br />&nbsp;&nbsp;&nbsp;while(sonIt.hasNext()){<br />&nbsp;&nbsp;&nbsp;&nbsp;Element temp = (Element)sonIt.next();<br />&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("属性"+temp.getName()+"的值是:"+temp.getValue());<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;} catch (JDOMException e) {<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;} catch (IOException e) {<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;}<br />&nbsp;}<br />&nbsp;<br />&nbsp;public static void main(String[] args) {<br />&nbsp;&nbsp;JDomXML test = new JDomXML();<br />&nbsp;&nbsp;test.parseXml(new File("persons.xml"));<br />&nbsp;}<br />}</span><br /></span></p></div><script type="text/javascript">
if ($ != jQuery) {
	$ = jQuery.noConflict();
}
var isLogined = false;
var cb_blogId = 82791;
var cb_entryId = 1939674;
var cb_blogApp = "ling_yun";
var cb_blogUserGuid = "5d0479fe-d023-e011-ac81-842b2b196315";
var cb_entryCreatedDate = '2011/1/19 22:09:00';
</script><img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/356695.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2011-08-17 10:51 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2011/08/17/356695.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>魔兽争霸旁边有黑边</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/08/04/355743.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Thu, 04 Aug 2011 04:30:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/08/04/355743.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/355743.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/08/04/355743.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/355743.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/355743.html</trackback:ping><description><![CDATA[<pre id="best-answer-content" class="reply-text mb10">我的电脑也是这种问题  你可以通过注册表编辑器修改你的魔兽分辨率  这种问题一般出现在宽屏笔记本上
具体操作方法  </pre><pre class="reply-text mb10">打开开始菜单-运行-输入Regedit 打开注册表编辑器  </pre><pre class="reply-text mb10">展开 HKEY_CURRENT_USER  </pre><pre class="reply-text mb10">继续展开 Software</pre><pre class="reply-text mb10">继续展开 Blizzard Entertainment   </pre><pre class="reply-text mb10">在Warcraft III 里选择  Video   然后选择右边的 resheight（这个表示的是画面的长   ，填上你显示器的标准分辨率的长   记住  要选择10进制）   </pre><pre class="reply-text mb10"> 然后再选择reswidth  (这个表示的是画面的宽  ，填上你显示器标准分辨率的宽，一定要选择10进制） 然后打开魔兽  魔兽的画面就和你显示器的标准分辨率一样了     
举例   我的显示器标准分辨率是  1600 X 800     那么  resheight的键值就为800（10进制）      reswidth的键值就为1600（10进制）
</pre><img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/355743.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2011-08-04 12:30 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2011/08/04/355743.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>取消ireport自动分页</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/07/26/355080.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Tue, 26 Jul 2011 12:30:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/07/26/355080.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/355080.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/07/26/355080.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/355080.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/355080.html</trackback:ping><description><![CDATA[<div id="message1615382" class="t_msgfont"><strong><span style="font-size: 14px">两种方法：<br />1、要勾上 报表属性中 More...选项卡中的 Ignore Pagination<br />2、在jrxml文件中在jasperReport 中添加属性 isIgnorePagination="true"可以取消分页</span></strong> </div><img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/355080.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2011-07-26 20:30 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2011/07/26/355080.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java发送消息到RTX提醒</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/07/12/354189.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Tue, 12 Jul 2011 11:10:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/07/12/354189.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/354189.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/07/12/354189.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/354189.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/354189.html</trackback:ping><description><![CDATA[首先安装RTX的服务器端与客户端。具体安装请参考RTX官方网站的文档。<br /><br />第一种方式使用RTX官方提供的API调用发送消息的接口。 
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTXSvrApi&nbsp;RtxsvrapiObj&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;RTXSvrApi();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RtxsvrapiObj.setServerPort(</span><span style="color: #000000">6000</span><span style="color: #000000">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;receivers&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">woailuo</span><span style="color: #000000">"</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;title&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">RTX测试</span><span style="color: #000000">"</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;msg&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">腾讯|http://www.qq.com</span><span style="color: #000000">"</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;delayTime&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">0</span><span style="color: #000000">"</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;urlid&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;msgid&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;iRet&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(RtxsvrapiObj.Init());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(&nbsp;RtxsvrapiObj.Init())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iRet&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;RtxsvrapiObj.sendNotify(receivers,&nbsp;title,&nbsp;msg,&nbsp;urlid,&nbsp;msgid,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delayTime);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(iRet&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">发送成功</span><span style="color: #000000">"</span><span style="color: #000000">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">发送失败</span><span style="color: #000000">"</span><span style="color: #000000">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RtxsvrapiObj.UnInit();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p><br />第二种通过调用RTX服务器CGI的方式实现。</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;IOException&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;sendImg&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">/SendNotify.cgi?</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;RTX发送消息接口</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;host&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">127.0.0.1</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;RTX服务器地址</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;getSessionkey&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">/getsessionkey.cgi?</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;RTX获取会话接口</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;port&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">8012</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;RTX服务器监听端口</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;receiverss&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;{&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">woailuo</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;};&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;接收人，RTX帐号</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;sender&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">zilaiye</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;发送人</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;content&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">[RTX培训|www.qq.com]</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;内容</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;sendMsgParams&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;StringBuffer(sendImg);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;receiveUrlStr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;StringBuffer();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;receiverss.length;&nbsp;</span><span style="color: #000000">++</span><span style="color: #000000">i)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(receiveUrlStr.length()&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;receiveUrlStr.append(receiverss[i]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;receiveUrlStr.append(</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;receiverss[i]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendMsgParams.append(</span><span style="color: #000000">"</span><span style="color: #000000">&amp;receiver=</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;receiveUrlStr);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(content&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendMsgParams.append(</span><span style="color: #000000">"</span><span style="color: #000000">&amp;msg=</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;String(content.getBytes(</span><span style="color: #000000">"</span><span style="color: #000000">utf-8</span><span style="color: #000000">"</span><span style="color: #000000">),&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">utf-8</span><span style="color: #000000">"</span><span style="color: #000000">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(sender&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendMsgParams.append(</span><span style="color: #000000">"</span><span style="color: #000000">&amp;sender=</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;sender);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;URL&nbsp;url&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;URL(</span><span style="color: #000000">"</span><span style="color: #000000">HTTP</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;host,&nbsp;port,&nbsp;sendMsgParams.toString());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpURLConnection&nbsp;httpconn&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(HttpURLConnection)&nbsp;url.openConnection();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;ret&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;httpconn.getHeaderField(</span><span style="color: #000000">3</span><span style="color: #000000">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p><br />&nbsp;</p><img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/354189.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2011-07-12 19:10 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2011/07/12/354189.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>以HTTP形式获取图片流并写入另一个图片。</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/06/16/352409.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Thu, 16 Jun 2011 03:15:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/06/16/352409.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/352409.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/06/16/352409.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/352409.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/352409.html</trackback:ping><description><![CDATA[<div>图片流操作：<br />
<div>
<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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">conn.getInputStream()获取url所访问图片的InputStream字节流<br /><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">formatName是图片的扩展名如：&#8220;jpg/gif&#8221;等<br /><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">Constant.PATH为新图片的地址<br /><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">pictureName新图片的名称</span><span style="color: #008000"><br /><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;smsUrl&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">http://</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;resConfig.getCommonShowAddress()</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">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;sms.getSmsUrl();<br /><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;URL&nbsp;url&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;URLConnection&nbsp;conn&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;URL(smsUrl);<br /><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;url.openConnection();<br /><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedImage&nbsp;image&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ImageIO.read(conn.getInputStream());<br /><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;formatName&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;filePostfix.substring(</span><span style="color: #000000">1</span><span style="color: #000000">,&nbsp;filePostfix.length());<br /><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ImageIO.write(image,&nbsp;formatName,&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;File(Constant.PATH,&nbsp;pictureName));</span></div></div><br />如果不是图片：<br />&nbsp;&nbsp;&nbsp;&nbsp;jar包是uploadbean.jar<br />&nbsp;&nbsp;&nbsp;&nbsp;UploadBean 使用的是javazoom.upload.UploadBean<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;String filename = user.getUserName() + Constant.getDate() + ".lst";&nbsp; //信息索引文件<br />&nbsp;&nbsp;&nbsp;&nbsp;String bodyFileName = Constant.getDate() + ".tel";&nbsp;//电话文件<br />&nbsp;&nbsp;&nbsp;&nbsp;String messageFileName = Constant.getDate() + ".txt"; //彩信的文本内容。<br />&nbsp;&nbsp;&nbsp;&nbsp;String pictureName = Constant.getDate() +filePostfix ; &nbsp;//图片名称<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;UploadBean upload = new UploadBean();<br />&nbsp;&nbsp;&nbsp;&nbsp;upload.setParser(MultipartFormDataRequest.COSPARSER);<br />&nbsp;&nbsp;&nbsp;&nbsp;upload.setWhitelist(Constant.WHITELIST);<br />&nbsp;&nbsp;&nbsp;&nbsp;upload.setFolderstore(Constant.PATH);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;telStr = strBuff.toString().trim();<br />&nbsp;&nbsp;&nbsp;&nbsp;FileOutputStream bodyfos = new FileOutputStream(new File(Constant.PATH, bodyFileName));<br />&nbsp;&nbsp;&nbsp;&nbsp;BufferedWriter bodytbw = new BufferedWriter(new OutputStreamWriter(bodyfos, "GBK"));<br />&nbsp;&nbsp;&nbsp;&nbsp;bodytbw.write("\"" + telStr + "\"");<br />&nbsp;&nbsp;&nbsp;&nbsp;bodytbw.flush();<br />&nbsp;&nbsp;&nbsp;&nbsp;bodytbw.close();<br />&nbsp;&nbsp;&nbsp;&nbsp;bodyfos.close();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;生成的文件名称有中文。<br />&nbsp;&nbsp;&nbsp;&nbsp;FileOutputStream fos = new FileOutputStream(new File(Constant.PATH, new String(filename.getBytes("GBK"))));<br />&nbsp;&nbsp;&nbsp;&nbsp;BufferedWriter stdout = new BufferedWriter(new OutputStreamWriter(fos, "GBK"));<br />&nbsp;&nbsp;&nbsp;&nbsp;stdout.write(sb.toString());//sb.toString()是写入文件的内容。<br />&nbsp;&nbsp;&nbsp;&nbsp;stdout.flush();<br />&nbsp;&nbsp;&nbsp;&nbsp;stdout.close();<br />&nbsp;&nbsp;&nbsp;&nbsp;fos.close();</div><img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/352409.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2011-06-16 11:15 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2011/06/16/352409.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>验证上传File的类型与大小的js</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/06/10/352048.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Fri, 10 Jun 2011 08:05:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/06/10/352048.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/352048.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/06/10/352048.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/352048.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/352048.html</trackback:ping><description><![CDATA[<div style="border-right-color: #cccccc; border-right-width: 1px; border-right-style: solid; padding-right: 5px; border-top-color: #cccccc; border-top-width: 1px; border-top-style: solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom-color: #cccccc; border-bottom-width: 1px; border-bottom-style: solid; background-color: #eeeeee; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;checkForm(){<br /></span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">filePic</span><span style="color: #000000">"</span><span style="color: #000000">).value.toLowerCase();<br /></span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;ext&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;str.split(</span><span style="color: #000000">"</span><span style="color: #000000">.</span><span style="color: #000000">"</span><span style="color: #000000">);<br /></span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;type&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;fileType.split(</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">);<br /></span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">type.length;i</span><span style="color: #000000">++</span><span style="color: #000000">){<br /></span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(ext[</span><span style="color: #000000">1</span><span style="color: #000000">]</span><span style="color: #000000">==</span><span style="color: #000000">type[i]){<br /></span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isTypeRight</span><span style="color: #000000">=</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br /></span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(isTypeRight){<br /></span><span style="color: #008080">11</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;boolSize&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;checkSize(str);<br /></span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(boolSize){<br /></span><span style="color: #008080">13</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">14</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000ff">else</span><span style="color: #000000">{<br /></span><span style="color: #008080">15</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</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">fileMaxSize</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">KB</span><span style="color: #000000">"</span><span style="color: #000000">);<br /></span><span style="color: #008080">16</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">17</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000ff">else</span><span style="color: #000000">{<br /></span><span style="color: #008080">18</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isTypeRight&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br /></span><span style="color: #008080">19</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</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">type</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 /></span><span style="color: #008080">20</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">21</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">22</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">23</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;checkSize(fileName){<br /></span><span style="color: #008080">24</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;img&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Image();<br /></span><span style="color: #008080">25</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;img.src</span><span style="color: #000000">=</span><span style="color: #000000">str;<br /></span><span style="color: #008080">26</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;fso</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ActiveXObject(</span><span style="color: #000000">"</span><span style="color: #000000">Scripting.FileSystemObject</span><span style="color: #000000">"</span><span style="color: #000000">);<br /></span><span style="color: #008080">27</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;fsize</span><span style="color: #000000">=</span><span style="color: #000000">fso.GetFile(fileName).Size;<br /></span><span style="color: #008080">28</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(fsize);<br /></span><span style="color: #008080">29</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(img.readyState</span><span style="color: #000000">!=</span><span style="color: #000000">"</span><span style="color: #000000">complete</span><span style="color: #000000">"</span><span style="color: #000000">){<br /></span><span style="color: #008080">30</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isTypeRight</span><span style="color: #000000">=</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br /></span><span style="color: #008080">31</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br /></span><span style="color: #008080">32</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000ff">else</span><span style="color: #000000">{<br /></span><span style="color: #008080">33</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(fsize</span><span style="color: #000000">&gt;</span><span style="color: #000000">fileMaxSize){<br /></span><span style="color: #008080">34</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isTypeRight</span><span style="color: #000000">=</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br /></span><span style="color: #008080">35</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br /></span><span style="color: #008080">36</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000ff">else</span><span style="color: #000000">{<br /></span><span style="color: #008080">37</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isTypeRight</span><span style="color: #000000">=</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br /></span><span style="color: #008080">38</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br /></span><span style="color: #008080">39</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">40</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">41</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">42</span>&nbsp;<span style="color: #000000"></span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span></div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">script&nbsp;language</span><span style="color: #000000; ">=</span><span style="color: #000000; ">javascript</span><span style="color: #000000; ">&gt;</span><span style="color: #008000; "><br />/*</span><span style="color: #008000; ">-----------------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;文件上传前台控制检测程序&nbsp;v0.5<br /><br />&nbsp;&nbsp;检测上传文件类型<br /><br />　检测图片文件格式是否正确<br />　检测图片文件大小<br />　检测图片文件宽度<br />　检测图片文件高度<br />&nbsp;<br />&nbsp;&nbsp;For&nbsp;51js.com&nbsp;Author:333&nbsp;Date:2005/08/26<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UpDate:2005/08/27<br />&nbsp;------------------------------------------</span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br /><br />var&nbsp;ImgObj</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;Image();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">建立一个图像对象</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">var&nbsp;AllImgExt</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">.jpg|.jpeg|.gif|</span><span style="color: #000000; ">"</span><span style="color: #008000; ">//</span><span style="color: #008000; ">全部图片格式类型</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">var&nbsp;FileObj,ImgFileSize,ImgWidth,ImgHeight,FileExt,ErrMsg</span><span style="color: #008000; ">//</span><span style="color: #008000; ">全局变量&nbsp;图片相关属性<br /><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">以下为限制变量</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">var&nbsp;AllowExt</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">.jpg|.gif|.doc|.txt|.midi|.jpeg|.mid|</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">允许上传的文件类型&nbsp;?为无限制&nbsp;每个扩展名后边要加一个"|"&nbsp;小写字母表示<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">var&nbsp;AllowExt=0</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">var&nbsp;AllowImgFileSize</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">允许上传图片文件的大小&nbsp;0为无限制&nbsp;&nbsp;单位：KB&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">var&nbsp;AllowImgWidth</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; ">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">允许上传的图片的宽度&nbsp;?为无限制　单位：px(像素)</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">var&nbsp;AllowImgHeight</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; ">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">允许上传的图片的高度&nbsp;?为无限制　单位：px(像素)</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br />function&nbsp;CheckProperty(obj)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">检测图像属性</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">{<br />&nbsp;&nbsp;FileObj</span><span style="color: #000000; ">=</span><span style="color: #000000; ">obj;<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(ErrMsg</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">""</span><span style="color: #000000; ">)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">检测是否为正确的图像文件　返回出错信息并重置</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;FileObj.outerHTML</span><span style="color: #000000; ">=</span><span style="color: #000000; ">FileObj.outerHTML;<br />&nbsp;&nbsp;&nbsp;&nbsp;alert(ErrMsg);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">返回</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(ImgObj.readyState</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">complete</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">如果图像是未加载完成进行循环检测</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;setTimeout(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">CheckProperty(FileObj)</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">500</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;ImgFileSize</span><span style="color: #000000; ">=</span><span style="color: #000000; ">Math.round(ImgObj.fileSize</span><span style="color: #000000; ">/</span><span style="color: #000000; ">1024</span><span style="color: #000000; ">);</span><span style="color: #008000; ">//</span><span style="color: #008000; ">取得图片文件的大小</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;ImgWidth</span><span style="color: #000000; ">=</span><span style="color: #000000; ">ImgObj.width&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">取得图片的宽度</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;ImgHeight</span><span style="color: #000000; ">=</span><span style="color: #000000; ">ImgObj.height;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">取得图片的高度</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(AllowImgWidth</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">AllowImgWidth</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">ImgWidth)<br />&nbsp;&nbsp;&nbsp;&nbsp;ErrMsg</span><span style="color: #000000; ">=</span><span style="color: #000000; ">ErrMsg</span><span style="color: #000000; ">+</span><span style="color: #000000; ">"</span><span style="color: #000000; ">\n图片宽度超过限制。请上传宽度小于</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">AllowImgWidth</span><span style="color: #000000; ">+</span><span style="color: #000000; ">"</span><span style="color: #000000; ">px的文件，当前图片宽度为</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">ImgWidth</span><span style="color: #000000; ">+</span><span style="color: #000000; ">"</span><span style="color: #000000; ">px</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br /><br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(AllowImgHeight</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">AllowImgHeight</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">ImgHeight)<br />&nbsp;&nbsp;&nbsp;&nbsp;ErrMsg</span><span style="color: #000000; ">=</span><span style="color: #000000; ">ErrMsg</span><span style="color: #000000; ">+</span><span style="color: #000000; ">"</span><span style="color: #000000; ">\n图片高度超过限制。请上传高度小于</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">AllowImgHeight</span><span style="color: #000000; ">+</span><span style="color: #000000; ">"</span><span style="color: #000000; ">px的文件，当前图片高度为</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">ImgHeight</span><span style="color: #000000; ">+</span><span style="color: #000000; ">"</span><span style="color: #000000; ">px</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br /><br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(AllowImgFileSize</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">AllowImgFileSize</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">ImgFileSize)<br />&nbsp;&nbsp;&nbsp;&nbsp;ErrMsg</span><span style="color: #000000; ">=</span><span style="color: #000000; ">ErrMsg</span><span style="color: #000000; ">+</span><span style="color: #000000; ">"</span><span style="color: #000000; ">\n图片文件大小超过限制。请上传小于</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">AllowImgFileSize</span><span style="color: #000000; ">+</span><span style="color: #000000; ">"</span><span style="color: #000000; ">KB的文件，当前文件大小为</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">ImgFileSize</span><span style="color: #000000; ">+</span><span style="color: #000000; ">"</span><span style="color: #000000; ">KB</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br /><br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(ErrMsg</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">""</span><span style="color: #000000; ">)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">返回出错信息并重置</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;FileObj.outerHTML</span><span style="color: #000000; ">=</span><span style="color: #000000; ">FileObj.outerHTML;<br />&nbsp;&nbsp;&nbsp;&nbsp;alert(ErrMsg);<br />&nbsp;&nbsp;}<br />}<br /><br />ImgObj.onerror</span><span style="color: #000000; ">=</span><span style="color: #000000; ">function(){ErrMsg</span><span style="color: #000000; ">=</span><span style="color: #000000; ">'</span><span style="color: #000000; ">\n图片格式不正确或者图片已损坏!</span><span style="color: #000000; ">'</span><span style="color: #000000; ">}<br /><br />function&nbsp;CheckExt(obj)<br />{<br />&nbsp;&nbsp;ErrMsg</span><span style="color: #000000; ">=</span><span style="color: #000000; ">""</span><span style="color: #000000; "><br />&nbsp;&nbsp;FileExt</span><span style="color: #000000; ">=</span><span style="color: #000000; ">obj.value.substr(obj.value.lastIndexOf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">.</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)).toLowerCase();<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(AllowExt</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">AllowExt.indexOf(FileExt</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; ">==-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">判断文件类型是否允许上传</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;ErrMsg</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">该文件类型不允许上传。请上传&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">AllowExt</span><span style="color: #000000; ">+</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;类型的文件，当前文件类型为</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">FileExt;<br />&nbsp;&nbsp;&nbsp;&nbsp;obj.outerHTML</span><span style="color: #000000; ">=</span><span style="color: #000000; ">obj.outerHTML;<br />&nbsp;&nbsp;&nbsp;&nbsp;alert(ErrMsg);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(AllImgExt.indexOf(FileExt</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; ">!=-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">如果图片文件，则进行图片信息处理</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;ImgObj.src</span><span style="color: #000000; ">=</span><span style="color: #000000; ">obj.value;<br />&nbsp;&nbsp;&nbsp;&nbsp;CheckProperty(obj);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;}<br />}<br /><br /></span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">script</span><span style="color: #000000; ">&gt;</span></div><img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/352048.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2011-06-10 16:05 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2011/06/10/352048.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简单的远程通信java.net.URL</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/05/31/351475.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Tue, 31 May 2011 15:48:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/05/31/351475.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/351475.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/05/31/351475.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/351475.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/351475.html</trackback:ping><description><![CDATA[<span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><span style="line-height: 19px; font-family: 'Comic Sans MS'; font-size: 13px" class="Apple-style-span"><span style="color: rgb(0,0,0)">首先提供一个巨人写的blog地址：<a href="http://www.blogjava.net/supercrsky/articles/247449.html">http://www.blogjava.net/supercrsky/articles/247449.html</a><br />以后可以参考，写的很详细很不错。<br />例如：两个服务器硬件服务器A和硬件服务器B，A中跑着应用服务器tomcat-X（服务器端），B中跑着应用服务器tomcat-Y（客户端）；<br />1、简单的从服务器X端向另一个服务器Y端的一个Action请求，由Y返回给X一个信息。<br />//请求的url地址，从X中使用此链接带一些参数给Y<br />String urlPath = "<a href='http://"+server.getResSynAddress()+":"+server.getProgramPort()+"/"+server.getProgramName()+"/server.do?method=checkServerForStudy&amp;serverId="+server.getId()+"&amp;resCode="+resCode+"&amp;ip="+ip' href_cetemp='http://"+server.getResSynAddress()+":"+server.getProgramPort()+"/"+server.getProgramName()+"/server.do?method=checkServerForStudy&amp;serverId="+server.getId()+"&amp;resCode="+resCode+"&amp;ip="+ip'>http://"+server.getResSynAddress()+":"+server.getProgramPort()+"/"+server.getProgramName()+"/server.do?method=checkServerForStudy&amp;serverId="+server.getId()+"&amp;resCode="+resCode+"&amp;ip="+ip</a>;<br />&nbsp;&nbsp;try{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;URL url = new URL(urlPath);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HttpURLConnection httpurlconnection = (HttpURLConnection) url.openConnection();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; httpurlconnection.setDoOutput(true);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; httpurlconnection.setConnectTimeout(10000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; httpurlconnection.setRequestMethod("POST");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; httpurlconnection.connect();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hf = httpurlconnection.getHeaderField("hf");&nbsp; //获取Y发回来的东东。<br />&nbsp;&nbsp;}catch(Exception e){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;}<br /><br />public ActionForward checkServerForStudy(ActionMapping mapping, ActionForm form,<br />&nbsp;&nbsp;&nbsp;HttpServletRequest request, HttpServletResponse response)<br />&nbsp;&nbsp;&nbsp;throws Exception {<br />//一些处理逻辑，没必要看了。<br />&nbsp;&nbsp;&nbsp;String pathStrName1 = server.getResUploadAddr()+ resource.getUrlOfUpload();<br />&nbsp;&nbsp;&nbsp;File file1 = null;<br />&nbsp;&nbsp;&nbsp;File file2 = null;<br />&nbsp;&nbsp;&nbsp;boolean flag1 = false;<br />&nbsp;&nbsp;&nbsp;boolean flag2 = false;<br />&nbsp;&nbsp;&nbsp;&nbsp;String pathStrName2 = server.getResUploadAddr()+ resource.getPathOfPlay()+"/imsmanifest.xml";<br />&nbsp;&nbsp;&nbsp;&nbsp;file1 = new File(pathStrName1);<br />&nbsp;&nbsp;&nbsp;&nbsp;flag1 = file1.exists();<br />&nbsp;&nbsp;&nbsp;&nbsp;file2 = new File(pathStrName2);<br />&nbsp;&nbsp;&nbsp;&nbsp;flag2 = file2.exists();<br />&nbsp;&nbsp;if(flag1==true&amp;&amp;flag2==true){<br />&nbsp;&nbsp;&nbsp;response.setHeader("hf", "1");&nbsp;&nbsp; //此处返回给X端一些东东；<br />&nbsp;&nbsp;}else{<br />&nbsp;&nbsp;&nbsp;response.setHeader("hf", "0");&nbsp;&nbsp;&nbsp; <font size="2">//此处返回给X端一些东东；</font><br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;return null;<br />&nbsp;}<br />ok这样就实现了简单的远程通信。并不需要使用response.sendRedirect("url");这样的代码去从X服务器跳到Y服务器处理相关的逻辑。为什么非要跳到Y上呢？因为我需要检查本地磁盘是否有我要的东西，也就是<font size="2">&nbsp;File file1</font>&nbsp; = new File();<br /><br /><br /><br /><br /></span></span></span><img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/351475.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2011-05-31 23:48 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2011/05/31/351475.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java获取真实的全路径</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/01/18/343126.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Tue, 18 Jan 2011 01:50:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/01/18/343126.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/343126.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/01/18/343126.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/343126.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/343126.html</trackback:ping><description><![CDATA[request.getScheme()----&gt;http;<br />
InetAddress.getLocalHost().getHostAddress()-----&gt;应用所在的地址如：10.1.1.134;<br />
request.getServerPort()-----&gt;获取应用的端口好如：8080<br />
request.getContextPath()-----&gt;获取工程的名称如：javaTest<br />
<br />
例子：<br />
request.getScheme()+"://"+InetAddress.getLocalHost().getHostAddress()+":"+request.getServerPort()+request.getContextPath()+"/approvalsExe.do?method=apprList&amp;seq=1&amp;mNumber=Approvals_module<br />
<br />
<a href="http://10.1.1.134:8080/javaTest/approvalsExe.do?method=apprList&amp;seq=1&amp;mNumber=Approvals_module">http://10.1.1.134:8080/javaTest/approvalsExe.do?method=apprList&amp;seq=1&amp;mNumber=<u>Approvals</u>_module</a><br />
<img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/343126.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2011-01-18 09:50 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2011/01/18/343126.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>