n¶i¤@¨BÁA¸ÑWebLogic
Workshop¤è±ªº¸ê°T¡A½Ð°Ñ·Ó§ÚÌWebLogic Workshop FAQ¡C
- ¦b¶±¬y¬yµø¹Ï¤¤¡A¬°¤°»ò¬Ý¤£¨ì¥Ñ¥~³¡¶±¡]§Y¤£ÄÝ©ó·í«e¶±¬y¥Ø¿ýªº¶±¡^¤Þµoªº°Ê§@¡H
- ¦bWebLogic Express¤W¡A¥i¥H³¡¸p¨Ï¥ÎJava¶±¬y¡]JPF¡^©MNetUI¼ÐÅÒ®wªºwebÀ³¥Î¶Ü¡H
- ¶±¬y¦ó®É³Q¾P·´¡H
- ¦p¦óŪ¨ú³Q´O®M¶±¬yªº¤÷¡]´O®M¡^¶±¬y¡H
- ¤@ÓJSP¶±»P©w¸q°T®§·½ªºJPFÀɤ£¦b¦P¤@ÓÀɧ¨¤U¡A¸ÓJSP¦p¦ó¨Ï¥Î¦¹JPF¤¤<netui:error>¤¸¯À¤¤ªº°T®§·½¡H
- Workshop 8.1¤ä´©StrutªºDynaValidatorForm¶Ü¡H
- ¦p¦ó¬°¨Ï¥Î±Æ§ÇªA°Èªººô®æ³]¸mªì©l±Æ§Ç¡H
- ¦p¦ó«ü©w<netui:imageButton>¤¸¯À¤¤ªº¡§action¡¨°Ñ¼Æ¡H
- ¦bJSP¤¤¨Ï¥Î±±¨î¶µ®É¡A¦p¦ó¬°¨ä«ü©wÄݩʡH
- ¬°¤°»ò¦s¦b¤¹³\§Ų́ϥÎpageContext.getAttribute©MpageContext.setAttributeªº<netui:GetData>¼ÐÅÒ¡A«o¤£¦s¦bÃþ¦üªº<netui:SetData>¼ÐÅÒ¡H
- ¦p¦ó±N°ÊºA¸ê®Æ¶Ç»¼µ¹<netui:methodParameter>¼ÐÅÒ¡H
- ¦p¦ó¨Ï²Ä¤T¤è©Î¯S©w©óÀ³¥Îªº¼ÐÅÒ®w¥X²{¦bIDE
¿ï¶µªO¡]Pallette¡^µøµ¡¤¤¡H
- ·í¦bnetui-data:repeater¤¤´O®Mnetui-data:repeater®É¡A¦p¦ó¯à°÷Ū¨ú³Ì¤º³¡repeater¤¤ªº¥~³¡¶µªºÄݩʡH
- ¦³¨S¦³¿ìªk±NNetUI¼ÐÅÒ¤¤ªºXScript¹Bºâ¦¡¸i¸j¨ìjsp¶±¤¤ªº§½³¡ÅܼơH
- JSLT»PXScript¤§¶¡¦³¤°»òÃö«Y¡H
- NetUIªºpageContext¸ê®Æ¸i¸j§@¥Î°ì»Pjavax.servlet.http.PageContextÄݩʹïÀ³¤§¶¡¦³¤°»òÃö«Y¡H
- ¦p¦ó¹ïNetUI¼ÐÅÒ®w¤¤ªº¦UºØ¼ÐÅÒ¥[¥H¤ÀÃþ¡A¥H¨Ï¨ä§ó¦n²z¸Ñ¡H
- ¶±¬y¤ä´©Struts Tiles¶Ü¡H
- ¦b¶±¬y¸ê®Æ¸i¸j§@¥Î°ì¤º¡A§Ú¯à°÷¨Ï¥Îªº¦UºØ¥i¥ÎÄݩʦ³þ¨Ç¡H
- ¦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ªº°Ê§@¡Cn¬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
µª¡Gn¦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
- °ßŪ Read-Only
°ßŪ¼ÐÅÒ¦³<netui:content>©M<netui:label>µ¥µ¥¡C¥¦Ì±q¼ÐÅÒ¤¤ªº¡§value¡¨Äݩʤ¤Åª¨ú¸ê®Æ¡A¦ý¤£·|±N¸ê®Æµo¦^µ¹¦øªA¾¹¡C
- Ū¼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
- Ū¼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¦]¬°Tilesn¨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
µª¡Gn±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>
|