锘??xml version="1.0" encoding="utf-8" standalone="yes"?>AV激情亚洲男人的天堂国语,久久亚洲国产中v天仙www,亚洲福利精品电影在线观看http://www.tkk7.com/zhuyan/category/21564.htmlJAVA鍚彂鑰?/description>zh-cnWed, 22 Aug 2007 15:51:11 GMTWed, 22 Aug 2007 15:51:11 GMT60WebWork娣卞叆嫻呭嚭http://www.tkk7.com/zhuyan/articles/138528.html鏈卞博鏈卞博Wed, 22 Aug 2007 02:16:00 GMThttp://www.tkk7.com/zhuyan/articles/138528.htmlhttp://www.tkk7.com/zhuyan/comments/138528.htmlhttp://www.tkk7.com/zhuyan/articles/138528.html#Feedback0http://www.tkk7.com/zhuyan/comments/commentRss/138528.htmlhttp://www.tkk7.com/zhuyan/services/trackbacks/138528.html闃呰鍏ㄦ枃

鏈卞博 2007-08-22 10:16 鍙戣〃璇勮
]]>
xwork.xml閰嶇疆璇存槑http://www.tkk7.com/zhuyan/articles/110632.html鏈卞博鏈卞博Sat, 14 Apr 2007 06:26:00 GMThttp://www.tkk7.com/zhuyan/articles/110632.htmlhttp://www.tkk7.com/zhuyan/comments/110632.htmlhttp://www.tkk7.com/zhuyan/articles/110632.html#Feedback0http://www.tkk7.com/zhuyan/comments/commentRss/110632.htmlhttp://www.tkk7.com/zhuyan/services/trackbacks/110632.html紺轟緥

 

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE xwork
PUBLIC
"-//OpenSymphony Group//XWork 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-1.0.dtd">
<xwork>
<include file="webwork-default.xml"/>
<package name="default" extends="webwork-default">
<interceptors>
<interceptor-stack name="defaultComponentStack">
<interceptor-ref name="component"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="defaultStack"/>
<action name="SimpleCounter" class="com.opensymphony.webwork.example.counter.SimpleCounter">
<result name="success" type="dispatcher">/success.jsp</result>
<interceptor-ref name="defaultComponentStack"/>
</action>
<!--
- Velocity implementation of the SimpleCounter.  Also demonstrate a more verbose version of result element
-->
<action name="VelocityCounter" class="com.opensymphony.webwork.example.counter.SimpleCounter">
<result name="success" type="velocity">
<param name="location">/success.vm</param>
</result>
<interceptor-ref name="defaultComponentStack"/>
</action>
<!--
- Different method can be used (processForm).
-->
<action name="formTest" class="com.opensymphony.webwork.example.FormAction" method="processForm" >
<result name="success" type="dispatcher">/formSuccess.jsp</result>
<result name="invalid.token" type="dispatcher">/form.jsp</result>
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="token"/>
</action>
</package>
</xwork>

媧誨姩

 

<action name="formTest" class="com.opensymphony.webwork.example.FormAction" method="processForm">

媧誨姩鏄疻ebWork鐨勫熀鏈伐浣滃崟鍏? 瀹冩鏄畾涔変簡(jiǎn)媧誨姩. 媧誨姩閫氬父鏈変竴涓姹?閫氬父鏄偣鍑?yán)L寜閽? 鎴栨彁浜よ〃鍗?. 涓昏鐨刟ction鍏冪礌鏈変袱閮ㄥ垎, 鍙嬪ソ鐨勫悕瀛?鍦║RL涓紩鐢? 濡俿aveForm.action)鍜屽搴旂殑"澶勭悊(handler)"綾?

鍙夌殑"method"灞炴у憡璇塛ebWork搴斿綋璋冪敤媧誨姩鐨勫摢涓柟娉? 濡傛灉浣犱笉濉啓method灞炴? WebWork緙虹渷璋冪敤execute(). 濡傛灉媧誨姩娌℃湁execute()鏂規(guī)硶, 涔熸病鏈夊湪xml涓寚瀹歮ethod灞炴? WebWork灝嗘姏鍑哄紓甯?

鍚屾牱, 浣犱篃鍙互鍦ㄨ〃鍗曚腑鎸囧畾"actionName!something"鏉ュ憡璇塛ebWork璋冪敤"doSomething"鏂規(guī)硶. 渚嬪, "formTest!save.action"灝嗚皟鐢‵ormAction鐨?save"鏂規(guī)硶. 璇ユ柟娉曞繀欏繪槸public涓旀病鏈夊弬鏁?

public String save() throws Exception
{
...
return SUCCESS;
}

媧誨姩鐨勬墍鏈夐厤緗兘鍙互鐢ㄥ湪"actionName!something"涓?鎴彇鍣? 緇撴灉綾誨瀷絳?

緇撴灉

<result name="missing-data" type="dispatcher">
<param name="location">/form.jsp</param>
<param name="parameterA">A</param>
<param name="parameterB">B</param>
</result>

Result鍏冪礌鍛婅瘔WebWork媧誨姩鎵ц鍚庝笅涓姝ヨ鍋氫粈涔? "name"灞炴у搴旀椿鍔╡xecute() 鏂規(guī)硶榪斿洖鐨勭粨鏋滀唬鐮? "type"灞炴ц〃紺轟嬌鐢ㄥ摢涓粨鏋滅被鍨?鍙傝緇撴灉綾誨瀷). 鍙互浣跨敤"param"鍏冪礌鍚戣鍥句紶閫掑弬鏁?

<result-types>
....
<result-type name="header"
class="com.opensymphony.webwork.dispatcher.HttpHeaderResult"/>
</result-types>
<result name="no-content" type="header">
<param name="status">204</param>
<param name="headers.customHeaderA">A</param>
<param name="headers.customHeaderB">B</param>
</result>

 

