锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲五月六月丁香激情,亚洲日本VA午夜在线电影,亚洲人成人伊人成综合网无码http://m.tkk7.com/kingwell/category/8834.htmlAspire to Professionalismzh-cnTue, 27 Feb 2007 12:56:54 GMTTue, 27 Feb 2007 12:56:54 GMT60浣跨敤 Apache Pluto 鏋勫緩鍜屾祴璇?JSR 168 鍏煎鐨?portlets http://m.tkk7.com/kingwell/articles/48560.htmlKingWellKingWellSun, 28 May 2006 01:03:00 GMThttp://m.tkk7.com/kingwell/articles/48560.htmlhttp://m.tkk7.com/kingwell/comments/48560.htmlhttp://m.tkk7.com/kingwell/articles/48560.html#Feedback0http://m.tkk7.com/kingwell/comments/commentRss/48560.htmlhttp://m.tkk7.com/kingwell/services/trackbacks/48560.htmlApache Pluto 鏄?Java鈩?寮鍙戜漢鍛樺彲浠ヨ嚜鐢變嬌鐢ㄧ殑宸ュ叿錛岀敤鏉ユ祴璇曚粬浠殑 portlets 鏄惁閬靛驚 JSR 168 Portlet 瑙勮寖銆傚紑鍙戜漢鍛?Mark Talbot 鍜?Kulvir Singh Bhogal 甯﹂鎮(zhèn)ㄥ涔?portlet 嫻嬭瘯銆傛?zhèn)畣瀹夎?Pluto錛屾瀯寤恒佺紪璇戝拰鎵撳寘涓涓畝鍗曠殑 portlet錛屽茍灝嗗畠閮ㄧ講鍒?Pluto 浠ユ祴璇曞畠鐨?JSR 168 鍏煎鎬с傛?zhèn)q樺皢浜嗚В鍒?Portlet 瑙勮寖鐨勪笅涓涓増鏈皢淇濈暀鍝簺鍐呭銆?/blockquote>

2003 騫?10 鏈堬紝Java Community Process 鍙戝竷浜?Java Specification Request (JSR) 168鐨勬渶緇堢増鏈細Portlet Specification錛堝弬瑙?鍙傝冭祫鏂?/font>錛夈侸SR 168 闃愯堪鐨勬槸絎竴涓?Java portlet 寮鍙戠殑緙栫▼鏍囧噯銆備互鍓嶏紝涓?WebSphere Portal Server 寮鍙戠殑 portlet 涓嶈兘鍦ㄥ彟澶栫殑 portlet 瀹瑰櫒錛堜緥濡?BEA WebLogic Portal錛変腑榪愯銆侾ortlet 瀹瑰櫒涓嶆槸 J2EE 搴旂敤鏈嶅姟鍣ㄦ墍蹇呴渶鐨勭粍浠躲傜劧鑰岋紝榪欑鍙Щ妞嶆х殑緙哄皯鏄笌鏍囧噯 J2EE 浼佷笟綰у簲鐢ㄧ▼搴忕浉鑳岀鐨勶紝鏍囧噯 J2EE 浼佷笟綰у簲鐢ㄧ▼搴忥紙褰撴牴鎹鑼冩瀯寤烘椂錛夊彲浠ラ儴緗插埌浠諱綍涓?J2EE 鍏煎鐨勫簲鐢ㄦ湇鍔″櫒涓傜己灝?portlet 鍙Щ妞嶆у拰鐩稿叧鍘傚晢鐨勯攣瀹氶樆姝紒涓氳喘涔伴棬鎴鋒湇鍔″櫒銆傞氳繃緇撴潫 portlet 寮鍙戠殑娣蜂貢鐘舵侊紝JSR 168 騫蟲伅浜嗛偅浜涗紒涓氱殑鎷呭咖銆?/p>
JSR 168 Portlet API 鏄浉褰撳箍娉涚殑銆傛湰鏂囦笉鎵撶畻鎴愪負 JSR 168 鐨勬暀紼嬶紝鍥犳鎴戜滑灝嗕笉鍘繪繁鍏ラ捇鐮旇繖浜?API銆傚鏋滄?zhèn)ㄤ笉鐔熸?zhèn)?JSR 168 API錛?寤鴻鎮(zhèn)ㄨ姳涓浜涙椂闂村幓鐔熸?zhèn)?鍙傝冭祫鏂?/font> 涓殑涓浜涙潗鏂欍?

Java 寮鍙戜漢鍛樺叿鏈変竴涓彲浠ヨ嚜鐢辮幏寰楃殑宸ュ叿錛岀敤鏉ユ祴璇曚粬浠紪鍐欑殑 portlets 鏄惁涓?Portlet 瑙勮寖鐩鎬竴鑷淬侫pache Pluto 鏄?JSR 168 鐨勫弬鑰冨疄鐜幫紝鏄疄鐜頒簡 Portlet API 鐨?portlet 瀹瑰櫒銆傚儚 Pluto 鍜?IBM WebSphere Portal Server 榪欐牱鐨?portlet 瀹瑰櫒鍏呭綋 portlets 鐨勮繍琛屾椂鐜錛屼笌 web 搴旂敤鏈嶅姟鍣ㄧ殑 servlet 瀹瑰櫒鐨勮繍琛屾椂鐜鏀寔 servlet 鐨勬儏褰㈤潪甯哥浉浼箋備絾鏄紝portlet 瀹瑰櫒涓嶆槸鐙珛鐨勶紝瀹冨瓨鍦ㄤ簬 servlet 瀹瑰櫒鐨勯《閮ㄥ茍渚濊禆浜庡畠鐨勬湇鍔°傚湪鏈枃涓紝鎴戜滑灝嗕負鎮(zhèn)ㄦ紨紺哄浣曠紪鍐欑畝鍗曠殑 portlet 騫朵嬌鐢?Pluto portlet 瀹瑰櫒嫻嬭瘯瀹冦?

