Åwªï¨Ó¨ìBEA¡iDev2Dev¡j
 
dev2dev ­º­¶>   WebLogic Portal
¼ÐÃD¡GFAQ: ­¶­±¬y»PNetUI
2003-12-20
§@ªÌ¡GEddie O'Neil
­n¶i¤@¨BÁA¸ÑWebLogic Workshop¤è­±ªº¸ê°T¡A½Ð°Ñ·Ó§Ú­ÌWebLogic Workshop FAQ¡C
    1. ¦b­¶­±¬y¬yµø¹Ï¤¤¡A¬°¤°»ò¬Ý¤£¨ì¥Ñ¥~³¡­¶­±¡]§Y¤£ÄÝ©ó·í«e­¶­±¬y¥Ø¿ýªº­¶­±¡^¤Þµoªº°Ê§@¡H
    2. ¦bWebLogic Express¤W¡A¥i¥H³¡¸p¨Ï¥ÎJava­¶­±¬y¡]JPF¡^©MNetUI¼ÐÅÒ®wªºwebÀ³¥Î¶Ü¡H
    3. ­¶­±¬y¦ó®É³Q¾P·´¡H
    4. ¦p¦óŪ¨ú³Q´O®M­¶­±¬yªº¤÷¡]´O®M¡^­¶­±¬y¡H
    5. ¤@­ÓJSP­¶­±»P©w¸q°T®§·½ªºJPFÀɤ£¦b¦P¤@­ÓÀɧ¨¤U¡A¸ÓJSP¦p¦ó¨Ï¥Î¦¹JPF¤¤<netui:error>¤¸¯À¤¤ªº°T®§·½¡H
    6. Workshop 8.1¤ä´©StrutªºDynaValidatorForm¶Ü¡H
    7. ¦p¦ó¬°¨Ï¥Î±Æ§ÇªA°Èªººô®æ³]¸mªì©l±Æ§Ç¡H
    8. ¦p¦ó«ü©w<netui:imageButton>¤¸¯À¤¤ªº¡§action¡¨°Ñ¼Æ¡H
    9. ¦bJSP¤¤¨Ï¥Î±±¨î¶µ®É¡A¦p¦ó¬°¨ä«ü©wÄݩʡH
    10. ¬°¤°»ò¦s¦b¤¹³\§Ú­Ì¨Ï¥ÎpageContext.getAttribute©MpageContext.setAttributeªº<netui:GetData>¼ÐÅÒ¡A«o¤£¦s¦bÃþ¦üªº<netui:SetData>¼ÐÅÒ¡H
    11. ¦p¦ó±N°ÊºA¸ê®Æ¶Ç»¼µ¹<netui:methodParameter>¼ÐÅÒ¡H
    12. ¦p¦ó¨Ï²Ä¤T¤è©Î¯S©w©óÀ³¥Îªº¼ÐÅÒ®w¥X²{¦bIDE ¿ï¶µªO¡]Pallette¡^µøµ¡¤¤¡H
    13. ·í¦bnetui-data:repeater¤¤´O®Mnetui-data:repeater®É¡A¦p¦ó¯à°÷Ū¨ú³Ì¤º³¡repeater¤¤ªº¥~³¡¶µªºÄݩʡH
    14. ¦³¨S¦³¿ìªk±NNetUI¼ÐÅÒ¤¤ªºXScript¹Bºâ¦¡¸i¸j¨ìjsp­¶­±¤¤ªº§½³¡ÅܼơH
    15. JSLT»PXScript¤§¶¡¦³¤°»òÃö«Y¡H
    16. NetUIªºpageContext¸ê®Æ¸i¸j§@¥Î°ì»Pjavax.servlet.http.PageContextÄݩʹïÀ³¤§¶¡¦³¤°»òÃö«Y¡H
    17. ¦p¦ó¹ïNetUI¼ÐÅÒ®w¤¤ªº¦UºØ¼ÐÅÒ¥[¥H¤ÀÃþ¡A¥H¨Ï¨ä§ó¦n²z¸Ñ¡H
    18. ­¶­±¬y¤ä´©Struts Tiles¶Ü¡H
    19. ¦b­¶­±¬y¸ê®Æ¸i¸j§@¥Î°ì¤º¡A§Ú¯à°÷¨Ï¥Îªº¦UºØ¥i¥ÎÄݩʦ³­þ¨Ç¡H
    20. ¦p¦ó±q·í«e­¶­±¬yªºJSP¤¤©I¥s¤£¦P­¶­±¬y¤¤ªº°Ê§@¡H


°Ý¡G¦b­¶­±¬y¬yµø¹Ï¡]PageFlow View¡^¤¤¡A¬°¤°»ò¬Ý¤£¨ì¥Ñ¥~³¡­¶­±¡]§Y¤£ÄÝ©ó·í«e­¶­±¬y¥Ø¿ýªº­¶­±¡^¤Þµoªº°Ê§@¡H