涓嬮潰鏄疻ebWork鍐呯疆鐨勬爣鍑嗙粨鏋滀唬鐮?瀹氫箟鍦ˋction鎺ュ彛涓?, 鍖呮嫭:
Action.SUCCESS = "success";
Action.NONE    = "none";
Action.ERROR   = "error";
Action.INPUT   = "input";
Action.LOGIN   = "login";

浣犲彲浠ユ墿鍏呬綘璁や負(fù)閫傚悎鐨勭粨鏋滀唬鐮?濡?missing-data"). 澶у鏁版儏鍐典笅浣犲彧闇浣跨敤SUCCESS鍜孍RROR, SUCCESS灝嗗墠榪涘埌涓嬩竴涓〉闈?

濡傛灉浣犲彧闇瑕佹寚瀹?location"灞炴? 鍙互浣跨敤綆鍐欏艦寮?
<result name="missing-data" type="dispatcher">/form.jsp</result>

鍙傞槄webwork-default.xml鎴?a title="Result Types" href="file:///D:/%E5%BC%80%E6%BA%90%E6%A1%86%E6%9E%B6/webwork/webwork-2.2.4/docs/chinese/wikidocs/Result%20Types.html">Result Types浠ヤ簡(jiǎn)瑙f爣鍑嗙粨鏋滅被鍨?/p>

鎴彇鍣?/a>