瀹夎 Pluto

Apache Pluto 闇瑕?Java SE 5銆傚鏋滄?zhèn)q樻病鏈夊畨瑁呮鐗堟湰鐨?JDK錛屼笅杞藉茍瀹夎瀹冧互緇х畫榪涜鏈枃鐨勭粌涔?fàn)锛堝弬瑙?鍙傝冭祫鏂?/font>錛夈?/p>

濡傛灉 JAVA_HOME 宸茬粡璁劇疆涓哄湪鎮(zhèn)ㄧ殑緋葷粺涓婂畨瑁呯殑鍏堝墠鐗堟湰鐨?JVM錛?鏇存敼瀹冧細浣垮凡鏈夌殑渚濊禆 JVM 鐨勫簲鐢ㄧ▼搴忓穿婧冦傚鏋滃凡緇忓畨瑁呬簡鑰佺増鏈殑 JVM錛屾?zhèn)ㄥ簲璇ョ洿鎺ュ?Pluto 鍚姩鑴氭湰涓洿鏂?JAVA_HOME 鍙橀噺錛?Windows 緋葷粺涓婄殑 startup.bat 鎴栬?Linux 涓婄殑 startup.sh銆?/p>

鎺ヤ笅鏉ワ紝闇瑕佽緗拰鏇存敼 JAVA_HOME 鐜鍙橀噺錛孭luto 寮曠敤瀹冩潵鏌ユ壘 JVM錛堥粯璁ゆ儏鍐典笅錛孲un 鐨勫畨瑁呯▼搴忎笉璁劇疆 JAVA_HOME 鐨勫鹼級銆傚鏋滃湪緋葷粺涓婃病鏈夊畨瑁呬互鍓嶇増鏈殑 JVM錛屽垯鎵ц浠ヤ笅姝ラ錛堣繖浜涜鏄庡亣瀹氭?zhèn)q愯鐨勬槸 windows錛夛細

  1. 鍙沖嚮鎴戠殑鐢?shù)鑴?/b>錛屽茍浠庝笂涓嬫枃鑿滃崟閫夋嫨灞炴?/b>銆?
  2. 鍗曞嚮楂樼駭閫夐」鍗°?
  3. 鍦ㄧ獥鍙g殑搴曢儴錛屽崟鍑?b>鐜鍙橀噺鎸夐挳銆?
  4. 鍦?b>緋葷粺鍙橀噺紿楁牸涓紝鍗曞嚮鏂板緩銆?
  5. 涓哄彉閲忓悕杈撳叆 JAVA_HOME銆備負鍙橀噺鍊艱緭鍏?Sun JVM 鐨勫畨瑁呯洰褰曘?

鍥?1 灞曠ず浜嗛夋嫨鎶?Java 5.0 SDK 瀹夎鍒?C:\Program Files\IBM\Java50 鐩綍涓嬫椂 JAVA_HOME 鐨勫鹼細


鍥?1. 鏇存敼 JAVA_HOME 鐜鍙橀噺

鐜板湪宸茬粡姝g‘鍦拌緗簡 Java 鐜錛屽氨鏉ヤ粠 Apache 鐨?Web 绔欑偣錛堝弬瑙?鍙傝冭祫鏂?/font>錛変笅杞藉寘鍚?Pluto 鐨勪簩榪涘埗鍐呭鐨?ZIPet 鏂囦歡錛坧luto-current.zip錛夈?/p>

楠岃瘉涓嬭澆鏂囦歡

鍋囧畾鎮(zhèn)ㄥ拰鎴戜滑鐨勫畨鍏ㄦ剰璇嗕竴鏍峰己錛屽氨浼氬笇鏈涗繚璇佷笅杞界殑 ZIP 鏂囦歡紜疄鏉ヨ嚜 Apache Software Foundation銆傛枃浠朵嬌鐢?PGP 鍜?MD5 榪涜浜嗘暟瀛楃鍚嶃備嬌鐢?GnuPG錛堝弬瑙?鍙傝冭祫鏂?/font>錛夊拰 ASCII armor 鏂囦歡錛坧luto-current.zip.asc錛夛紝鍙互楠岃瘉姝や笅杞芥枃浠剁殑鐪熷疄鎬с?/p>

棣栧厛錛岄氳繃杈撳叆娓呭崟 1 欏墮儴涓琛屾墍紺虹殑鍛戒護錛屾妸 Apache Pluto 鐨勫叕鍏卞瘑閽ユ坊鍔犲埌鎮(zhèn)ㄧ殑鍏叡瀵嗛挜鐜傚湪 Pluto 涓嬭澆欏甸潰鍙互鑾峰緱 KEYS 鏂囦歡銆?/p>
娓呭崟 1. 瀵煎叆 KEYS 鏂囦歡
												
														C:\>gpg --import KEYS
gpg: key E41EDC7E: public key "Carsten Ziegeler <cziegeler@apache.org>" importe

gpg: key 320B4FB4: public key "Nick Lothian (Apache) <nlothian@apache.org>" imp
rted
gpg: key DD4200EA: public key "David H. DeWolf <david@daviddewolf.com>" importe

gpg: Total number processed: 3
gpg:               imported: 3
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: next trustdb check due at 2011-03-08

												
										

鎺ヤ笅鏉ワ紝杈撳叆娓呭崟 2 欏墮儴涓琛屾墍紺虹殑鍛戒護鏉ラ獙璇佹?zhèn)ㄤ?Apache 鎺ユ敹鐨勫凡絳懼悕鐨?ZIP 鏂囦歡錛?/p>
娓呭崟 2. 楠岃瘉 pluto-1.0.1.zip.asc
												
														C:\>gpg --verify pluto-1.0.1.zip.asc