µª¡G¬°¤F¨Ï­¶­±¬y¬yµø¹Ï¡]PageFlow View¡^¬Ý°_¨Ó§ó¥[¤@¥Ø¤FµM¡AWorkshop¦b¬yµø¹Ï¤¤Åã¥Ü¤F¹ï¥~³¡­¶­±¡]¤£ÄÝ©ó·í«e­¶­±¬y¥Ø¿ýªº­¶­±¡^ªº¤Þ¥Î¡A¦ý¬O¨S¦³Åã¥Ü¥ô¦ó¥Ñ³o¨Ç¥~³¡­¶­±¤Þµoªº°Ê§@¡C­n¬d¬Ý¥Ñ¥~³¡­¶­±¤Þµoªº°Ê§@¡A±z»Ý­n¦b»P¬ÛÀ³­¶­±©Ò¦bªº¥Ø¿ý¤¤¥´¶}­¶­±¬yªº¬yµø¹Ï¡C

°Ý¡G¦bWebLogic Express¤W¡A¥i¥H³¡¸p¨Ï¥ÎJava­¶­±¬y¡]JPF¡^©MNetUI¼ÐÅÒ®wªºwebÀ³¥Î¶Ü¡H

µª¡Gµª®×¬OªÖ©wªº¡A¨Ï¥ÎJPF©MNetUI¼ÐÅÒ®wªºwebÀ³¥Î¥i¥H³Q¥Î¦bWebLogic Express¡]WLX¡^¤W¡CµM¦Ó¡A±z¤£¯à¦bWLX¤W¨Ï¥Î±±¨î¶µ¡A¦]¬°¥¦­Ì¨Ï¥Î¤FEJB©M/©ÎJMS¡C¦bService Pack 2¤W¡A­¶­±¬y©MNetUI¼ÐÅÒ®w±N¯à°÷¥H¤@ºØ¿W¥ß©ó¥­»Oªº¤è¦¡¬°servlet®e¾¹¡]¦Ó¤£¶È¶È¬OWebLogic¦øªA¾¹¡^¤Wªº¹B¦æ®É³¡¸p©Ò¥Î¡C

°Ý¡G­¶­±¬y¦ó®É³Q¾P·´¡H

µª¡G­¶­±¬y³Q¾P·´ªº®É­Ô¬O¡G

a. ¬y²¾°Ê¨ì¤£¦Pªº¡B¤£¥i´O®Mªº­¶­±¬y®É

b. ³Q´O®Mªº­¶­±¬yªð¦^¨ì´O®M¥¦ªº­¶­±¬y®É

c. ·ísession¶W®É¨Ã³Q¾P·´®É¡C·í«eHttpsessionªº¥Í¦s´Á¬O­¶­±¬y¯à°÷¨ã¦³ªº³Ìªø¥Í¦s´Á¡C