鎴彇鍣ㄥ厑璁稿畾涔夋椿鍔ㄦ墽琛屽墠鍚庣殑浠g爜. 鎴彇鍣ㄦ槸緙栧啓Web搴旂敤鐨勫己澶у伐鍏? 涓浜涙渶甯哥敤鐨勫疄鐜版槸:

  • 瀹夊叏媯(gè)鏌?紜繚鐢ㄦ埛宸茬櫥闄?
  • 璺熻釜綰綍 (璁板綍姣忎竴涓椿鍔?
  • 媯(gè)鏌ユ墽琛岀摱棰?(鍦ㄦ椿鍔ㄥ墠鍚庡惎鍔ㄨ鏃跺櫒, 浠ユ鏌ュ簲鐢ㄧ摱棰?
    涔熷彲浠ュ皢鎴彇鍣ㄨ繛鎺ヨ搗鏉ュ垱寤轟竴涓埅鍙栧櫒鏍?/strong>. 濡傛灉浣犳兂瀹屾垚鐧婚檰媯(gè)鏌? 瀹夊叏媯(gè)鏌? 騫惰褰曟瘡涓椿鍔ㄨ皟鐢? 浣跨敤鎴彇鍣ㄦ爤浼?xì)鍗佸垎瀹规?

蹇呴』鍏堝畾涔夋埅鍙栧櫒(緇欏畠鍛藉悕)鐒跺悗鎵嶈兘鑱旀帴鎴愭爤:

 

<interceptors>
<interceptor name="security" class="com.mycompany.security.SecurityInterceptor"/>
<interceptor-stack name="defaultComponentStack">
<interceptor-ref name="component"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>

瑕佸湪媧誨姩涓嬌鐢ㄥ畠浠?

<action name="VelocityCounter" class="com.opensymphony.webwork.example.counter.SimpleCounter">
<result name="success">...</result>
<interceptor-ref name="defaultComponentStack"/>
</action>

 

娉ㄦ剰: 鍙互寮曠敤鎷︽埅鍣ㄦ垨鏍堢殑鍚嶅瓧

鏇村緇嗚妭鍙傝鎴彇鍣?/font>.

瑙嗗浘

WebWork鏀寔JSP鍜孷elocity浣滀負(fù)搴旂敤琛ㄧず灞? 鏈緥浣跨敤JSP鏂囦歡. Webwork闄勫甫浜?jiǎn)鏍嚱{懼簱(taglibs). 浣犲彲浠ュ湪JSP涓」緇勪歡涓鏍蜂嬌鐢ㄦ爣絳懼簱.涓嬮潰鏄痜orm.jsp鐨勭墖鏂?

<%@ taglib prefix="ww" uri="webwork" %>
<html>
<head><title>Webwork Form Example</title></head>
<body>
<ww:form name="myForm" action="'formTest'" namespace="/" method="POST">
<table>
<ww:textfield label="First Name" name="'formBean.firstName'" value="formBean.firstName"/>
<ww:textfield label="Last Name" name="'formBean.lastName'" value="formBean.lastName"/>
<ww:submit value="Save Form"/>
</table>
</ww:form>
</body>

澶勭悊緇忚繃濡備笅:

  1. WebWork鐩戞帶浠?strong class=strong>.action緇撳熬鐨刄RI(瀹氫箟鍦?strong class=strong>web.xml涓?
  2. WebWork鍦ㄦ椿鍔ㄥ畾涔変腑鏌ユ壘媧誨姩formTest.
  3. WebWork鍒涘緩formTest騫惰皟鐢?strong class=strong>com.opensymphony.webwork.example.FormAction鐨勬柟娉?strong class=strong>processForm(瀹氫箟鍦?strong class=strong>xwork.xml涓?.
  4. 璇ユ柟娉曞鐞嗘垚鍔熷茍榪斿洖SUCCESS
  5. WebWork灝嗚繑鍥炲?strong class=strong>SUCCESS杞崲鎴愬湴鍧formSuccess.jsp(瀹氫箟鍦╞ class="strong">xwork.xml涓?騫舵墽琛岄噸瀹氬悜.

鍖呭惈

涓轟簡(jiǎn)鏄撲簬綆$悊澶ц妯″紑鍙戞椿鍔?鍖呭惈澶ч噺媧誨姩鍜岄厤緗?, WebWork鍏佽鍦▁work.xml涓寘鍚叾浠栭厤緗枃浠?:

<xwork>
<include file="webwork-default.xml"/>
<include file="user.xml"/>
<include file="shoppingcart.xml"/>
<include file="product.xml"/>
....
</xwork>

琚寘鍚枃浠跺繀欏諱笌xwork.xml鐨勬牸寮忕浉鍚?鍏鋒湁鐩稿悓鐨刣octype鍙?qiáng)鍏跺?騫舵斁緗湪綾昏礬寰勪腑(閫氬父浣嶄簬/WEB-INF/classes鎴?WEB-INF/lib鐨刯ar鏂囦歡涓?.



鏈卞博 2007-04-14 14:26 鍙戣〃璇勮
]]>
Portlet Configuration http://www.tkk7.com/zhuyan/articles/110363.html鏈卞博鏈卞博Fri, 13 Apr 2007 02:02:00 GMThttp://www.tkk7.com/zhuyan/articles/110363.htmlhttp://www.tkk7.com/zhuyan/comments/110363.htmlhttp://www.tkk7.com/zhuyan/articles/110363.html#Feedback0http://www.tkk7.com/zhuyan/comments/commentRss/110363.htmlhttp://www.tkk7.com/zhuyan/services/trackbacks/110363.htmlXWork閰嶇疆

浣犵殑搴旂敤紼嬪簭鐨勫熀鏈寘(base package)搴旇鎵╁睍鑷?webwork-portlet-default 鍖? 渚嬪:

xwork.xml
<include file="webwork-default.xml" />
<package name="view" extends="webwork-portlet-default" namespace="/view">

 

 

Portlet鍒濆鍖栧弬鏁?/h1>

涓嬮潰鏄湪 portlet.xml 涓負(fù)portlet閰嶇疆portlet妯″紡(mode) -> xwork鍛藉悕絀洪棿(namespace)褰卞皠鐨?init-param 鍏冪礌. 綆鍗曠殑璁? 浣犲彲浠ユ妸portlet妯″紡鐞嗚В涓轟笉鍚岀殑瀛愬簲鐢ㄧ▼搴? 榪欐牱瀹冨彲浠ヤ負(fù)涓嶅悓鐨刾ortlet鍜宲ortlet妯″紡鍦?xowrk.xml 涓厤緗笉鍚岀殑鍛藉悕絀洪棿(namespace):

Key 鎻忚堪 榛樿鍊?
portletNamespace 榪欎釜portlet鍦▁work閰嶇疆涓殑鍛藉悕絀洪棿(namespace). 鍛藉悕絀洪棿(namespace)灝嗗湪鏌ユ壘action鏃惰浼樺厛鑰冭檻, 浠庤屽厑璁稿湪鍚屼竴涓猵ortlet搴旂敤紼嬪簭涓緩绔?host)澶氫釜portlet. 濡傛灉璁懼畾浜?jiǎn)杩欎釜鍙傛? 瀹屾暣鐨勫懡鍚嶇┖闂?namespace)灝嗕細(xì)鏄?/portletNamespace/modeNamespace/actionName 榛樿鍛藉悕絀洪棿.
viewNamespace xwork閰嶇疆涓鍥緋ortlet妯″紡(view portlet mode)鐨勫懡鍚嶇┖闂?namespace). The default namespace.
editNamespace xwork閰嶇疆涓紪杈憄ortlet妯″紡(edit portlet mode)鐨勫懡鍚嶇┖闂?namespace). The namespace in the xwork config for the edit portlet mode. 榛樿鍛藉悕絀洪棿.
helpNamespace xwork閰嶇疆涓府鍔﹑ortlet妯″紡(help portlet mode)鐨勫懡鍚嶇┖闂?namespace). 榛樿鍛藉悕絀洪棿.
defaultViewAction 鍦ㄦ病鏈夋寚瀹歛ction鍚嶇О鏃? 瑙嗗浘portlet妯″紡(view portlet mode)浣跨敤鐨勯粯璁ction鍚嶇О. 榛樿鍊?
defaultEditAction 鍦ㄦ病鏈夋寚瀹歛ction鍚嶇О鏃? 緙栬緫portlet妯″紡(edit portlet mode)浣跨敤鐨勯粯璁ction鍚嶇О. 榛樿鍊?
defaultHelpAction 鍦ㄦ病鏈夋寚瀹歛ction鍚嶇О鏃? 甯姪portlet妯″紡(help portlet mode)浣跨敤鐨勯粯璁ction鍚嶇О. 榛樿鍊?

渚嬪瓙

portlet.xml
<init-param>
<!-- Portlet 鍛藉悕絀洪棿 -->
<name>portletNamespace</name>
<value>/portletA</value>
</init-param>
<init-param>
<!-- view portlet 鐨勫熀鏈懡鍚嶇┖闂?-->
<name>viewNamespace</name>
<value>/view</value>
</init-param>
<init-param>
<!-- 鍦╲iew portlet 妯″紡涓嬭皟鐢ㄧ殑榛樿action鍚嶇О -->
<name>defaultViewAction</name>
<value>index</value>
</init-param>

 

 

榪欎釜 portlet.xml 鐨勭墖鏂皢浼?xì)寰忕珛涓涓懡鍚嶇┖闂翠負(fù) /portletA/ 鐨刾ortlet. 榪欐剰鍛崇潃鎵鏈夊璇ortlet鐨勮姹傚皢浼樺厛鍦ㄦ鍛藉悕絀洪棿涓鎵綼ction. 榪涗竴姝ヨ, _瑙嗗浘(view) portlet 妯″紡灝嗕細(xì)褰卞皠鍒?/view 鍛藉悕絀洪棿, 榪欐牱涓涓鍙?myAction 鐨刟ction鐨勮姹傚皢浼?xì)琚浆鍙戝堫C竴涓?/portletA/view/myAction 鍛藉悕絀洪棿涓嬬殑action涓? 榪欎篃鎰忓懗鐫濡傛灉娌℃湁璇鋒眰涓涓猘ction, 閭d箞瀵硅繖涓姹傚皢浼?xì)璋冪敤榛樿鐨刟ction index.

