一�
写jsp™åµé¢çš„æ—¶å€™ï¼Œåœ¨struts2ä¸ï¼Œç”¨çš„æ˜¯sæ ‡è®°åQŒå…ˆå¼•å…¥æ ‡è®°åQ?
<%@ taglib prefix="s" uri="/struts-tags"%>
二�
struts2çš„æ ‡½{‘Ö’Œ1是完全ä¸åŒçš„ã€?
struts2çš„æ ‡½{‘Öˆ†ä¸ÞZ¸¤å¤§ç±»åQšéžUIæ ‡å¿—å’ŒUIæ ‡å¿— struts1 ž®†æ ‡å¿—库按功能分æˆHTMLã€Tilesã€Logicå’ŒBean½{‰å‡ 部分
下颞®×ƒ»‹¾lstrut2çš„å…·ä½“æ ‡½{¾ï¼š
1ã€UI
UIæ ‡å¿—åˆå¯ä»¥åˆ†ä¸ø™¡¨å•UIå’Œéžè¡¨å•UI两部分。表å•UI部分基本与Struts 1.x相åŒåQŒéƒ½æ˜¯å¯¹HTML表å•å…ƒç´ çš„åŒ…è£…ã€‚ä¸˜q‡ï¼ŒStruts 2.0åŠ äº†å‡ ä¸ªæˆ‘ä»¬¾l常在项目ä¸ç”¨åˆ°çš„æŽ§ä»¶å¦‚åQšdatepickerã€doubleselectã€timepickerã€optiontransferselect½{‰ã€‚å› ä¸ø™¿™äº›æ ‡å¿—很多都¾l常用到åQŒè€Œä¸”傿•°ä¹Ÿå¾ˆå¤šï¼Œè¦åœ¨ä¸€½‹‡æ–‡ç« 详¾l†è¯´æ˜ŽåÆˆéžæ˜“事ã€?
下é¢ä¸»è¦æ˜¯uiæ ‡ç¾çš„一些用æ³?
form:
<s:form action="exampleSubmit" method="post" enctype="multipart/form-data">
<s:submit />
   <s:reset />
</s:form>å¯ä»¥ä¸Šä¼ æ–‡äšgçš„formã€?
textfieldåQ?
<s:textfield
           label="å§“ååQ?
           name="name"
           tooltip="Enter your Name here" />
datepickeråQ?
<s:datepicker
           tooltip="Select Your Birthday"
           label="生日"
           name="birthday" />
textareaåQ?
<s:textarea
           tooltip="Enter your remart"
           label="备注"
           name="remart"
           cols="20"
           rows="3"/>
select:
<s:select
           tooltip="Choose user_type"
           label=""
           list="#{'free':'å…è´¹','vip':'æ”¶è´¹'}" value="#{'free':'å…è´¹'}" Â
          name="bean.user_type"
           emptyOption="true"
           headerKey="None"
           headerValue="None"/>
<s:select
           tooltip="Choose user_type"
           label=""
           list="#{'free':'å…è´¹','vip':'æ”¶è´¹'}" value="#{'free':'å…è´¹'}" Â
          name="bean.user_type"
           emptyOption="true"
           headerKey="None"
           headerValue="None"/>
<s:select
list="venderList"
listKey="id"
listValue="name"
value="%{profile.companyName}"
name="companyName" cssClass="sel_style_w_180"/>Â Â
挺好用的
checkboxliståQ?
<s:checkboxlist
           tooltip="Choose your Friends"
           label="朋å‹"
           list="{'Patrick', 'Jason', 'Jay', 'Toby', 'Rene'}"
           name="friends"/>
checkboxåQ?
  <s:checkbox
           tooltip="Confirmed that your are Over 18"
           label="òq´é¾„"
           name="legalAge"
           value="18"/>
file:
  <s:file
           tooltip="Upload Your Picture"
           label="Picture"
           name="picture" />
a:
<s:a href="getP.jsp">‘…链接æäº?lt;/s:a>
date :
<s:date name="ad_end_time" format="yyyy-MM-dd"/>
2ã€éžUI
ifã€elseifå’Œelse æè¿°åQ?
执行基本的æ¡ä»¶æµè½¬ã€?
傿•°åQ?
å称必需默认¾cÕdž‹æè¿°å¤‡æ³¨test是Boolean军_®šæ ‡å¿—里内å®ÒŽ(gu¨©)˜¯å¦æ˜¾½Cºçš„表达å¼elseæ ‡å¿—æ²¡æœ‰˜q™ä¸ªå‚æ•°idå¦Object/Stringç”¨æ¥æ ‡è¯†å…ƒç´ çš„id。在UI和表å•ä¸ä¸ºHTMLçš„id属æ€?例ååQ?
<%@ page c %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
   <head>
       <title>Condition Flow</title>
   </head>
   <body>
       <h3>Condition Flow</h3>           Â
       <!--
           ˜q™é‡Œæœ‰ç‚¹ž®æŠ€å·§ï¼š
           本æ¥å¯ä»¥ç”?parameters.name[0]æ¥èŽ·å¾—ï¼Œè¯äh±‚ä¸name的倹{€‚但是,在我实现includeä¾‹åæ—Óž¼Œ
Â Â Â Â Â Â Â Â Â Â Â æ— è®ºæˆ‘ç”¨paramæ ‡å¿—¾l™name赋ä“Q何å€û|¼Œ#parameters里é¢ä¸ä¼šå«æœ‰ä»ÖM½•å€û|¼Œæ‰€ä»?parameters.nameä¹ŸäØ“½Iºå€¹{€?
           Â
Â Â Â Â Â Â Â Â Â Â Â å…¶åŽŸå› äØ“åQ?
           当ä‹É用includeæ ‡å¿—æ—Óž¼Œè¢«åŒ…å«çš„™åµé¢åQˆincludedåQ‰é‡Œ#parameters拿到的是包嫙åµé¢é‡Œçš„è¯äh±‚傿•°ã€?
           Â
Â Â Â Â Â Â Â Â Â Â Â å› æ¤åQŒè¿™é‡Œå¿…™åÀL‰‹å·¥è°ƒç”¨request.getParameter("name")ã€?
       -->
   <s:iterator value="linkList" status="bean">
  <tr>
   <td class="data_tab_tdcl">
    <s:property value="#bean.Index+1" />   </td>
   <td class="data_tab_tdcl"><s:property value="link_title" /></td>
   <td class="data_tab_tdcl"><s:property value="link_url" /></td>
   <td class="data_tab_tdcl">
   <s:if test="link_type == 1">
                  文å—
               </s:if>
               <s:elseif test="link_type == 2">
                  囄¡‰‡
               </s:elseif>
                <s:else>
                -----
              </s:else>  Â
   </td>
  Â
   </body>
</html>
ä¾? condition.jsp
iterator æè¿°åQ?
用于é历集åˆåQˆjava.util.CollectionåQ‰æˆ–æžšä‹Då€û|¼ˆjava.util.IteratoråQ‰ã€?
傿•°åQ?
å称必需默认¾cÕdž‹æè¿°statuså¦String如果讄¡½®æ¤å‚敎ͼŒä¸€ä¸ªIteratorStatus的实例将会压入æ¯ä¸ªéåŽ†çš„å †æ ˆvalueå¦Object/Stringè¦éåŽ†çš„å¯æžšä¸„¡š„åQˆiteratableåQ‰æ•°æ®æºåQŒæˆ–者将攑օ¥æ–°åˆ—表(ListåQ‰çš„对象idå¦Object/Stringç”¨æ¥æ ‡è¯†å…ƒç´ çš„id。在UI和表å•ä¸ä¸ºHTMLçš„id属æ€?例ååQ?
<%@ page c %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%
   List list = new ArrayList();
   list.add("Max");
   list.add("Scott");
   list.add("Jeffry");
   list.add("Joe");
   list.add("Kelvin");
   request.setAttribute("names", list);
%>
<html>
   <head>
       <title>Iterator</title>
   </head>
   <body>
       <h3>Names: </h3>
       <!--
           1ã€æ¤å¤„çš„½Iºpropertyå…ƒç´ ç”¨äºŽèŽ·å¾—å½“å‰iteratorçš„å€?
           2ã€status被设æˆstutsåQŒåœ¨iterator的里é¢å°±å¯ä»¥é€šè¿‡#stutså–å¾—IteratorStatus的对象。IteratorStatus¾cÕdŒ…å«å½“å‰åºå·ä¿¡æ¯ï¼Œå¦‚是å¦ç¬¬ä¸€ä¸ªæˆ–最åŽä¸€ä¸ªï¼Œæ˜¯å¦ä¸ºå¥‡æ•°åºå—÷€‚这些信æ¯åœ¨æˆ‘ä»¬åšæ ¼å¼åŒ–的时候,昑־—éžå¸¸æœ‰ç”¨ã€?
       -->
       <ol>
           <s:iterator value="#request.names" status="stuts">               Â
               <s:if test="#stuts.odd == true">
                   <li>White <s:property /></li>
               </s:if>
               <s:else>
                   <li style="background-color:gray"><s:property /></li>
               </s:else>
           </s:iterator>
       </ol>
   </body>
</html>