gpg: Signature made 10/19/05 09:11:31 using DSA key ID DD4200EA
gpg: Good signature from "David H. DeWolf <david@daviddewolf.com>"
gpg:               aka "David H. DeWolf <ddewolf@apache.org>"
gpg:               aka "David H. DeWolf <ddewolf@rocketmail.com>"
gpg:               aka "David H. DeWolf <ddewolf@gmail.com>"
gpg:               aka "David H. DeWolf <david.dewolf@digitalfocus.com>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 6AA5 5850 9A7B 275C E0BC  2851 B217 63FA DD42 00EA

												
										

濡傛灉 gpg --verify 鍛戒護鐢熸垚鐨勮緭鍑轟笌娓呭崟 2 鏄劇ず鐨勭浉浼鹼紝灝卞彲浠ョ‘淇?Pluto 褰掓。鏂囦歡紜疄鏉ヨ嚜 Apache銆傚彲浠ュ拷鐣ヨ〃鏄庣鍚嶄笉鍙俊鐨勮鍛娿備繚璇佸叕鍏卞瘑閽ョ鍚嶆潵鑷墍鏈夎呯殑鎯熶竴鏂規(guī)硶鏄紝瀵嗛挜鐨勬墍鏈夎呬翰鑷妸紓佺洏涓婄殑瀵嗛挜浜ょ粰鎮(zhèn)ㄣ備絾鏄紝閲囧彇榪欎簺姝ラ浠ュ悗錛屽彲浠ュ湪鏌愮紼嬪害涓婄‘瀹氫粠 Apache 涓嬭澆鐨?ZIP 鏂囦歡鏄笉鐢ㄦ鐤戠殑銆傦紙鏈夊叧楠岃瘉 Apache 涓嬭澆鏂囦歡鐨勬洿澶氫俊鎭紝璇峰弬瑙?鍙傝冭祫鏂?/font> 銆傦級

瑙e帇 Pluto 涓嬭澆鏂囦歡

鐜板湪鍑嗗鎶?ZIP 鏂囦歡瑙e帇鍒版?zhèn)ㄧ殑鏈哄櫒涓娿傛垜浠亣瀹氭?zhèn)ㄦ?Pluto 瑙e帇鍒?C:\ 鐩樼殑鏍圭洰褰曚笂錛?/p>
												
														C:\>unzip pluto-current.zip

												
										

榪欏氨鍒涘緩浜嗕竴涓寘鍚?bin 瀛愮洰褰曠殑 C:\pluto-1.0.1 鐩綍銆傚鑸埌 bin 瀛愮洰褰曞茍鍦ㄥ懡浠ゆ彁紺虹涓嬭緭鍏?startup.bat 浠ュ惎鍔?Pluto 鏈嶅姟鍣ㄣ?

濡傚浘 2 鎵紺猴紝鎮(zhèn)ㄥ彲浠ヤ粠 Pluto 涓婚〉綆$悊鍜屾煡鐪?portlets銆傚惎鍔?Web 嫻忚鍣ㄥ茍瀵艱埅鍒?http://localhost:8080/pluto/portal銆?


鍥?2. Pluto 涓婚〉
Pluto 涓婚〉

娉ㄦ剰錛?/b>濡傛灉 Pluto 涓婚〉娌℃湁鍑虹幇錛岃紜繚闃茬伀澧欐病鏈夐樆姝?Pluto 鎺ュ彈榪炴帴銆?/i>

鐜板湪宸茬粡鍚姩鍜岃繍琛?Pluto錛屾?zhèn)畣鍒涘晦Z竴涓畝鍗曠殑 portlet錛岀劧鍚庝嬌鐢?Pluto 嫻嬭瘯瀹冪殑 JSR 168 鍏煎鎬с?/p>



鍥為〉棣?/font>


寮鍙?JSR 168 portlet

涓轟簡鏌ョ湅濡備綍浣跨敤 Pluto 浣滀負 portlet 鐨?JSR 168 鍏煎鎬ф祴璇曞鉤鍙幫紝闇瑕佷竴涓?portlet 鏉ヨ繘琛屾祴璇曘傚湪姝ょ粌涔?fàn)涓Q屾?zhèn)畣鍒涘晦Z竴涓畝鍗曠殑 portlet錛屽畠鏍規(guī)嵁鐢ㄦ埛鐨勮緭鍏ワ紝鎶婃枃鏈涓殑鍐呭杞崲涓哄叏鏄ぇ鍐欏瓧絎︽垨鍏ㄦ槸灝忓啓瀛楃錛堣鍥?3錛夛細


鍥?3. Change Case portlet

鎴戜滑浠庢煡鐪嬫竻鍗?3 鎵紺虹殑 portlet.xml 鏂囦歡寮濮嬨俻ortlet.xml 鏂囦歡鏄寘鍚叧浜?WAR 鏂囦歡涓崋緇戠殑 portlet 鐨勯厤緗粏鑺傜殑鎻忚堪絎︽枃浠躲?/p>
娓呭崟 3. portlet.xml 鏂囦歡
												
														<?xml version="1.0" encoding="UTF-8"?>
<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" 
   version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd 
   http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" 
   id="com.ibm.changecase.ChangeCasePortlet">
   <portlet>
      <portlet-name>ChangeCase</portlet-name>
      <display-name>Change Case Portlet</display-name>
      <portlet-class>com.ibm.changecase.ChangeCasePortlet</portlet-class>
      <supports>
         <mime-type>text/html</mime-type>
         <portlet-mode>view</portlet-mode>
      </supports>
      <portlet-info>
         <title>ChangeCasePortlet</title>
      </portlet-info>
   </portlet>
</portlet-app>

												
										