Portlet 闃舵(phases)

Portlet瑙勮寖鎻忚堪涓涓猵ortlet璇鋒眰鍛ㄦ湡灝嗘寔緇負(fù)涓や釜闃舵, event(媧誨姩) 闃舵 鍜?render(娓叉煋) 闃舵. 鍋囪榪欎釜portlet涓湁 event(媧誨姩) 闃舵, 閭d箞瀹冨皢鑲畾鍏堜簬 render(娓叉煋) 闃舵鎵ц. Event(媧誨姩) 闃舵涓鑸敤鏉ユ敼鍙樺簲鐢ㄧ▼搴忕殑鐘舵? 鍦ㄤ竴涓猵ortlet涓? 鍏稿瀷鎯呭喌鏄湪form鎻愪氦鐨勬椂鍊? Render(娓叉煋) 闃舵灝嗕細(xì)鍑嗗鍜屽垎媧懼埌瑙嗗浘(view). 鎺ㄨ崘浣犲皢涓涓湪 event(媧誨姩) 闃舵鎵ц鐨刟ction鐨勭粨鏋?result)鎸囧悜鍒板彟澶栦竴涓湪 render(娓叉煋) 闃舵鎵ц鐨刟ction涓? 鍚庤呯敤鏉ヨ礋璐f淳鍙戝埌鐪熸鐨勮鍥?

Portlet 緇撴灉媧懼彂(result dispatching)

webwork-portlet-default 鍖呭畾涔変簡(jiǎn)涓涓壒孌婄殑榛樿緇撴灉綾誨瀷(result type), 瀹冭礋璐f墽琛屼竴涓狝ction鎵ц鐨勭粨鏋滈昏緫(result logic). 涓鑸? 榪欏寘鎷琲nclude涓涓猨sp榪涜娓叉煋, 鎴栬呬負(fù)褰撳墠鐨勬椿鍔?action鍑嗗涓涓覆鏌?action.

榪欎釜緇撴灉綾誨瀷鏈変笁縐嶄富瑕佹墽琛屾ā寮?

  • 濡傛灉榪欎釜Action鍦ㄦ覆鏌撻樁孌墊墽琛? 瀹冧細(xì)瀵歸厤緗湪 location 灞炴т笅鐨勮祫婧愭墽琛?PortletRequestDispatcher.include(req, res) 鏂規(guī)硶.
  • 濡傛灉榪欎釜Action鍦ㄦ椿鍔ㄩ樁孌墊墽琛? 騫朵笖緇撴灉鏄竴涓猘ction褰卞皠(action mapping), 瀹冧細(xì)緇橝ctionResponse璁劇疆涓涓覆鏌撳弬鏁版寚瀹氬摢涓狝ction灝嗕細(xì)鍦ㄦ帴涓嬫潵鐨勬覆鏌撻樁孌墊墽琛? 榪欑鍚堣壇濂界殑web搴旂敤紼嬪簭璁捐, 鐫鎻愪績(jī)榪涗簡(jiǎn)媧誨姩鍚庨噸瀹氬悜(redirect)鐨勪嬌鐢? 榪欐牱鎰忓懗鐫涓涓湪媧誨姩闃舵鎵ц鐨凙ction灝嗕細(xì)绱ф帴鐫琚噸瀹氬悜鍒頒竴涓湪娓叉煋闃舵鎵ц鐨凙ction.
  • 濡傛灉榪欎釜Action鍦ㄦ椿鍔ㄩ樁孌佃鎵ц, 騫朵笖緇撴灉涓嶆槸涓涓猘ction褰卞皠(action mapping), 緇撴灉灝嗕細(xì)浣滀負(fù)涓縐嶇壒孌婄殑Action鍑嗗, 瀹冭鍙仛 "renderDirect(鐩存帴娓叉煋)" (鍦?webwork-portlet-default 鍖呬腑鎸囧畾), 瀹冪殑鍞竴鑱岃矗灝辨槸娓叉煋鐗瑰畾鐨剋eb璧勬簮 (涓鑸槸涓涓狫SP).

鍦ㄦ椿鍔ㄦā寮忔墽琛岀殑action鍙互閫氳繃result閰嶇疆涓殑query string緇欐覆鏌撴ā寮忔墽琛岀殑action浼犻掓覆鏌撳弬鏁?

xwork.xml
<result name="success">/displayCart.action?userId=${userId}</result>

 

 

榪欎細(xì)灝嗕竴涓彨鍋?userId 鐨?娓叉煋鍙傛暟 鍊間紶閫掔粰灝嗚媧懼彂鍒扮殑action鐨?userId 灞炴?

renderDirect(鐩存帴鐫鑹?鐩存帴鐢熸垚),瀹為檯涓婃槸鎶婄粨鏋滄斁鍒扮壒瀹氱殑WEB璧勬簮涓?.



鏈卞博 2007-04-13 10:02 鍙戣〃璇勮
]]>
webwork+Portlethttp://www.tkk7.com/zhuyan/articles/110362.html鏈卞博鏈卞博Fri, 13 Apr 2007 02:01:00 GMThttp://www.tkk7.com/zhuyan/articles/110362.htmlhttp://www.tkk7.com/zhuyan/comments/110362.htmlhttp://www.tkk7.com/zhuyan/articles/110362.html#Feedback0http://www.tkk7.com/zhuyan/comments/commentRss/110362.htmlhttp://www.tkk7.com/zhuyan/services/trackbacks/110362.html绱㈠紩
  1. 浠嬬粛
  2. 瀹夎Eclipse
  3. 瀹夎 JBoss Portal 2.2
  4. 鍒涘緩欏圭洰
  5. Classpath 璁劇疆
  6. portlet.xml
  7. web.xml
  8. Hello World!
  9. xwork.xml
  10. JBoss Portal 鎻忚堪鏂囦歡
  11. 閮ㄧ講
  12. 涓嬩竴姝?/font>
  13. 閲嶆柊閮ㄧ講