ª`·N¡A³oùئ³¤@ÂI«Ü­«­n¡A§Y¥ô¦ó³Q´O®Mªº­¶­±¬y³£ÁôÂæb´O®M­¶­±¬yªº¡§´Ì¡¨¤¤¡A¨Ã¥B¹ï©ó·í«e³Q´O®Mªº­¶­±¬y¨Ó»¡¡AµL»Ýªð¦^¨ì´O®M¥¦ªº­¶­±¬y¡A§Y¥iÂà¨ì¥~³¡­¶­±¬y¡]±q¦Ó¾P·´¤F´O®M­¶­±¬yªº¾ã­Ó´Ì¡^¡C

°Ý¡G¦p¦óŪ¨ú³Q´O®M­¶­±¬yªº¤÷¡]´O®M¡^­¶­±¬y¡H

µª¡G±z¥i¥H¨Ï¥Î¤U¦C¤èªk±q³Q´O®Mªº­¶­±¬y¤¤Åª¨ú´O®M­¶­±¬y¡C

PageFlowController parentPageFlow = PageFlowUtils.getNestingPageFlow(getRequest());

¦pªG¨ç¼Æ

"PageFlowUtils.getNestingPageFlow( getRequest() )"

ªð¦^null¡A³o´N·N¨ýµÛ³Q´O®Mªº­¶­±¬y¬O³Qª½±µ©I¥sªº¡A¦Ó¤£¬O³q¹L¤÷­¶­±¬y©I¥sªº¡C

 

°Ý¡G¤@­ÓJSP­¶­±»P©w¸q°T®§·½ªºJPFÀɤ£¦b¦P¤@­ÓÀɧ¨¤U¡A¸ÓJSP¦p¦ó¨Ï¥Î¦¹JPF¤¤<netui:error>¤¸¯À¤¤ªº°T®§·½¡H

µª¡G¦pªG±z¥¿¦bJSP¤¤¤Þ¥Îªº°T®§·½³Q©w¸q¬°¡§test¡¨¤å¥ó§¨¡]¦ì©óweb±M®×ªº®Ú¥Ø¿ý¤U¡^¤¤­¶­±¬yªº¹w³]°T®§·½¡A¨º»ò³q¹L¦b¡§bundle¡¨¦WºÙ¤§«e²K¥[¨ä«á±a¦³Àɧ¨¦WºÙªº¡§org.apache.struts.action.MESSAGE¡¨­º½X¡A±z¥i¥H¹³¤U­±³o¼Ë¨Ï¥Î<netui:error>¤¸¯À¡G

<netui:error bundle="org.apache.struts.action.MESSAGE/test"

value="myerror"></netui:error>

©ÎªÌ

<netui:errors bundle="org.apache.struts.action.MESSAGE/test" </netui:errors>

¦pªG±z¤w¸g¦b­¶­±¬y¤¤¨Ï¥Î¡§err¡¨Áä©w¸q¤F°T®§·½¡A¦p¤U©Ò¥Ü¡G

* @jpf:message-resources key="err" resources="validation.test.Errors"

±z»Ý­n±N¡§org.apache.struts.action.MESSAGE¡¨¦r¦ê´À´«¬°Áä­È¡A¦p¤U©Ò¥Ü¡G

<netui:error bundle="err/test" value="myerror"></netui:error>

°Ý¡GWorkshop 8.1¤ä´©StrutsªºDynaValidatorForm¶Ü¡H

µª¡GWorkshop ªº8.1ª©¥»¤£¤ä´©StrutsªºDynaValidatorForm¡C

°Ý¡G¦p¦ó¬°¨Ï¥Î±Æ§ÇªA°Èªººô®æ³]¸mªì©l±Æ§Ç¡H

µª¡G¦bª©¥»8.1¤¤¡ASortFilterService¤£¤ä´©³]¸m¿zÀ˵{¦¡ªºªì©l±Æ§Ç¡C±z©l²×¥i¥H¦bJPF¤¤¤â°Ê«Ø¥ß¤@­Ó±Æ§Ç¡A©ÎªÌ¦bRowSet±±¨î¶µ¤WªºSQL¤¤¨Ï¥ÎÀRºAªºWHERE©ÎORDER BY¤l¥y¡CÃö©ó³o¨Ç¤èªk±©¤@ªº­­¨î¬O¡A·í¬°­¶­±²K¥[®Ññ®É¡A±Æ§Ç»P¿zÀ˵{¦¡¤£·|¤Ï¬M¦b©Ò¨Ï¥ÎªºURL¤¤¡C

°Ý¡G¦p¦ó«ü©w<netui:imageButton>¤¸¯À¤¤ªº¡§action¡¨°Ñ¼Æ¡H

µª¡G<netui:imageButton>¤¸¯À¤£¤ä´©¡§action¡¨°Ñ¼Æ¡C¥¦Á`¬O«e²¾¨ì»Pªí³æ¬ÛÃöªº¹w³]°Ê§@¡C±z¥i¥H¨Ï¥Î<netui:imageAnchor>¤¸¯À§@¬°¥N´À¡A¦p¤U©Ò¥Ü¡G