娓呭崟 3 涓殑 <portlet-app> 鏍囪瀹氫箟浜?XML 妯″紡瀹氫箟鍜?portlet 搴旂敤紼嬪簭 鐨?ID銆備竴涓?portlet 搴旂敤紼嬪簭鍙互鍖呭惈闆朵釜鎴栧涓?portlet銆備嬌鐢?<portlet> 鏍囪鏉ュ畾涔?portlet 搴旂敤紼嬪簭涓殑鍗曚釜 portlet錛?/p>

  • <portlet-name> 鈥斺?鎻愪緵涓涓悕縐幫紝鍦ㄥ唴閮ㄦ垨鐢辯▼搴忎嬌鐢ㄨ鍚嶇О鏉ュ紩鐢?portlet銆?
  • <display-name> 鈥斺?portlet 鐨勭緝鍐欏悕錛岀敤鏉ュ湪 GUI 宸ュ叿涓樉紺?portlet 鍚嶇О錛屽畠闅?portlet 瀹瑰櫒鐨勪笉鍚岃屼笉鍚屻?
  • <portlet-class> 鈥斺?鍏呭綋 portlet 鎺у埗鍣ㄧ殑綾匯?
  • <supports> 鈥斺?榪欎簺鏍囪瀹氫箟 portlet 鏀寔鐨?portlet 妯″紡鍜?mime 綾誨瀷銆?
  • <title> 鈥斺?鍙互鍦?portlet.xml 涓畾涔?portlet 鐨勯閫夋爣棰樸備絾鏄紝濡備綍浣跨敤璇ユ爣棰樺彇鍐充簬 portlet 瀹瑰櫒銆?

娓呭崟 4 鏄劇ず鐨勬槸 portlet.xml 涓紩鐢ㄧ殑 com.ibm.changecase.ChangeCasePortlet portlet 綾匯傛綾誨繀欏誨疄鐜?javax.portlet.Portlet 鎺ュ彛錛屼絾騫歌繍鐨勬槸錛屾?zhèn)ㄤ笉蹇呯洿鎺ュ疄鐜?Portlet 鎺ュ彛銆侸SR 168 涓?javax.portlet.Portlet 鎺ュ彛瀹氫箟浜嗕竴涓О涓?javax.portlet.GenericPortlet 綾葷殑榛樿瀹炵幇銆?code>com.ibm.changecase.ChangeCasePortlet 綾葷戶鎵?GenericPortlet 綾匯?/p>
娓呭崟 4. ChangeCasePortlet 綾?/b>
												
														package com.ibm.changecase;

import java.io.*;
import javax.portlet.*;

/**
 *
 * A sample portlet based on GenericPortlet
 * 
 */
public class ChangeCasePortlet extends GenericPortlet {
   
   private static String VIEW_JSP = "/view.jsp";

   protected void doView(RenderRequest request, RenderResponse response) 
      throws PortletException, IOException {
      response.setContentType(request.getResponseContentType());
       PortletContext context = getPortletConfig().getPortletContext();
       context.getRequestDispatcher(VIEW_JSP).include(request, response);
   }

public void processAction(ActionRequest request, ActionResponse response) 
   throws PortletException, java.io.IOException {
//Do Action Handling here.

}

}

												
										

娉ㄦ剰閲嶅啓 doView() 鍜?processAction() 鏂規(guī)硶鐨勯夋嫨銆傛瘡褰撳嚭鐜?portlet 鎿嶄綔鏃墮兘浼氳皟鐢?processAction() 鏂規(guī)硶銆傚綋鐢ㄦ埛澶勪簬 portlet 鐨勮鍥炬ā寮忔椂璋冪敤 doView() 鏂規(guī)硶銆侸SR 168 鏀寔鍏朵粬鐨勬ā寮忥紝渚嬪甯姪妯″紡鍜岀紪杈戞ā寮忋備絾鏄紝濡傛灉鍥炶繃澶寸湅涓涓?娓呭崟 3錛屽湪 <supports> 閮ㄥ垎鍙互鐪嬪埌 portlet 鍙敮鎸佽鍥炬ā寮忋?

鐜板湪浠旂粏鍦扮湅涓涓嬫竻鍗?4 涓殑 doView() 鏂規(guī)硶銆備笌 Java servlet 緙栫爜涓竴鏍鳳紝portlet 緙栫爜涓篃緇忓父浣跨敤妯″瀷-瑙嗗浘-鎺у埗鍣?(MVC) 璁捐妯″紡銆傚洜姝わ紝鍦?portlet 涓紝鎶婅〃紺虹殑鑱岃矗杞氦緇欎簡 view.jsp銆傛垨鑰咃紝涔熷彲浠ヤ嬌鐢?prinltn 閫昏緫鍦?doView() 鏂規(guī)硶涓疄鐜拌鍥俱?/p>
												
														response.getWriter().println("<p>Hello World</p>()");

												
										

榪欑鏂規(guī)硶鐨勯棶棰樻槸錛屽浘褰㈢敤鎴風(fēng)晫闈㈢殑璁捐鑰呴渶瑕佸叿鏈?portlet 鎶鏈殑鐭ヨ瘑鏉ョ紪鍐?doView() 鏂規(guī)硶銆侸SP 寮鍙戜漢鍛樹粠澶嶆潅鐨?Java 寮鍙戜腑瑙f斁鍑烘潵錛岃兘澶熼泦涓簿鍔涘紑鍙戝墠绔晫闈€傛竻鍗?5 鏄劇ず鐨勬槸 view.jsp錛?/p>
娓呭崟 5. view.jsp
												
														<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1" session="false"%>
<portlet:defineObjects />

<%String textBox = renderRequest.getParameter("textBox");
		if (textBox == null)
			textBox = "";
		String caseString = renderRequest.getParameter("case");
		boolean isUpperCase = true;
		if ((caseString != null) && (caseString.equals("false"))) {
			isUpperCase = false;
		}
		String errorMessage = renderRequest.getParameter("errorMessage");%>

<%if (errorMessage != null) {%>
<p><%=errorMessage%></p>
<%}%>

<FORM name="<portlet:namespace/>caseform" action="<portlet:actionURL/>">
<INPUT type="text" name="textBox" size="20" value="<%=textBox%>">
<p><INPUT type="radio" name="case" value="lowercase"
	<%if (!isUpperCase) {%> checked="checked" <%}%>>To Lowercase</p>