Step-by-Step 鏁欑▼

浠嬬粛

榪欑瘒鏁欑▼甯︿綘緇忓巻寤虹珛綆鍗昿ortlet搴旂敤鐨勬祦紼? 浣跨敤Eclipse, JBoss Portal 2.2 鍜?WebWork Portlet妗嗘灦.

瀹夎Eclipse

榪欑瘒鏁欑▼涓? 鎴戜滑灝嗕細(xì)浣跨敤 Eclipse 3.1.1, 鍙互浠庢澶勪笅杞?http://www.eclipse.org

瀹夎 JBoss Portal 2.2

JBoss Portal 2.2 鍙互鍦ㄨ繖閲屼笅杞?http://www.jboss.com/products/jbossportal/downloads.

鍒涘緩欏圭洰

涓涓狿ortlet搴旂敤涓庝竴鑸殑web搴旂敤紼嬪簭鐨勬墦鍖呮柟寮忓熀鏈浉鍚? 浣嗘槸闇瑕侀檮鍔犳弿榪版枃浠? portlet.xml. 鏈暀紼嬬殑絎竴姝ユ槸鍦╡clipse閲岄潰寤虹珛欏圭洰緇撴瀯. 棣栧厛, 鎴戜滑鍒涘緩榪欎釜 Java 欏圭洰鏈韓, 浣跨敤鏂板緩欏圭洰鐨勫悜瀵? 鎴戜滑鍛藉悕欏圭洰涓?'MyPortlet'. 紜畾閫夋嫨浜?"Create separate source and output folders (鍒涘緩鍗曠嫭鐨勬簮鏂囦歡鍜岃緭鍑虹洰褰?"閫夐」, 涓嬩竴姝? 璁劇疆 'src' 婧愭枃浠剁洰褰曠殑杈撳嚭鐩綍(output folder)涓?MyPortlet/webapp/WEB-INF/classes'. 璁茶鏂逛究鎴戜滑鍦ㄥ畬鎴愰」鐩殑鏃跺欏鍑烘湰欏圭洰涓?WAR 鍖?

New project wizard (鏂板緩欏圭洰鍚戝)

New project wizard, cont (鏂板緩欏圭洰鍚戝, 緇?

Classpath 璁劇疆

鍦?build 搴旂敤紼嬪簭涔嬪墠, 鎴戜滑闇瑕佹坊鍔犱竴浜涢渶瑕佺殑jar鍖呭埌 build classpath 鍜?WEB-INF/lib 鐩綍涓? 棣栧厛, 鍒涘緩 WEB-INF/lib 鐩綍, 鐒跺悗涓嬭澆 WebWork 2.2.1 鍙戝竷鍖呭茍灝嗚搗瑙e帇緙╁埌鏈湴紜洏. 鎵懼埌涓嬮潰灞忓箷鎴浘涓殑jar鍖呭茍灝嗗畠浠斁鍒版柊鍒涘緩鐨?WEB-INF/lib 鐩綍涓? 閫夋嫨鎵鏈夌殑jar鍖? 鐐歸紶鏍囧彸閿夋嫨 "Build Path(Build璺緞) -> Add to Build Path(娣誨姞Build璺緞)". 鐜板湪浣犵殑鏈湴欏圭洰搴旇鐪嬭搗鏉ュ拰灞忓箷鎴浘涓浉鍚?

portlet.xml

Next thing we do is create a portlet.xml file in the WEB-INF folder. In this file, write the following:
鎴戜滑涓嬮潰瑕佸仛鐨勬槸鍦?WEB-INF 鐩綍涓垱寤轟竴涓?portlet.xml 鏂囦歡. 鍦ㄨ繖涓枃浠朵腑, 鍐欎笅濡備笅鍐呭:

portlet.xml
<portlet-app version="1.0" xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
         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">
  <portlet>
<description xml:lang="EN">My very first WebWork Portlet</description>
<portlet-name>MyPortlet</portlet-name>
<display-name xml:lang="EN">My first WebWork Portlet</display-name>
<portlet-class>com.opensymphony.webwork.portlet.dispatcher.Jsr168Dispatcher</portlet-class>
<init-param>
<!-- 瑙嗗浘妯″紡(view mode)鐨勫懡鍚嶇┖闂?namespace). 鏄犲皠鍒皒work閰嶇疆涓殑鍛藉悕絀洪棿 -->
<name>viewNamespace</name>
<value>/view</value>
</init-param>
<init-param>
<!-- 鍦ㄨ鍥炬ā寮忎腑璋冪敤鐨勯粯璁ction鍚嶇О -->
<name>defaultViewAction</name>
<value>index</value>
</init-param>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
</supports>
<supported-locale>en</supported-locale>
<portlet-info>
<title>My very own WebWork Portlet</title>
<short-title>WWPortlet</short-title>
<keywords>webwork,portlet</keywords>
</portlet-info>
</portlet>
</portlet-app>

 