<netui:imageAnchor border="0" action="foo" src="/foo/bar.gif" width="68" height="24"/>


°Ý¡G¦bJSP¤¤¨Ï¥Î±±¨î¶µ®É¡A¦p¦ó¬°¨ä«ü©wÄݩʡH

µª¡G¤£©¯ªº¬O¡A·í«eª©¥»¤£¤ä´©³oºØ¦æ¬°¡C¦ý¦s¦b¨ä¥L¨âºØ¿ï¾Ü¡G

1¡D °õ¦æ­¶­±¬y¤¤±±¨î¶µªº¤èªk¡A¨Ã±Nµ²ªG¦s©ñ©órequest¤Î°Ê§@ªí³æ¤¤¶Ç»¼µ¹¬ÛÀ³ªº­¶­±¡C

2¡D ¨Ï¥ÎcallControl¼ÐÅÒªº±±¨îÄݩʤ¤ªº¹Bºâ¦¡¡Aª½±µ¸i¸j¨ì¤@­Ó±±¨î¶µ¡A¸Ó±±¨î¶µ¦b­¶­±¬y¤¤³Q¤½¶}¬°¦p¤U§Î¦¡¡G

<netui-data:callControl controlId="{pageFlow.myDatabaseControl}" ... />


±µ¤U¨Ó¡A±z¥i¥H¨Ï¥Î­¶­±¬y¤¤±±¨î¶µ¨Æ¨Ò¤Wªºª`¸Ñ¡C

°Ý¡G¬°¤°»ò¦s¦b¤¹³\§Ú­Ì¨Ï¥ÎpageContext.getAttribute©MpageContext.setAttributeªº<netui:GetData>¼ÐÅÒ¡A«o¤£¦s¦bÃþ¦üªº<netui:SetData>¼ÐÅÒ¡H

µª¡GgetData¼ÐÅÒªº§@¥Î¬O¡A¤¹³\JSP§@ªÌ°w¹ï¥Ñ©ó¸ê®Æ¸i¸j¦Ó²£¥Íªºª«¥ó®Ñ¼gscriptlet¡C§Ú­Ì¤£´£¨ÑsetData¼ÐÅÒ¡A¦]¬°§Ú­Ì­n¨Ïµ{¦¡³]­p¼Ò«¬©M¤u¨ãÄ~Äò¤ä´©¥¦¡A¨Ï¨ä±Mª`©ó¦b­¶­±¬y¤¤²K¥[·~°È/ª¬ºAºûÅ@ÅÞ¿è¡C¥ô¦ó¹ï(session|request).setAttributeªº©I¥s¦h¥bÀ³¸Ó¦b¤@­Ó°Ê§@(action)¤º§¹¦¨¡C³o¥i¥HÁ×§K­¶­±¥X²{°Æ§@¥Î¡A¨Ã¨Ï¥¦­Ì§ó¥[®e©öºûÅ@¡C

°Ý¡G¦p¦ó±N°ÊºA¸ê®Æ¶Ç»¼µ¹<netui:methodParameter>¼ÐÅÒ¡H

µª¡G§Ú­Ì¥i¥H¨Ï°ÊºA¸ê®Æ¥i¥H¬°<netui:methodParameter>¼ÐÅҩҥΡA¨ãÅé¤èªk¬O±qpageContextÅܼƨӳ]¸m¨ÃŪ¨ú¥¦¡A¦p¤U©Ò¥Ü¡G

<%

String s = "name";

pageContext.setAttribute("theName", s);

%>

<netui-data:callControl controlId="productsDBControl"

method="insertProduct">

<netui-data:methodParameter value="{pageContext.theName}"/>>

</netui-data:callControl>


°Ý¡G¦p¦ó¨Ï²Ä¤T¤è©Î¯S©w©óÀ³¥Îªº¼ÐÅÒ®w¥X²{¦bIDE ¿ï¶µªO¡]Pallette¡^µøµ¡¤¤¡H

µª¡G­n¦bIDE¤¤¬°Palletteµøµ¡²K¥[¤@­Ó¼ÐÅÒ®w¡A±z»Ý­n¡G

1¡D ±N¼ÐÅÒ®wJAR²K¥[¨ì¬ÛÃö±M®×ªºWEB-INF/lib¥Ø¿ý¤¤¡C

2¡D ¦bweb.xml¤¤²K¥[¤@¶µ¨Ï¨ä«ü¦V¼ÐÅÒ®wªºTLD¤å¥ó¡A¨Ã½á¤©¬ÛÀ³ªºURI¡A³o¨Ï±oJSPÀɳq¹L¸ÓURI¤Þ¥ÎTLD¡C

±µµÛ¡A±z¥i¥H¥´¶}¤@­ÓJSP¡A¬d¬ÝInsert¥\¯àªí©Î¼ÐÅÒ¿ï¶µªO¡A¥H½T«O¼ÐÅÒ®w¤¤ªº¼ÐÅÒ¯à°÷Åã¥Ü¥X¨Ó¡C

°Ý¡G·í¦bnetui-data:repeater¤¤´O®Mnetui-data:repeater®É¡A¦p¦ó¯à°÷Ū¨ú³Ì¤º³¡repeater¤¤ªº¥~³¡¶µªºÄݩʡH

µª¡G±z¥i¥HŪ¨ú³Ì¤º³¡repeater¤¤¥~³¡repeaterªºÄݩʡA¨ãÅé¤èªk¬O¨Ï¥Î¤@­Ó§Î¦p¡§{container.container.*}¡¨ªº¹Bºâ¦¡¡A¨ä¤¤²Ä¤@­Ó®e¾¹¤Þ¥Î·í«eªºrepeater¡A¦Ó²Ä¤G­Ó®e¾¹«h¤Þ¥Î¨ä¤÷repeater¡Aµ¥µ¥¡CÁÙ¦³¥t¥~¤@ºØ¿ìªk¡A³q¹L¨Ï¥Înetui-data:getData¼ÐÅÒ¡A±z¥i¥H¦b­¶­±±¡¹Ò¤¤ªº¥~³¡repeater¤¤³]¸m¤@­ÓÅܼơA¨Ã¦b§Î¦p{pageContext.*}ªº³Q´O®Mªºrepeater¤¤Åª¨ú¸ÓÅܼơC

°Ý¡G¦³¨S¦³¿ìªk±NNetUI¼ÐÅÒ¤¤ªºXScript¹Bºâ¦¡¸i¸j¨ìjsp­¶­±¤¤ªº§½³¡ÅܼơH

µª¡G<netui-data:getData>¼ÐÅÒ¥i¥H¥Î©ó­pºâXScript¹Bºâ¦¡ªº­È¡A¨Ã±N¨ä©ñ¸m¨ìJSPªºpageContext¤¤¡C±µ¤U¨Ó´N¥i¥H¦bscriptlet¤¤Åª¨úpageContext¤¤ªºÅܼơC¨Ò¦p¡A

<netui-data:getData resultId="first" value="{actionForm.firstname}"/>

<% String firstName = (String) pageContext.getAttribute("first"); %>


°Ý¡GJSLT»PXScript¤§¶¡¦³¤°»òÃö«Y¡H

µª¡G¦b·í«eªºª©¥»¤¤¡AJSTLªº¹Bºâ¦¡»y¨¥¡]EL¡^»PXScript¤§¶¡¨S¦³¥ô¦óÃö«Y¡C±z¥i¥H¦b»Ý­nªº®É­Ô¨Ï¥ÎJSTL¼ÐÅÒ¡A¦Ó¸}¥»»y¨¥¤£·|©¼¦¹·FÂZ¡C

°Ý¡GNetUIªºpageContext¸ê®Æ¸i¸j§@¥Î°ì»Pjavax.servlet.http.PageContextÄݩʹïÀ³¤§¶¡¦³¤°»òÃö«Y¡H

µª¡GNetUIªºpageContext¸ê®Æ¸i¸j§@¥Î°ì¥u¤£¹L¬Ojavax.servlet.http.PageContextÄݩʹïÀ³³»³¡ªº¤@¼h¦Ó¤w¡C³o­Ó±¡¹Òªº©w¸q¬O¡A¥¦Åª¨ú­¶­±§@¥Î°ì¤ºªº¦WºÙ/­È¹ïªº¹ïÀ³¡C¨Ò¦p¡A¤U­±³oºØ§Î¦¡¬O¦Xªkªº¡G

<%

pageContext.setAttribute("myPageContextVar", "A Foo String");

%>


±µ¤U¨Óªº³o¨âºØ§Î¦¡¬O§¹¥þµ¥¦Pªº¡G

<netui:content value="{pageContext.myPageContextVar}"/>


©M


<% out.write(pageContext.getAttribute("myPageContextVar"); %>


°Ý¡G¦p¦ó¹ïNetUI¼ÐÅÒ®w¤¤ªº¦UºØ¼ÐÅÒ¥[¥H¤ÀÃþ¡A¥H¨Ï¨ä§ó¦n²z¸Ñ¡H

µª¡G¹ïNetUI¼ÐÅÒ®w­Èªº¼ÐÅÒ¶i¦æ¤ÀÃþªº°ò¥»¤èªk¬O¡A³o¨Ç¼ÐÅÒ¬O°ßŪªº¡AÁÙ¬O¥iŪ¼gªº¡]§Y¬O§_»P¦øªA¾¹¶i¦æ¸ê®Æªº¥æ¤¬¡^¡C

°ò©ó³o¼Ð·Ç¡A¼ÐÅÒ¥i¥H³Q¹º¤À¬°¤TÃþ¡G

  1. °ßŪ Read-Only
    °ßŪ¼ÐÅÒ¦³<netui:content>©M<netui:label>µ¥µ¥¡C¥¦­Ì±q¼ÐÅÒ¤¤ªº¡§value¡¨Äݩʤ¤Åª¨ú¸ê®Æ¡A¦ý¤£·|±N¸ê®Æµo¦^µ¹¦øªA¾¹¡C
  2. Ū¼g³æ­È Read-Write Single Value
    ³o¤@Ãþªº¼ÐÅÒ¦³<netui:textbox>¡B<netui:textarea>¡B<netui:checkbox>µ¥µ¥¡C³o¨Ç¼ÐÅһݭnÁA¸Ñ¨â¥ó¨Æ±¡¡G
    • ¦bJSP§e²{®É¡A¦b¦ó³BÀò¨ú¸ê®Æ¤ùÂ_¡C
    • ¦b½Ð¨D´£¥æ®É¡A±N¸ê®Æ¤ùÂ_©ñ¸m¨ì¦ó³B¡C

      ¡§¸ê®Æ¤ùÂ_¡¨§Y¬°¡§dataSource¡¨Äݩʪº­È¡C½Ðª`·N¡A³o»Pjavax.sql.Datasourceª«¥ó¨S¦³¥ô¦óÃö«Y¡C
  3. Ū¼g¦h­È Read-Write multiple value

³o¤@Ãþ¼ÐÅÒ¥]¬A<netui:checkBoxGroup>¡B<netui:select>µ¥µ¥¡A¥¦­Ì¤£¹L¬O¤W­±¤@Ãþ¼ÐÅÒªº¦h­Èª©¥»½}¤F¡C¥¦­Ì¦P¼Ë»Ý­nÁA¸Ñ±q¦ó³BÀò¨ú¦UºØ¿ï¶µ¡A¥H«K±q¦øªA¾¹Åª¨ú¨ÃÅã¥Üµ¹¨Ï¥ÎªÌ¡C¥¦­Ì¥i¥H±q¡§optionsDataSource¡¨Äݩʤ¤Àò±o¡C¡§dataSource¡¨ÄݩʳQ¥Î©ó¤Þ¥Î±N³Q¼g¦^¨ì¦øªA¾¹¤Wªº¸ê®Æ¡C

°Ý¡G­¶­±¬y¤ä´©Struts Tiles¶Ü¡H

µª¡G¦b·í«eªºª©¥»¤¤¡A­¶­±¬y¤£¤ä´©¤UÄѳoºØ°µªk¡A§Y³q¹L¦b­¶­±¬y¤¤¨Ï¥ÎStruts-merge¥\¯à¥H¨D¦b­¶­±¬y¤¤¨Ï¥ÎStruts Tiles¡C³o¬O¦]¬°Tiles­n¨D¨Ï¥Î¥¦¦Û¤vªºRequestProcessor¡A¦Ó³o·|·FÂZ­¶­±¬yRequestProcessor¡CµM¦Ó¡A§Ú­Ìªº½T¤ä´©Tiles¼Ò²Õ»P­¶­±¬y¦b¦P¤@­ÓWeb±M®×¤¤¦@¦s»P¥æ¤¬¡C

°Ý¡G¦b­¶­±¬y¸ê®Æ¸i¸j§@¥Î°ì¤º¡A§Ú¯à°÷¨Ï¥Îªº¦UºØ¥i¥ÎÄݩʦ³­þ¨Ç¡H

µª¡G¦b­¶­±¬y¸ê®Æ¸i¸j§@¥Î°ì¤º¡A¥i¥ÎªºÄݩʥ]¬A¥ô¦ó¤½¦@Äæ¦ì¡A¥H¤Î¥ô¦ó¶}µo¤H­û¦b¯S©w­¶­±¬y¤¤©w¸qªº¤½¦@JavaBeanÄݩʡC¨Ò¦p¡A¤U­±ªº­¶­±¬y©w¸q¤F¥i¥H»P¼ÐÅÒÄݩʤ¤ªº¡§{pageFlow.name}¡¨¸i¸jªº¡§name¡¨ÄݩʡC

public class Controller extends PageFlowController

{

public String name;

/**

* @jpf:action

* @jpf:forward name="index" path="index.jsp"

*/

protected Forward begin()

{

return new Forward("index");

}

}

°Ý¡G¦p¦ó±q·í«e­¶­±¬yªºJSP¤¤©I¥s¤£¦P­¶­±¬y¤¤ªº°Ê§@¡H

µª¡G­n±q·í«e­¶­±¬yªºJSP¤¤©I¥s¤£¦P­¶­±¬y¤¤ªº°Ê§@¡A±z¥i¥H¨Ï¥Î<netui:anchor>¼ÐÅÒ¤¤ªº¡§href¡¨ÄݩʡC¡]ª`·N¡A±z¤£¯à¨Ï¥Î¡§action¡¨ÄݩʡA¦]¬°¥¦¥u¯à¥Î©ó©I¥s·í«e­¶­±¬y¤¤ªº°Ê§@¡^¡C±z¥i¥Hºc³y¿í´`¼Ò¦¡ªºURI¡C

"<directory>/<action>.do",


¨Ò¦p¡G.,

<netui:anchor href="/otherPageFlow/myMethodOne.do">Do Method

One</netui:anchor>


 
Copyright 2004 © BEA Systems, Inc. All rights