<p><INPUT type="radio" name="case" value="uppercase"
	<%if (isUpperCase) {%> checked="checked" <%}%>>To Uppercase</p>
<INPUT type="submit" name="<portlet:namespace/>submitCase"
	value="Change Case"></FORM>

												
										

棣栧厛錛屾敞鎰忓湪 view.jsp 涓畾涔?portlet 鏍囪搴撱傝繖鏄?JSP 瑙f瀽鍣ㄨ瘑鍒?portlet 鏍囪鎵蹇呴渶鐨勩傛?zhèn)ㄤ娇鐢ㄧ殑绗竴涓?portlet 鏍囪鏄?<portlet:defineObjects/>銆傛鏍囪鍏佽璁塊棶 renderRequest銆?code>renderResponse 鍜?portletConfig 瀵硅薄銆備嬌鐢?renderRequest 瀵硅薄浣挎?zhèn)ㄥ呬h湁璁塊棶 requestParameters 鐨勬潈鍒┿俻ortlet 綾婚氳繃 request 鍙傛暟鍚?view JSP 浼犻掑箋?

鎺ヤ笅鏉ワ紝鍦?view.jsp 涓垱寤轟竴涓悜 portlet 綾誨彂閫佽〃鍗曟暟鎹殑琛ㄥ崟銆備負浜嗗彂閫佽〃鍗曟暟鎹紝蹇呴』鍒涘緩涓涓?actionURL錛屽畠浣?ChangeCasePortlet portlet 綾葷殑 processAction() 鏂規(guī)硶琚皟鐢ㄣ備嬌鐢?<portlet:actionURL/> 鏍囪鍒涘緩 actionURL銆?娉ㄦ剰錛屽湪 view.jsp 涓皢鏂囨湰妗嗗拰鍗曢夋寜閽殑鍊艱緗負鏈嶅姟鍣ㄤ紶鍥?JSP 鐨勫箋傚洜姝わ紝view.jsp 璐熻矗澶勭悊璇鋒眰杈撳叆鍜屾樉紺?portlet 鐨勫搷搴斻?/p>

鍗曞嚮琛ㄥ崟鐨?Submit 鎸夐挳浼氳皟鐢?portlet 鐨?processAction() 鏂規(guī)硶錛屽娓呭崟 6 鎵紺恒?code>processAction() 浠?view.jsp 鎺ユ敹涓涓?ActionRequest 瀵硅薄浣滀負杈撳叆銆?/p>
娓呭崟 6. processAction 鏂規(guī)硶
												
														 public void processAction(ActionRequest request, ActionResponse response) 
    throws PortletException, java.io.IOException {
    String newCase = request.getParameter("case");
    String textBox = request.getParameter("textBox");
    String errorMessage = null;
      
    boolean isUpperCase = true;
    if ((newCase!=null) && (newCase.equals(ChangeCaseConstants.LOWER_CASE)))
       isUpperCase = false;
    else if ((newCase == null) || (newCase==ChangeCaseConstants.UPPER_CASE))
       errorMessage = "Error no case selected!  Select a case.";
    if (textBox !=null) {
       if (isUpperCase)
          textBox = textBox.toUpperCase();
       else 
          textBox = textBox.toLowerCase();
       response.setRenderParameter("textBox", textBox);
    } else 
       errorMessage = "Error, text in the text box is invalid";
    response.setRenderParameter("case", Boolean.toString(isUpperCase));
    if (errorMessage != null) {
       response.setRenderParameter("errorMessage",errorMessage);
    }
   
 }

												
										

ActionRequest 瀵硅薄鍖呭惈杈撳叆鍒拌〃鍗曚腑鐨勬暟鎹備負浜嗘绱㈣〃鍗曟暟鎹紝鍙嬌鐢?getParameter() 鏂規(guī)硶銆傚湪 processAction() 鏂規(guī)硶涓紝涔熻鎵ц涓氬姟閫昏緫錛岀‘瀹氱敤鎴鋒槸鎯寵澶у啓褰㈠紡榪樻槸灝忓啓褰㈠紡鐨勮緭鍑恒傛牴鎹閫昏緫錛屾妸杈撳叆鐨勬枃鏈漿鎹㈡垚鎯寵鐨勫ぇ灝忓啓褰㈠紡騫跺彂閫佺粰鐢ㄦ埛銆備嬌鐢?setRenderParameter() 鏂規(guī)硶鎶婃暟鎹彂閫佺粰瑙嗗浘銆?/p>



鍥為〉棣?/font>


緙栬瘧騫舵墦鍖?JSR 168 portlet

鐜板湪宸茬粡寮鍙戜簡 portlet錛岄渶瑕佹妸瀹冭漿鎹㈡垚宸茬紪璇戠殑褰㈠紡錛屽茍涓轟簡閮ㄧ講鍒?Pluto 灝嗗畠鎵撳寘銆傞鍏堬紝紜繚 portlet-api-1.0.jar 鍦?CLASSPATH 涓傜劧鍚庝嬌鐢?javac 緙栬瘧鍣ㄧ紪璇?ChangeCaseConstants.java 鍜?ChangeCasePortlet.java錛?/p>
												
														javac ChangeCaseConstants.java
javac ChangeCasePortlet.java

												
										

鎺ョ潃闇瑕佷負 WAR 鏂囦歡鍒涘緩鎵闇瑕佺殑鏂囦歡澶圭粨鏋勶紝W(xué)AR 鏂囦歡鏄綊妗f枃浠訛紝閫氳繃瀹冩妸 portlet 閮ㄧ講鍒?portlet 瀹瑰櫒銆傛妸鍒氭墠緙栬瘧鐨勪袱涓被鏀懼湪 classes\com\ibm\changecase 鐩綍涓?/p>