鏈?portlet.xml 鏂囦歡璁懼畾榪欎釜 portlet 浣跨敤 com.opensymphony.webwork.portlet.dispatcher.Jsr168Dispatcher Portlet 瀹炵幇. 瀹冭繕鍛婅瘔 Portlet 瀹冧細(xì)鏄犲皠 瑙嗗浘 portlet 妯″紡鍒?XWork 閰嶇疆涓殑 /view 鍛藉悕絀洪棿, 鎴戜滑鍦ㄥ緩绔?building)鎴戜滑鐨?XWork action 鐨勬椂鍊欏繀欏葷墷璁板畠. 榪樻湁, 瀹冨憡璇?portlet, 濡傛灉鍦?portlet 璇鋒眰涓病鏈夋壘鍒頒竴涓猘ction 鍙傛暟, 琚皟鐢ㄧ殑榛樿 action 鏄?"index" action, 瀹冨簲璇ヨ鏀懼湪 xwork 閰嶇疆鐨?/view 鍛藉悕絀洪棿閲?

web.xml

WebWork Portlet 榪橀渶瑕佷綘鍦?web.xml 鎻忚堪涓緩绔嬩竴浜涚壒孌婄殑 servlet 鍜?filter 鏉ユ墦寮瀵?WebWork 鏍囩搴撳拰妯$増璇█鐨勬敮鎸? 鍥犱負(fù)瀹冧緷璧栦簬涓浜?Servlet API 鐨勬帴鍙e拰綾? 鎵浠ュ湪WEB-INF 鐩綍涓垱寤?web.xml 鏂囦歡, 騫舵坊鍔犲涓嬪唴瀹?

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>
<filter>
<filter-name>webwork</filter-name>
<filter-class>
com.opensymphony.webwork.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>webwork</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>
com.opensymphony.webwork.portlet.context.ServletContextHolderListener
</listener-class>
</listener>
<servlet>
<servlet-name>preparator</servlet-name>
<servlet-class>
com.opensymphony.webwork.portlet.context.PreparatorServlet
</servlet-class>
</servlet>
<taglib>
<taglib-uri>/webwork</taglib-uri>
<taglib-location>/WEB-INF/lib/webwork-2.2.1.jar</taglib-location>
</taglib>
</web-app>

 

HttpServletRequest/Response, and other Servlet API classes in the ServletActionContext that is used in many of the JSPs and templates.
FilterDispacher 淇濊瘉 webwork jar 鍖呬腑鐨勯鏍兼牱寮忚〃鍜?js 鏂囦歡鐨刄RL鍙互琚紜В鏋? ServletContextHolderListener 鏄竴涓猄ervlet context listener(涓婁笅鏂囩洃鍚櫒), 瀹冨瓨鏀句簡(jiǎn) servlet context (涓婁笅鏂? 鐨勪竴涓紩鐢? 鍦ㄦ淳鍙?dispatch)鍒拌鍥?渚嬪JSP/ftl鎴杤elocity)涔嬪墠鍒濆鍖栧寘鎷?HttpServletRequest/Response 鍜屽叾瀹冨緢澶氬湪JSP鍜屾ā鐗堝紩鎿庝腑浼?xì)鐢ㄥ埌鐨凷ervletActionContext涓殑 Servlet API 綾?

Hello World!

With these basic project structure, portlet.xml and web.xml in place, it's time to do the mandatory "Hello World" example, so let's create a place to store our JSP files. Create a WEB-INF/pages/view folder, and within this folder, create the file "helloWorld.jsp". In this file, we simply put:
鎷ユ湁浜?jiǎn)鍩烘湰鐨剻骞鐩l撴瀯, portlet.xml 鍜?web.xml 閮芥湁浜? 鐜板湪鍙互寮濮嬪疄鐜?"Hello World" 榪欎釜渚嬪瓙浜? 鎴戜滑鍏堝緩绔嬩竴涓瓨鏀?JSP 鏂囦歡鐨勭洰褰? 寤虹珛涓涓?WEB-INF/pages/view 鐩綍, 鐒跺悗鍦ㄨ繖涓洰褰曢噷, 寤虹珛涓涓?"helloWorld.jsp" 鏂囦歡. 鍦ㄨ繖涓枃浠朵腑, 鎴戜滑綆鍗曞啓涓?

helloWorld.jsp
<H2>Hello world!</H2>

 

xwork.xml

At this point, it's time to prepare the xwork configuration file, xwork.xml. Create an empty file named xwork.xml in the root of the 'src' folder. In this file we put:
鍒頒簡(jiǎn)榪欓噷, 鏄噯澶?xwork 閰嶇疆鏂囦歡鐨勬椂鍊欎簡(jiǎn). 鍒涘緩涓涓彨鍋?xwork.xml 鐨勭┖鏂囦歡, 鏀懼湪 'src' 鐨勬牴鐩綍涓?
鍦ㄨ繖涓枃浠朵腑, 鎴戜滑鏀懼涓嬪唴瀹?

xwork.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE xwork PUBLIC
"-//OpenSymphony Group//XWork 1.0//EN"
    "http://www.opensymphony.com/xwork/xwork-1.0.dtd">
<xwork>
<include file="webwork-default.xml" />
<package name="view" extends="webwork-portlet-default"
namespace="/view">
<action name="index"
class="com.opensymphony.xwork.ActionSupport">
<result name="success">/WEB-INF/pages/view/helloWorld.jsp</result>
</action>
</package>
</xwork>

 

榪欓噷瑕佹槑紜竴涓? 鎴戜滑鍒涘緩浜?jiǎn)涓涓懡鍚嶇┖闂翠負(fù) view 鐨勫寘(package), 鎴戜滑鐨勫寘緇ф壙鑷?webwork-portlet-default 鍖? 榪欎釜 webwork-portlet-default 鍖呬腑鍖呭惈浜?jiǎn)涓浜涘彲浠ュ厑璁稿湪 portlet 瀹瑰櫒涓繍琛?WebWork/XWork 鐨勭壒孌婄粨鏋滅被鍨?result type).

JBoss Portal 鎻忚堪鏂囦歡

闄や簡(jiǎn)甯歌鐨?portlet.xml 鍜?web.xml 琛ㄨ堪鏂囦歡, JBoss Portal 2.2 闇瑕佹垜浠坊鍔犲嚑涓?JBoss 鐨勭壒瀹氭弿榪版枃浠? 榪欎簺鎻忚堪鏂囦歡鐨勫悕縐板皢鏍規(guī)嵁鎴戜滑鐨勫簲鐢ㄧ▼搴忕殑涓婁笅鏂囩殑鏍?context root) 鐨勫悕瀛楁潵鍛藉悕, 瀹冧竴鑸篃鏄垜浠鍑虹殑 war 鍖呯殑鍚嶅瓧. 鎴戜滑紼嶅欏皢浼?xì)鍒涘晦Z竴涓彨鍋?MyPortlet.war 鐨?war 鍖? 鎵浠?JBoss 鎻忚堪鏂囦歡琚懡鍚嶄負(fù) 'MyPortlet-object.xml'. 鎴戜滑鍦?WEB-INF鐩綍涓垱寤鴻繖涓枃浠? 鐒跺悗娣誨姞濡備笅鍐呭:

MyPortlet-object.xml
<?xml version="1.0" encoding="UTF-8"?>
<deployments>
<deployment>
<if-exists>overwrite</if-exists>
<parent-ref>default</parent-ref>
<properties />
<page>
<page-name>MyPortlet Tutorial</page-name>
<properties />
<window>
<window-name>MyPortletWindow</window-name>
<instance-ref>MyPortletInstance</instance-ref>
<region>center</region>
<height>0</height>
</window>
</page>
</deployment>
<deployment>
<if-exists>overwrite</if-exists>
<instance>
<instance-name>MyPortletInstance</instance-name>
<component-ref>MyPortlet.MyPortlet</component-ref>
</instance>
</deployment>
</deployments>

 

鐒跺悗, 鎴戜滑闇瑕佸彟澶栦袱涓枃浠? jboss-app.xml 鍜?jboss-portlet.xml 瀹冧滑鍐呭濡備笅:

jboss-app.xml
<jboss-app>
<app-name>MyPortlet</app-name>
</jboss-app>

 

jboss-portlet.xml
<portlet-app>
<portlet>
<portlet-name>MyPortlet</portlet-name>
<security>
</security>
</portlet>
</portlet-app>

 

閮ㄧ講

鐜板湪鎴戜滑鐨勯」鐩粨鏋勭湅璧鋒潵鏄繖鏍風(fēng)殑:

欏圭洰緇撴瀯

鐜板湪鍙互璇曢獙涓涓嬫垜浠殑涓嶅彲鎬濊鐨?HelloWorld portlet 浜? 鍦╓indows鐨勪竴涓祻瑙堝櫒紿楀彛涓? 鎴戜滑閫夋嫨 WEB-INF 鐩綍鐒跺悗灝嗗畠浠?zip 鏍煎紡鍘嬬緝涓哄彨鍋?'MyPortlet.war' 鐨勬枃浠? 灝嗚繖涓?war 鏂囦歡鏀懼埌JBoss Portal鐨?server/default/deploy 鐩綍涓? 鐒跺悗鍚姩鏈嶅姟鍣? 榛樿鎯呭喌涓? JBoss Portal 鐨?URL 鏄?http://localhost:8080/portal, 鎵浠ユ垜浠敤嫻忚鍣ㄨ闂繖涓湴鍧, 鎴戜滑灝嗕細(xì)鐪嬪埌榪欎釜 portal 鐨勯欏? 榪欓噷浣犲簲璇ヤ細(xì)鐪嬪埌涓涓?"MyPortlet Tutorial" 鑿滃崟欏? 涓庝笅闈㈢殑鎴浘涓殑涓鐩稿悓. 褰撴寜涓嬭彍鍗曢摼鎺? 浣犱細(xì)寰楀埌涓涓濡欑殑 "Hello World" 欏甸潰!

JBoss Portal 棣栭〉

MyPortlet portlet 欏甸潰

涓嬩竴姝?

Next, let's do something a bit more interesting, namely create a simple form and display a result page. Let's start by creating our JSP that displays our form. Create a new file, 'helloForm.jsp' in the WEB-INF/pages/view/ folder. We will use the WebWork tag library to build the form on our page. The form itself will ask the user for a first name and last name, something like this:
鎺ョ潃, 鎴戜滑鏉ュ仛涓浜涙湁瓚g殑浜? 涔熷氨鏄垱寤轟竴涓畝鍗曠殑 form 騫舵樉紺轟竴涓粨鏋滈〉闈? 鎴戜滑鍏堟潵鍒涘緩涓涓?JSP 欏甸潰鏉ユ樉紺鴻繖涓?form. 鍒涘緩涓涓柊鐨勬枃浠?'helloForm.jsp', 鏀懼湪 WEB-INF/pages/view/ 鐩綍涓? 鎴戜滑灝嗕細(xì)浣跨敤 WebWork 鏍囩搴撳湪鎴戜滑鐨勯〉闈笂鍒涘緩榪欎釜 form. 榪欎釜 form 浼?xì)璇㈤棶鐢ㄦ堬L(fēng)殑鍚嶅瓧鍜屽, 灝卞儚榪欐牱:

helloForm.jsp
<%@ taglib uri="/webwork" prefix="ww" %>
<H2>Hi there! Please enter your name</H2>
<ww:form action="helloWorld" method="POST">
<ww:textfield label="First name" name="firstName" value="%{firstName}"/>
<ww:textfield label="Last name" name="lastName" value="%{lastName}"/>
<ww:submit value="Say hello!"/>
</ww:form>

 