涓轟簡鏋勫緩 WAR 鏂囦歡錛岄渶瑕佷互涓嬬殑鐩綍緇撴瀯錛屽娓呭崟 7 鎵紺猴細


娓呭崟 7. 鐢ㄤ簬閮ㄧ講鐨勭洰褰曠粨鏋?/b>
												
														changeCaseWAR\
   META-INF
      MANIFEST.MF
   WEB-INF
      classes
         com
            ibm
               changecase
                  ChangeCaseConstants.class
                  ChangeCasePortlet.class
      lib
      tld
         portlet.tld
      portlet.xml
      web.xml
   index.html
   view.jsp

												
										

娉ㄦ剰錛屾竻鍗?7 寮曞叆浜?4 涓垜浠繕娌℃湁璁ㄨ榪囩殑鏂囦歡錛?

  • portlet.tld錛氳繖鏄?portlet 鏍囪搴撱傚鏋滃洖鎯充竴涓嬶紝鎮(zhèn)ㄦ浘緇忕敤 <portlet:defineObjects /> 涔嬬被鐨勫紩鐢ㄥ湪鏁翠釜 JSP 涓兘鐢ㄥ埌榪?portlet 鏍囪搴撱俻ortlet 鏍囪搴撳湪 Apache-SVN 浠g爜搴撲腑鍙互寰楀埌錛堝弬瑙?鍙傝冭祫鏂?/font>錛夈?

  • MANIFEST.MF錛氬洜涓鴻繖閲屼笉瀛樺湪澶栭儴渚濊禆錛屾墍浠ヨ繖涓竻鍗曟枃浠墮櫎浜?Manifest-Version: 1.0 涔嬪浠涔堜篃涓嶅寘鍚?br />
  • index.html錛氬鏋滅敱浜庢煇浜涘師鍥犱笂涓嬫枃鏍硅鐩存帴璁塊棶錛屽垯浼氭樉紺?index.html銆傚湪 index.html 涓彲浠ユ湁浠諱綍姝g‘鏍煎紡鐨?HTML銆?

  • web.xml錛堝娓呭崟 8 鎵紺猴級錛氬畠瀹氫箟鍖呭惈鍗曚釜 portlet 鐨?Web 搴旂敤紼嬪簭銆?

娓呭崟 8. web.xml
												
														<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
   "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app id="WebApp_ID">
   <display-name>CasePortlet</display-name>
   <welcome-file-list>
      <welcome-file>index.html</welcome-file>
   </welcome-file-list>
   <taglib>
      <taglib-uri>http://java.sun.com/portlet</taglib-uri>
      <taglib-location>tld/portlet.tld</taglib-location>
   </taglib>
   <taglib id="PortletTLD">
      <taglib-uri>http://java.sun.com/portlet</taglib-uri>
      <taglib-location>/WEB-INF/tld/std-portlet.tld</taglib-location>
   </taglib>
</web-app>

												
										

涓鏃︾敓鎴愪簡 MANIFEST.MF銆乸ortlet.tld銆亀eb.xml 鍜?index.html錛屽氨鍙互浣跨敤 JAR 瀹炵敤宸ュ叿灝嗘竻鍗?7 鎵紺虹殑緇撴瀯褰掓。鍒頒竴涓?WAR 鏂囦歡涓細

												
														C:\temp>jar -cvf changeCase.war

												
										

緇撴灉鏄竴涓彨鍋?changeCase.war 鏂囦歡錛岀敤浜庨儴緗插埌 JSR 168 鍏煎鐨勯棬鎴楓?





鍥為〉棣?/font>


紜繚 portlet 鏄?JSR 168 鍏煎鐨?/font>

鐜板湪浣跨敤 Apache Pluto 鏉ユ煡鏄?portlet 鏄惁鑳介氳繃 JSR168 鍏煎鎬х殑鏈緇堟祴璇曘?/p>

紜繚 Apache Pluto 鍚姩騫惰繍琛岋紝鐒跺悗瀵艱埅鍒?Pluto 涓婚〉錛坔ttp://localhost:8080/pluto/portal錛夈傚崟鍑諱晶鏍忎笂鐨?Admin銆傚簲璇ョ湅鍒?Deploy War portlet 鏄劇ず鍦ㄧ鐞嗛〉闈笂錛屽鍥?4 鎵紺恒傚崟鍑?Browse 騫跺鑸埌鍦ㄥ墠涓鑺備腑鏀劇疆鍦ㄤ竴璧風(fēng)殑 changeCase.war 鏂囦歡鐨勪綅緗紝鐒跺悗鍗曞嚮 Submit銆?/p>
鍥?4. Pluto 鐨?Deploy War portlet

鐜板湪蹇呴』涓?portlet 搴旂敤紼嬪簭杈撳叆甯冨眬淇℃伅 鈥斺?涓涓潪甯鎬笉閲嶈鐨勪換鍔★紝鍥犱負鍦?portlet 搴旂敤紼嬪簭涓彧鏈変竴涓?portlet銆傛濡傚湪鍥?5 涓彲浠ョ湅鍒扮殑錛屾?zhèn)ㄥ憡鐭?Pluto portlet 鏈変竴琛屽拰涓鍒楋紝鐒跺悗鍗曞嚮 Submit 鍚戞湇鍔″櫒鎻愪氦姝ら夋嫨錛?/p>
鍥?5.涓?portlet 搴旂敤紼嬪簭杈撳叆欏甸潰甯冨眬淇℃伅

鎺ヤ笅鏉ワ紝蹇呴』瀹氫箟 portlet 鍑虹幇鍦?portlet 搴旂敤紼嬪簭欏甸潰甯冨眬鐨勪綍澶勩傞氳繃鎶?portlet 搴旂敤紼嬪簭涓殑鎵鏈?portlet 鏄犲皠鍒板垰鎵嶅畾涔夌殑琛屽拰鍒楁潵瀹屾垚姝や換鍔°傚洜涓哄彧鏈変竴涓?portlet 闇瑕侀儴緗插茍涓旀?zhèn)ㄥ厛鍓嶉夋嫨浜嗕竴琛屽拰涓鍒楃殑欏甸潰甯冨眬錛屾墍浠ュ湪璇ヤ綅緗緭鍏?ChangeCase portlet 騫跺崟鍑?Submit錛屽鍥?6 鎵紺猴細


鍥?6. 鏄犲皠 portlet 鐨勪綅緗?/b>

涓轟簡閮ㄧ講 portlet錛屾?zhèn)ㄥ彲浠ラ夋嫨閲嶆柊鍚姩 Pluto 鎴栬?i>鐑儴緗?/i> 鍖呭惈 portlet 鐨?portlet 搴旂敤紼嬪簭錛屽鍥?7 鎵紺猴細


鍥?7. 鐑儴緗?portlet

涓涓叿鏈?portlet 搴旂敤紼嬪簭鍚嶇О錛?b>Change Case錛夌殑閾炬帴鍑虹幇鍦ㄤ晶鏍忋傚崟鍑昏瓚呴摼鎺ワ紝鐜板湪灝嗙湅鍒?portlet 搴旂敤紼嬪簭錛屽叾涓寘鍚?portlet錛屽鍥?8 鎵紺恒傝繖鏃跺簲璇ヤ笌 Change Case portlet 浜や簰騫剁‘淇濆畠鐨勫姛鑳戒笌棰勬湡鐨勪竴鏍楓傚鏋滀笌棰勬湡鐨勪竴鏍鳳紝鎮(zhèn)ㄥ氨鍙互紜畾姝?portlet 涓?JSR 168 鍏煎銆?/p>
鍥?8. 閮ㄧ講鍒?Pluto 鐨?Change Case portlet

Change Case Portlet 灝嗚兘澶熻繍琛屽湪浠諱綍鏀寔 JSR 168 portlet 鏍囧噯鐨?Portlet 瀹瑰櫒涓?





鍥為〉棣?/font>


緇撴潫璇?/font>

鎴戝彲浠ュ湪鐢熶駭鐜涓嬌鐢?Pluto 鍚楋紵

Apache Pluto 鍙傚悎浣滀負 JSR 168 鍏煎鎬х殑嫻嬭瘯騫沖彴錛屼笉鎺ㄨ崘鍦ㄧ敓浜х幆澧冧腑浣跨敤銆傚浜庣敓浜ф潵璇達紝鎮(zhèn)ㄥ簲璇ヨ冭檻浣跨敤鏇村姞鍙幾緙╃殑瀹瑰櫒銆傛?zhèn)ㄥ彲浠ヨ冭檻浣跨敤 Apache Software Foundation 鐨勫悕涓?Jetspeed 鐨勫紑鏀炬簮鐮?portlet 瀹瑰櫒錛堝弬瑙?鍙傝冭祫鏂?/font>錛夈侷BM 鐨?WebSphere Portal Server Version 5.1 涔熸槸涓涓敮鎸?JSR 168 鏍囧噯鐨勫晢涓氳В鍐蟲柟妗堬紙鍙傝 鍙傝冭祫鏂?/font>錛夈?

Apache Pluto 浣?portlet 寮鍙戜漢鍛樿兘澶熺‘瀹氫粬浠殑 portlet 鑳藉榪愯鍦ㄤ換浣?JSR 168 鍏煎鐨?portlet 瀹瑰櫒涓傚ぇ澶氭暟 portlet 瀹瑰櫒錛堝寘鎷?WebSphere Portal Server錛夐兘鍖呮嫭 Portlet 瑙勮寖鏈彁鍙婄殑鎵╁睍銆備緥濡傦紝IBM WebSphere Portal Server 鎻愪緵闈炴爣鍑嗙殑涓鐐瑰嵆鍔紙click-to-action錛夋墿灞曪紙鍗沖崗浣?portlet錛夈傛槸鍚︿嬌鐢ㄦ墿灞曠敱浣跨敤 portal 鎶鏈殑浼佷笟鏉ュ喅瀹氥備綔涓哄紑鍙戜漢鍛橈紝鎮(zhèn)ㄥ簲璇ョ墷璁扮殑鏄敮鎸佽繖縐嶆妧鏈細鎹熷 portlet 鐨勫彲縐繪鎬?鈥斺?浣嗘槸鏈夋椂榪欎箞鍋氳兘婊¤凍涓氬姟闇瑕併侫pache Pluto 浣塊偅浜涗嬌鐢?portlet 鐨勭粍緇囪兘澶熺煡閬撲粬浠亸紱諱簡 Portlet 瑙勮寖鏈夊榪滐紝騫跺喅瀹氭槸鍚﹂噰鍙栦竴浜涙帾鏂芥潵璋冩暣閭d簺 portlet 絎﹀悎鏍囧噯銆?/p>

灞曟湜鏈潵錛欽SR 286

JSR 168 鍦ㄨ蛋鍚戜嬌 portal 棰嗗煙鏈夊簭鐨勮繃紼嬬粡榪囦簡寰堥暱鐨勮礬銆備絾鏄紝portlet 鐨勬爣鍑嗗寲宸ヤ綔騫舵病鏈夊仠姝€傚綋鍐欎綔鏈枃鐨勬椂鍊欙紝Java Portlet API version 2.0 瑙勮寖 (JSR 286) 浠嶆棫鍦ㄥ紑鍙戜腑錛屾墦綆楁妸瀵?J2EE 1.4 鐨勬敮鎸佸紩鍏ュ埌 portlet 瑙勮寖涓紙鍙傝 鍙傝冭祫鏂?/font>錛夈傝澶氭浘鐢變緵搴斿晢鍒╃敤鍏惰嚜鏈夊疄鐜伴氳繃闈炴爣鍑嗘柟寮忓鐞嗙殑 Portlet 鎶鏈紙鎻愪竴涓嬪叾涓殑涓や釜錛宲ortlet 榪囨護鍣ㄥ拰褰㈠紡鍖栫殑 portlet 闂撮氫俊錛夌幇灝嗛噰綰?2.0 瑙勮寖銆侫pache Pluto 鐨勫皢鏉ョ増鏈皢鍏呭綋 JSR 286 瑙勮寖鐨勫弬鑰冨疄鐜般傚綋 JSR 286 鎴愪負浜嬪疄涓婄殑 portlet 鏍囧噯鏃訛紝鎮(zhèn)ㄥ皢浠嶆棫鑳藉浣跨敤 Pluto 嫻嬭瘯鍏煎鎬с?/p>