鐜板湪鎴戜滑鍑嗗鍐欎竴浜?Java 浠g爜, 涓嶅, 灝變竴鐐圭偣. 鎴戜滑鍦ㄦ垜浠殑 src 鐩綍鍒涘緩涓涓柊鐨勫寘, 鎴戜滑鍛藉悕瀹冧負(fù) com.opensymphony.webwork.portlet.tutorial. 鍦ㄨ繖涓寘涓? 鍒涘緩涓涓?HelloWorldAction 綾? 閬靛驚涓鑸殑 WebWork 涔?fàn)鎯? 榪欎釜綾繪墿灞曡嚜XWork妗嗘灦鐨?ActionSupport 綾? 鎴戜滑榪樹(shù)細(xì)娣誨姞涓浜涘睘鎬ф潵鏄犲皠鎴戜滑鍒氭墠鍒涘緩鐨?JSP 涓殑 form 鐨勫睘鎬?

HelloWorldAction.java
package com.opensymphony.webwork.portlet.tutorial;
import com.opensymphony.xwork.ActionSupport;
public class HelloWorldAction extends ActionSupport {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}

 

We also need a JSP to display the processed input. We'll just use the old helloWorld.jsp and modify it a bit. As with helloForm.jsp, we import the WebWork tag library, and we use the ww:property tags to display the input from the form:
鎴戜滑榪橀渶瑕佷竴涓?JSP 鏉ユ樉紺?input 鐨勫鐞嗙粨鏋? 鎴戜滑榪樹(shù)嬌鐢?helloWorld.jsp 鐒跺悗淇敼涓涓? 涓?helloForm.jsp 涓鏍? 鎴戜滑寮曞叆 WebWork 鏍囩搴? 鐒跺悗鎴戜滑浣跨敤 ww:property 鏍囩鏉ユ樉紺?form 涓緭鍏ョ殑鍐呭:

helloWorld.jsp
<%@ taglib prefix="ww" uri="/webwork" %>
<H2>Hello <ww:property value="firstName"/> <ww:property value="lastName"/></H2>
<p/>
<a xhref="<ww:url action="helloWorldInput"/>">Back to form</a>

 

閲嶆柊閮ㄧ講

鐜板湪鎴戜滑鍑嗗濂介噸鏂伴儴緗叉垜浠殑搴旂敤紼嬪簭, 鎵浠ラ噸鏂扮敤 zip 鏍煎紡鍘嬬緝濂戒竴涓?war 鍖呭茍鏀懼埌 server/default/deploy 鐩綍. 鐜板湪 'MyPortlet Tutorial' 欏甸潰灝嗕細(xì)鏄繖涓牱瀛?

Hello World form

杈撳叆涓浜涗俊鎭? 鐒跺悗鐐瑰嚮 "Say hello!" 鎸夐挳, 鐒跺悗浣犲皢浼?xì)鐪嬪堫C笉閿欑殑涓у寲鐨?"hello" 淇℃伅:

涓у寲鐨?Hello World

 



鏈卞博 2007-04-13 10:01 鍙戣〃璇勮
]]>
楠岃瘉妗嗘灦http://www.tkk7.com/zhuyan/articles/110227.html鏈卞博鏈卞博Thu, 12 Apr 2007 09:29:00 GMThttp://www.tkk7.com/zhuyan/articles/110227.htmlhttp://www.tkk7.com/zhuyan/comments/110227.htmlhttp://www.tkk7.com/zhuyan/articles/110227.html#Feedback0http://www.tkk7.com/zhuyan/comments/commentRss/110227.htmlhttp://www.tkk7.com/zhuyan/services/trackbacks/110227.html闃呰鍏ㄦ枃

鏈卞博 2007-04-12 17:29 鍙戣〃璇勮
]]>
XWork閰嶇疆璇﹁堪http://www.tkk7.com/zhuyan/articles/110226.html鏈卞博鏈卞博Thu, 12 Apr 2007 09:28:00 GMThttp://www.tkk7.com/zhuyan/articles/110226.htmlhttp://www.tkk7.com/zhuyan/comments/110226.htmlhttp://www.tkk7.com/zhuyan/articles/110226.html#Feedback0http://www.tkk7.com/zhuyan/comments/commentRss/110226.htmlhttp://www.tkk7.com/zhuyan/services/trackbacks/110226.html闃呰鍏ㄦ枃

鏈卞博 2007-04-12 17:28 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 国产亚洲精品影视在线产品| 美女裸免费观看网站| 国产成人A亚洲精V品无码| 无码中文在线二区免费| 免费看又黄又无码的网站| 国产成人精品免费大全| 亚洲AV综合色区无码一二三区| 亚洲第一精品电影网| 亚洲AV美女一区二区三区| 久久久久国产亚洲AV麻豆| 亚洲成av人片不卡无码久久| 国内自产拍自a免费毛片| 91短视频免费在线观看| 免费观看91视频| 成人av片无码免费天天看| 视频一区在线免费观看| 亚洲丁香婷婷综合久久| 亚洲一级毛片免观看| 久久亚洲AV成人无码软件| 亚洲av无码一区二区三区不卡 | 亚洲AV无码一区二区二三区入口| 免费在线观看黄色毛片| 精品久久久久久久免费加勒比| 妻子5免费完整高清电视| 亚洲黄色免费在线观看| 久久久久久夜精品精品免费啦| 丁香花在线视频观看免费 | 色久悠悠婷婷综合在线亚洲| 亚洲午夜爱爱香蕉片| 国产精品亚洲二区在线观看 | 性色av极品无码专区亚洲| 亚洲国产精品一区二区三区在线观看| 伊人久久综在合线亚洲2019| 777亚洲精品乱码久久久久久| 久久久无码精品亚洲日韩按摩| 亚洲欧洲一区二区| 久久精品国产亚洲AV大全| 亚洲色图.com| 亚洲一卡2卡三卡4卡无卡下载| 亚洲精品无码aⅴ中文字幕蜜桃| 亚洲国产成人久久综合|