鍦ㄦ垜浠啓浣滄湰鏂囨椂錛岃繕涓嶈兘寰楀埌 Pluto 1.1 鐨?alpha 鐗堟湰銆侾luto 1.1 灝嗗叿鏈変竴涓柊鐨勫鍣ㄦ灦鏋勶紝騫跺寘鍚竴浜涗嬌 portlet 寮鍙戞洿瀹規(guī)槗鐨勬洿鏀廣備絾鏄紝Pluto 1.0.1 浠嶇劧鏄竴涓緢濂界殑鐢ㄤ簬楠岃瘉 portlet 鏄惁 JSR 168 鍏煎鐨勫伐鍏楓?/p>



鍥為〉棣?/font>


鍙傝冭祫鏂?

瀛︿範(fàn)
  • 鎮(zhèn)ㄥ彲浠ュ弬闃呮湰鏂囧湪 developerWorks 鍏ㄧ悆绔欑偣涓婄殑 鑻辨枃鍘熸枃 銆?

  • 鈥?a >JSR 168 - An Introduction to the Portlet Specification鈥濓細鏇村鍦頒簡瑙?JSR 168銆?

  • Apache Pluto 錛氳闂?Pluto Web 绔欑偣銆?

  • JSR 168: Portlet Specification 鍜?SR 286: Portlet Specification 2.0錛氱敱 Java Community Process 寮鍙戝拰緇存姢鐨?portlet 瑙勮寖銆?

  • 鈥?a >浣跨敤 WebSphere Portal V5.1 鍦?IBM Portlet 鍜?JSR 168 Portlet 闂村叡浜俊鎭?/font>鈥濓紙Stefan Hepper 鍜?Jerry Zheng錛宒eveloperWorks錛?006 騫?2 鏈堬級錛氱紪鍐欎竴涓嚜瀹氫箟鐨?portlet 鏈嶅姟浠ュ厑璁?IBM portlet 鍜?JSR 168 portlet 鍏變韓浣滀負灞炴х殑淇℃伅銆?

  • 鈥?a >浣跨敤 WebSphere Portal V5.1 鍦?JSR 168 Portlet 涓紦瀛樻暟鎹?/font>鈥濓紙Stefan Hepper 鍜?Jerry Zheng錛宒eveloperWorks錛?005 騫?8 鏈堬級錛氬涔?fàn)濡備綍鍦?JSR 168 portlet 涓紦瀛樻暟鎹互閬垮厤涓嶅繀瑕佺殑鍚庣璇鋒眰銆?

  • 鈥?a >灝?WorldClock portlet 浠?IBM Portlet API 杞崲鍒?JSR 168 portlet API鈥濓紙Franziska Paeffgen 鍜?Birga Rick錛宒eveloperWorks錛?004 騫?12 鏈堬級錛氫簡瑙e浣曞皢鏈涓?IBM WebSphere Portal 涓撴湁 Portlet API 寮鍙戠殑 portlet 杞崲涓轟嬌鐢?JSR 168 鏍囧噯 portlet API 鐨?portlet銆?

  • Verifying Apache HTTP Server Releases 錛氭湁鍏抽獙璇佹潵鑷?Apache Web 绔欑偣鐨勪笅杞芥枃浠剁殑鏇村淇℃伅銆?

  • Java 鎶鏈笓鍖?/font> 錛氬叧浜?Java 緙栫▼鐨勫悇涓柟闈㈢殑鏁扮櫨綃囨枃绔犮?


鑾峰緱浜у搧鍜屾妧鏈?/b>


KingWell 2006-05-28 09:03 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲校园春色小说| 免费毛片在线播放| 亚洲理论电影在线观看| 国产精品亚洲av色欲三区| 免费A级毛片无码无遮挡内射| 亚洲色欲色欲www在线丝| a级毛片免费高清视频| 日韩精品视频免费网址| 亚洲一区二区三区精品视频| 中文字幕在线观看免费视频| 亚洲午夜久久影院| 久久精品国产免费观看| 亚洲视频在线观看免费视频| 亚洲精品免费在线观看| 亚洲国产中文在线二区三区免| 99re6在线精品视频免费播放 | 亚洲另类精品xxxx人妖| 免费可以在线看A∨网站| 亚洲国产欧美日韩精品一区二区三区 | 内射干少妇亚洲69XXX| 4虎永免费最新永久免费地址| 亚洲国产精品成人精品小说 | 国产做国产爱免费视频| 亚洲人成网站在线播放影院在线| 日韩免费的视频在线观看香蕉| 亚洲精品国产福利片| 欧美男同gv免费网站观看| 美女视频黄频a免费观看| 国产AV无码专区亚洲AV手机麻豆| 久久精品免费观看国产| 亚洲日本VA午夜在线电影| 国产成人综合亚洲AV第一页| 亚洲人成免费电影| 日韩毛片在线免费观看| 亚洲一区二区三区高清| 久久不见久久见中文字幕免费 | 人妻无码久久一区二区三区免费 | 波多野结衣中文一区二区免费| 中文字幕无线码免费人妻| 亚洲欧洲日韩国产综合在线二区| 成年女人18级毛片毛片免费 |