锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
a鏍囩鍒涘緩涓涓狧TML瓚呴摼鎺ワ紝絳変環浜嶩TML 鐨?lt;a href=""....
紺鴻寖浠g爜錛?br />
<s:a href="login.action">鐧婚檰</s:a>
鏇村 a 淇℃伅
action
浣跨敤action鏍囩 鍙互鍏佽鍦↗SP欏甸潰涓洿鎺ヨ皟鐢ˋction銆?br />
鑼冧緥濡備笅錛?br />
<s: action name="tag2" executeResult="false" />
鏇村 action 淇℃伅
actionerror
榪欎釜鏍囩璐熻矗杈撳嚭閿欒淇℃伅鍒板鎴風銆?br />
紺鴻寖浠g爜錛?br />
Action浠g爜濡備笅錛?br />
public String execute()
{
addActionError("絎竴鏉¢敊璇秷鎭紒");
addActionError("絎簩鏉¢敊璇秷鎭紒");
return SUCCESS;
}....
JSP涓細<s:actionerror/>
鏇村 actionerror 淇℃伅
actionmessage
榪欎釜鏍囩璐熻矗杈撳嚭鎻愮ず淇℃伅鍒板鎴風錛屼緥瀛愬涓嬶細
Action浠g爜濡備笅錛?br />
public String execute()
{
addActionMessage("絎竴鏉℃櫘閫氭秷鎭紒");
addActionMessage("絎簩鏉℃櫘閫氭秷鎭紒");
return SUCCESS;
}
JSP錛?lt;s:actionmessage />
鏇村 actionmessage 淇℃伅
append
鐢ㄦ潵鍋歩terator鏍囩鐨勮緟鍔╋紝灝嗕笉鍚宨terator涓殑鍐呭鍚堝湪涓涓猧terator涓?br />
渚嬪瓙錛?br />
<s:append id="myAppendIterator">
<s:param value="%{myList1}" />
<s:param value="%{myList2}" />
<s:param value="%{myList3}" />
</s:append>
<s:iterator value="%{#myAppendIterator}">
<s:property />
</s:iterator>
鏇村 append 淇℃伅
bean
bean鏍囩 鐢ㄤ簬鍒涘緩涓涓狫avaBean鐨勫疄渚嬨?br />
紺鴻寖鏍蜂緥錛?br />
<s:bean name="lee.Person" id=“p”>
<!--浣跨敤Param鏍囩涓簂ee銆侾erson綾葷殑瀹炰緥浼犲叆鍙傛暟-->
<s:param name="name" value="'yeeku'"/>
<s:param name="age" value="29"/>
</s:bean>
鏇村 bean 淇℃伅
checkbox
checkbox鏍囩杈撳嚭涓涓狧TML澶嶉夋錛岀瓑浠蜂簬HTML浠g爜錛?lt;input type="checkbox" .../>銆?br />
紺鴻寖浠g爜錛?br />
<s:checkbox label="鎬у埆" name="user.sex" value="true" fieldValue="dddd"/>
鏇村 checkbox 淇℃伅
checkboxlist
鏍囩杈撳嚭涓涓閫夋銆?br />
紺鴻寖浠g爜:
<s:form>
<s:checkboxlist name="interest" list="{'瓚崇悆','綃悆','鎺掔悆','娓告吵'}" label="鍏磋叮鐖卞ソ"/>
</s:form>
鏇村 checkboxlist 淇℃伅
combobox
combobox鏍囩鐢熸垚涓涓崟琛屾枃鏈鍜屼笅鎷夊垪琛ㄦ鐨勭粨鍚堛?br />
紺鴻寖浠g爜錛?br />
<s:combobox label="璇烽夋嫨鎮ㄥ枩嬈㈢殑鍥句功" theme="css_xhtml" labelposition="top"
list="{'Spring2.0' , 'J2EE' , 'Ajax'}"
size="20" maxlength="20" name="book"/>
鏇村 combobox 淇℃伅
conponent
conponent鏍囩鐢ㄤ簬浣跨敤鑷畾涔夋爣絳俱傚洜涓轟嬌鐢ㄨ嚜瀹氫箟緇勪歡榪樻槸鍩轟簬涓婚錛屾ā鏉跨鐞嗙殑錛屽洜姝ゅ湪浣跨敤component鏍囩錛屽父甯擱渶瑕佹寚瀹氬涓?涓睘鎬э細
theme錛氳嚜瀹氫箟緇勪歡鎵浣跨敤鐨勪富棰橈紝榛樿浣跨敤xhtml涓婚銆?br />
templateDir錛氭寚瀹氳嚜瀹氫箟緇勪歡鐨勪富棰樼洰褰曪紝榛樿浣跨敤緋葷粺鐨勪富棰樼洰褰曪紝鍗硉emplate鐩綍銆?br />
template錛氭寚瀹氳嚜瀹氫箟緇勪歡鎵浣跨敤鐨勬ā鏉褲?br />
紺鴻寖浠g爜錛?br />
<s:component template="mytemplate.jsp">
<s:param name="list" value="{'Spring2.0' , 'J2EE' , 'Ajax'}" />
</s:component>
鏇村 conponent 淇℃伅
date
date鏍囩 鐢ㄤ簬鏍煎紡鍖栬緭鍏ヤ竴涓棩鏈燂紝榪樺彲浠ヨ綆楁寚瀹氭棩鏈熷拰褰撳墠鏃跺埢涔嬮棿鐨勬椂宸?br />
紺鴻寖浠g爜錛?br />
<s:date name="#attr.now" format="dd/MM/yyyy" nice=“true”/>
鏇村 date 淇℃伅
datetimepicker
datetimepicker鏍囩灝辨槸鐢熸垚涓涓湁鏃ユ湡鎺т歡鐨勬枃鏈緭鍏ユ銆傚畠鏈変竴涓墠鎻愬氨鏄鍦?lt;head></head>鍐呭姞涓涓?<s:head theme="ajax" />"錛岀劧鍚庡彲浠ュ湪form鍐呭姞涓婅鏍囩銆?
紺鴻寖浠g爜錛?br />
<s:datetimepicker name="user.birthday" label="鍑虹敓鏃ユ湡" value="%{'2008-9-20'}"/>
鏇村 datetimepicker 淇℃伅
debug
debug鏍囩涓昏鐢ㄤ簬杈呭姪嫻嬭瘯錛屽畠鍦ㄩ〉闈笂鐢熸垚涓涓秴閾炬帴錛岄氳繃璇ラ摼鎺ュ彲浠ユ煡鐪媀alueStack鍜孲tack Context 涓殑鎵鏈夊間俊鎭?br />
浣跨敤debug鏍囩鍙湁涓涓猧d灞炴э紝榪欎釜灞炴т粎浠呮槸璇ュ厓绱犱竴涓紩鐢╥d銆?br />
鍦ㄩ〉闈笂澧炲姞<s:debug/>鏍囩錛岄氳繃debug鏍囩錛屽彲浠ョ湅鐨勭郴緇熶腑ValueStack紱誨緱鍏ㄩ儴淇℃伅錛屽茍鍙互鐪嬪埌Stack Context涓殑灞炴с?br />
<s:debug></s:debug>
//鐩存帴鍦╦sp欏甸潰涓婇潰娣誨姞榪欐牱鐨勬爣絳撅紝灝卞彲浠ョ敓浜т竴涓煡鐪媎ebug淇℃伅鐨勯摼鎺?br />
鏇村 debug 淇℃伅
紺鴻寖浠g爜錛?br />
div
div鏄痵truts2 ajax涓渶鍩虹鐨勬爣絳撅紝鍏朵粬鐨勬爣絳懼潎鍜宒iv鏈夊叧緋匯俤iv鐨勬渶澶х殑鐢ㄩ斿氨鏄彲浠ュ紓姝ョ殑鏇存柊div涓殑鍐呭銆傝繖閲屽啓涓浜沝iv鍩烘湰鐨勫簲鐢紝鍏朵粬鐨勭瓑鍐欏埆鐨勬爣絳劇殑鏃跺欏啀鍐欍?br />
紺鴻寖浠g爜錛?br />
<s:div href="%{url}">Initial Content</sx:div>
<!--鏈綆鍗曠殑渚嬪瓙錛屼粠鎸囧畾鐨剈rl鑾峰彇淇℃伅鏇存柊鑷繁鐨勫唴瀹?->
鏇村 div 淇℃伅
doubleselect
doubleselect鏍囩杈撳嚭鍏寵仈鐨勪袱涓狧TML鍒楄〃妗嗭紝浜х敓鑱斿姩鏁堟灉銆?br />
<s:doubleselect
label="璇烽夋嫨鎵鍦ㄧ渷甯? name="province" list="provinces" listKey="id"
listValue="name" doubleList="cities"
doubleListKey="id" doubleListValue="name"
doubleName="city" headerKey="-1"
headerValue="--- 璇烽夋嫨 ---"
emptyOption="true" />
鏇村 doubleselect 淇℃伅
else
else鏍囩鐢ㄦ潵鎺у埗鍩烘湰鐨勬潯浠跺鐞嗘祦紼嬶紝閫氬父鍜宨f銆乪lseif鏍囩榪炵敤銆?br />
渚嬪瓙
<s:if test="%{false}">
<div>Will Not Be Executed</div>
</s:if>
<s:elseif test="%{true}">
<div>Will Be Executed</div>
</s:elseif>
<s:else>
<div>Will Not Be Executed</div>
</s:else>
鏇村 else 淇℃伅
elseif
elseif鏍囩鐢ㄦ潵鎺у埗鍩烘湰鐨勬潯浠跺鐞嗘祦紼嬶紝閫氬父鍜宨f鏍囩榪炵敤銆?br />
渚嬪瓙
<s:if test="%{false}">
...</s:if>
<s:elseif test="%{true}">
<div>Will Be Executed</div>
</s:elseif>
<s:else>
...</s:else>
鏇村 elseif 淇℃伅
fielderror
fielderror鏍囩杈撳嚭action鐨刦ieldErrors灞炴т繚瀛樼殑瀛楁閿欒錛宖ieldErrors鏄竴涓猰ap綾誨瀷鐨勫睘鎬с?br />
紺鴻寖浠g爜錛?br />
<s:fielderror/>
鏇村 fielderror 淇℃伅
file
file鏍囩杈撳嚭涓涓狧TML鏂囦歡閫夋嫨妗嗭紝絳変環浜巋tml浠g爜錛?lt;input type="file" .../>銆?br />
紺鴻寖浠g爜錛?br />
<s:file name="uploadfile" accept="text/*" />
<s:file name="uploadfile" accept="text/html,text/plain" />
鏇村 file 淇℃伅
form
form鏍囩杈撳嚭涓涓狧TML from
渚嬪瓙錛?br />
<s:form action="exampleSubmit" method="post" enctype="multipart/form-data">
<s:submit />
<s:reset />
</s:form>
鍙互涓婁紶鏂囦歡鐨刦orm銆?
鏇村 form 淇℃伅
generator
浣跨敤generator鏍囩鍙互灝嗘寚瀹氬瓧絎︿覆鎸夋寚瀹氬垎闅旂鍒嗘垚澶氫釜瀛愪覆錛屼復鏃剁敓鎴愮殑澶氫釜瀛愪覆鍙互浣跨敤iterator鏍囩鏉ヨ凱浠h緭鍑恒傚彲浠ヨ繖鏍風悊瑙o細generator灝嗕竴涓瓧絎︿覆杞寲鎴愪竴涓泦鍚堛傚湪璇ユ爣絳劇殑鏍囩浣撳唴錛屾暣涓復鏃剁敓鎴愮殑闆嗗悎灝嗕綅浜嶸alueStack鐨勯《绔紝铔嬩竴鏃﹁鏍囩緇撴潫錛岃闆嗗悎灝嗚縐誨嚭ValueStack銆?br />
鏇村 generator 淇℃伅
head
head鏍囩涓昏鐢ㄤ簬鎴愮敓HTML涓昏欏甸潰鐨凥EAD閮ㄥ垎銆傚浗涓烘湁浜涗富棰橀渶瑕佸寘鍚壒瀹氱殑CSS鍜宩avascript浠g爜錛岃岃鏍囩鍒欑敤浜庣敓鎴愬榪欐CSS鍜宩avaScript浠g爜鐨勫紩鐢ㄣ?br />
紺鴻寖浠g爜錛?br />
<head>
<title>page 1</title>
<s:head/>
</head>
鏇村 head 淇℃伅
hidden
hidden鏍囩杈撳嚭涓涓狧TML闅愯棌琛ㄥ崟鍏冪礌錛岀瓑浠蜂簬HTML浠g爜錛?lt;input type="hidden" .../>銆?br />
鍦▁html涓婚涓嬶紝hidden鏍囩涓庡叾浠栫殑鏍囩涓嶄竴鏍鳳紝hidden鏍囩騫朵笉杈撳嚭琛ㄨ銆倄html涓婚鐩存帴浠巗imple涓婚緇ф壙浜?br />
hidden.ftl妯℃澘銆?br />
紺鴻寖浠g爜錛?br />
<s:hidden name="id" value="s"/>
鏇村 hidden 淇℃伅
i18n
璇ユ爣絳劇敤浜庡姞杞借祫婧愬寘鍒板煎爢鏍堛傚畠鍙互鍏佽text鏍囧織璁塊棶浠諱綍璧勬簮鍖呯殑淇℃伅錛岃屼笉鍙綋鍓峚ction鐩稿叧鑱旂殑璧勬簮鍖呫?br />
紺鴻寖浠g爜錛?br />
<s:i18n name="ApplicationMessages">
<s:text name="HelloWorld" />
</s:i18n>
鏇村 i18n 淇℃伅
if
If鏍囩鐢ㄦ潵鎺у埗鍩烘湰鐨勬潯浠跺鐞嗘祦紼嬶紝閫氬父鍜宔lse鏍囩鎴栬卐lseif鏍囩榪炵敤銆?br />
渚嬪瓙錛?br />
<s:if test="%{false}">
<div>Will Not Be Executed</div>
</s:if>
鏇村 if 淇℃伅
include
include鏍囩 鐢ㄤ簬灝嗕竴涓狫SP欏甸潰錛屾垨鑰呬竴涓猄ervlet鍖呭惈鍒版湰欏甸潰涓?br />
紺鴻寖浠g爜錛?br />
<h2>浣跨敤s:include鏍囩鏉ュ寘鍚洰鏍囬〉闈?lt;/h2>
<s:include value="include-file.jsp"/>
<!--浣跨敤include鏍囩鏉ュ寘鍚叾浠栭〉闈紝騫朵笖浼犲叆鍙傛暟-->
<s:include value="include-file.jsp">
<s:param name="author" value="'yeeku'" />
</s:include>
鏇村 include 淇℃伅
inputtransferselect
鑾峰彇form鐨勪竴涓緭鍏?
鏇村 inputtransferselect 淇℃伅
iterator
榪唬澶勭悊涓涓猨ava.util.Connection鎴栬卝ava.util.Iterator瀵硅薄
渚嬪瓙錛?br />
<s:iterator value="users" status="userStatus">
<s:property value="fullName" />
<s:if test="!#userStatus.last">,</s:if>
</s:iterator>
鏇村 iterator 淇℃伅
label
xhtml涓婚涓嬬殑label 鏍囩杈撳嚭涓や釜 HTML鐨刲abel鏍囩錛坰imple涓婚涓嬬殑label鏍囩鍙緭鍑轟竴涓狧TML label鏍囩錛夈傚垎鍒綅浜庝竴琛岀殑涓ゅ垪錛屽乏鍒楃殑label鏍囩鍣ㄦ彁紺轟綔鐢紝鍙沖垪鐨刲abel鏍囩鐢ㄤ簬鏄劇ず鍙鐨刟ction灞炴ф暟鎹?br />
紺鴻寖浠g爜錛?br />
<s:label label="鐢ㄦ埛鍚? name="user.username"/>
鏇村 label 淇℃伅
merge
鍚堝茍閬嶅巻闆嗗悎鍑烘潵鐨勫?涓?lt;s:append>鏍囩鐢ㄦ硶鐩鎬技銆?br />
渚嬪瓙錛?br />
<s:merge id="list">
<s:param value="#request.list1"/>
<s:param value="#request.list2"/>
<s:param value="#request.list3"/>
<s:param value="#request.list4"/>
</s:merge>
<s:iterator value="%{list}">
<s:property/><br>
</s:iterator>
鏇村 merge 淇℃伅
optgroup
optgroup鏍囩鐢ㄤ簬鐢熸垚涓涓笅鎷夊垪琛ㄦ鐨勯夐」緇勶紝鍥犳錛岃鏍囩蹇呴』鏀懼湪<s:select>鏍囩涓嬌鐢紝涓涓笅鎷夊垪琛ㄦ涓彲浠ュ寘鍚涓夐」緇勶紝鍥犳鍙互鍦ㄤ竴涓?lt;s:select>鏍囩涓嬌鐢ㄥ涓?lt;s:optgroup>鏍囩銆?br />
<s:select label="閫夋嫨鎮ㄥ枩嬈㈢殑鍥句功" name="book" list="#{'Spring2.0':'鏉庡垰','J2EE':'鏉?,'Ajax瀹濆吀':'鏉?}"
listKey="value" listValue="key">
<s:optgroup label="Rod Johnson"
list="#{'Expert One-on-One J2EE Design and Development':'Johnson'}"
listKey="value"
listValue="key"/>
<s:optgroup label="David Flanagan"
list="#{'JavaScript: The Definitive Guide':'David'}"
listKey="value"
listValue="key"/>
</s:select>
鏇村 optgroup 淇℃伅
optiontransferselect
optiontransferselect鏍囩鍒涘緩涓涓夐」杞Щ鍒楄〃緇勫緩錛屽畠鐢變袱涓?lt;select>鏍囩浠ュ強瀹冧滑涔嬮棿鐨勭敤浜庡皢閫夐」鍦ㄤ袱涓?lt;select>涔嬮棿鐩鎬簰縐誨姩鐨勬寜閽粍鎴愩傝〃鍗曟彁浜ゆ椂錛屽皢鎻愪氦涓や釜鍒楄〃妗嗕腑閫変腑鐨勯夐」銆?br />
紺鴻寖浠g爜錛?br />
<s:optiontransferselect
label="鏈鍠滅埍鐨勫浘涔?
name="javaBook"
list="{'銆奐ava Web寮鍙戣瑙c?, '銆奡truts 2娣卞叆璇﹁В銆?, '銆奐ava蹇熷叆闂ㄣ?}"
doubleName="cBook"
doubleList="{'銆奦C++娣卞叆璇﹁В銆?, '銆奀++ Primer銆?, '銆奀++紼嬪簭璁捐璇█銆?}"/>
鏇村 optiontransferselect 淇℃伅
param
param鏍囩 涓昏鐢ㄤ簬涓哄叾浠栨爣絳炬彁渚涘弬鏁?br />
鐢ㄦ硶錛?br />
<param name="color" value="blue" />
榪欓噷color鍙傛暟鐨勫兼槸錛宐lue瀵硅薄鐨勫?---濡傛灉blue瀵硅薄涓嶅瓨鍦紝鍒檆olor涓簄ull銆?br />
鏇村 param 淇℃伅
password
<s:password>鏍囩綾誨悓浜嶩TML鐨?lt;input type=”password” …>錛屽叾name鍜宭abel綾誨悓浜?lt;s:textfield>
渚嬪瓙錛?br />
<s:password name="password" label="瀵嗙爜"/>
鏇村 password 淇℃伅
property
property鏍囩鐢ㄤ簬杈撳嚭鍊兼爤涓殑瀵硅薄鐨勫睘鎬у鹼紝浣跨敤value灞炴ф潵鎸囧畾瑕佽緭鍑虹殑瀵硅薄灞炴э紝濡傛灉娌℃湁鎸囧畾value灞炴э紝閭d箞榛樿杈撳嚭鏍堥《瀵硅薄銆?
渚嬪瓙錛?br />
<s:property value="username" default="娓稿"/>
鍙栧嚭鏍堥《瀵硅薄錛堥氬父鏄痑ction錛夌殑username 灞炴у茍杈撳嚭錛屽鏋滄病鏈夋壘鍒皍sername灞炴э紝閭d箞杈撳嚭“娓稿”銆?br />
鏇村 property 淇℃伅
push
push鏍囩鐢ㄤ簬灝嗘煇涓兼斁鍒癡alueStack鐨勬爤欏訛紝鍙互璺熺畝鍗曠殑璁塊棶璇ュ箋?br />
紺鴻寖鏍蜂緥錛?br />
<s:bean name="lee.Person" id="p">
<s:param name="age" value="29"/>
</s:bean>
<s:push value="#p">
<s:property value="name"/>
<s:propery value="age"/>
</s:push>
鏇村 push 淇℃伅
radio
radio鏍囩鐨勭敤娉曚笌checkboxlist鐨勭敤娉曞嚑涔庡畬鍏ㄧ浉鍚岋紝涓鏍峰彲浠ユ寚瀹歭abel, list, listKey, listValue絳夊睘鎬с?br />
紺鴻寖浠g爜錛?br />
<s:radio name="c" label="璇烽夋嫨鎮ㄥ枩嬈㈢殑鍥句功" labelposition="top"
list="#bs.books"
listKey="author"
listValue="name"/>
鏇村 radio 淇℃伅
reset
reset鏍囩杈撳嚭涓涓噸緗寜閽?br />
紺鴻寖浠g爜錛?br />
<s:reset value="閲嶇疆"></s:reset>
<s:reset type="button" label="閲嶇疆"></s:reset>
鏇村 reset 淇℃伅
select
s:select 鏍囩杈撳嚭涓涓笅鎷夊垪琛ㄦ錛岀浉褰撲簬HTML浠g爜涓殑<select/>
紺鴻寖浠g爜錛?br />
<s:form>
<s:select label="鏈楂樺鍘? name="education" list="{'楂樹腑','澶у','紜曞+','鍗氬+'}"/>
</s:form>
鏇村 select 淇℃伅
set
set鏍囩鏄皢鏌愪釜鍊兼斁鍒版寚瀹氳寖鍥村唴錛?姣斿璇?student.teacher.parent.age 姣忔璁塊棶榪欎釜灞炴т笉浠呮ц兘浣庯紝鑰屼笖浠g爜鍙鎬у緢宸紝涓轟簡瑙e喅榪欎釜闂錛屽彲浠ュ皢榪欎釜鍊艱緗負涓涓柊鍊鹼紝騫朵笖鏀懼叆鎸囧畾鑼冨洿鍐呫?br />
浣跨敤紺鴻寖錛?br />
<s:set value="#p" name="test"/>
<s:property value="#test.name"/> <br>
<s:property value="#test.age"/> <br>
sort
瀵逛竴涓彲浠ヨ凱浠g殑瀵硅薄榪涜鎺掑簭鎿嶄綔銆?br />
<s:sort comparator="myComparator" source="myList">
<s:iterator>
<!-- do something with each sorted elements -->
<s:property value="..." />
</s:iterator>
</s:sort>
鏇村 sort 淇℃伅
submit
Submit鏍囩杈撳嚭涓涓寜閽紝submit鏍囩鍜宖orm鏍囩浣跨敤鍙互鎻愪緵寮傛琛ㄥ崟鎻愪氦鍔熻兘銆係ubmit鏍囩鍙互杈撳嚭浠ヤ笅涓夌綾誨瀷鐨勬彁浜ゆ寜閽細
Input錛?絳変環浜?HTML浠g爜<input type=”submit”>
Image錛?絳変環浜?HTML浠g爜 <input type="image">
Button錛?lt;button type="submit"></button>
紺鴻寖浠g爜錛?br />
<s:submit value="鐧婚檰"></s:submit>
鏇村 submit 淇℃伅
subset
閫掑綊iterator鐨勪竴閮ㄥ垎銆?br />
渚嬪瓙錛?br />
<s:subset source="myList">
<s:iterator>
<s:property />
</s:iterator>
</s:subset>
鏇村 subset 淇℃伅
tabbedPanel
<s:tabbedPanel>鏍囩錛岀敤鏉ュ湪HTML欏甸潰涓敓鎴愮被浼間簬Windows紼嬪簭鐨凾ab欏碉紝浠庤屽彲浠ュ湪鏈夐檺鐨勭┖闂翠腑鏀劇疆鏇村鐨勫唴瀹廣倀abbedPanel鏍囩鐢熸垚鐨凾ab欏電殑鍐呭鍙互鏄潤鎬佺殑錛屼篃鍙互鏄姩鎬佺殑銆?br />
紺鴻寖浠g爜錛?br />
<s:tabbedPanel id="tp1" closeButton="pane" theme="ajax" doLayout="true" selectedTab="second" labelposition="left">
<s:div id="first" label="絎竴涓猟iv" theme="ajax">
闈欐佺殑DIV
</s:div>
<s:div name="second" label="絎簩涓猟iv" theme="ajax" href="%{T}" updateFreq="6000" delay="3000">
3:姣忓叚縐掗挓鍒鋒柊涓嬈★紝浣嗘湁涓夌寤惰繜
</s:div>
</s:tabbedPanel>
鏇村 tabbedPanel 淇℃伅
text
鐢ㄤ簬杈撳嚭鍥介檯鍖栨秷鎭紝鍜宨18n緇撳悎浣跨敤銆?br />
紺鴻寖浠g爜錛?br />
<s:i18n name="ApplicationMessages">
<s:text name="HelloWorld" />
</s:i18n>
鏇村 text 淇℃伅
textarea
Textarea鏍囩杈撳嚭涓涓狧TML澶氳鏂囨湰杈撳叆鎺т歡錛岀瓑浠蜂簬HTML浠g爜錛?lt;textarea />
紺鴻寖浠g爜錛?br />
<s:textarea name="personal" cols="10" rows="5" label="涓漢綆鍘?></s:textarea>
鏇村 textarea 淇℃伅
textfield
Textfield鏍囩杈撳嚭涓涓狧TML鍗曡鏂囨湰杈撳叆鎺т歡錛岀瓑浠蜂簬HTML浠g爜<input type="text">
紺鴻寖浠g爜錛?br />
<s:form action="register" method="post">
<s:textfield name="username" label="鐢ㄦ埛鍚?></s:textfield>
</s:form>
鏇村 textfield 淇℃伅
token
token鏍囩鏄敤浜庨槻姝㈠嬈℃彁浜ょ殑鏍囩銆傞伩鍏嶄簡鍒鋒柊欏甸潰鏃跺嬈℃彁浜わ紝濡傛灉闇瑕佽鏍囩璧蜂綔鐢紝鍒欏簲璇ュ湪Struts2鐨勯厤緗枃浠朵腑鍚敤TokenInterceptor鎷︽埅鍣ㄦ垨TokenSessionStoreInterceptor鎷︽埅鍣ㄣ?br />
紺鴻寖浠g爜錛?br />
<s:form>
<s:token/>
</s:form>
鏇村 token 淇℃伅
tree
tree鍜宼reenode鏍囩鍙互鍦ㄩ〉闈㈢敓鎴愪竴涓爲褰㈢粨鏋勶紝鍏朵腑tree鐢熸垚涓涓爲褰㈢粨鏋勶紝treenode鐢熸垚涓涓爲鑺傜偣銆?br />
紺鴻寖浠g爜錛?br />
<s:tree label="鍥句功" id="book" theme="ajax"
showRootGrid="true" showGrid="true" treeSelectedTopic="treeSelected">
<s:treenode theme="ajax" label="David" id="David">
<s:treenode theme="ajax" label="JavaScript: The Definitive Guide" id="javascript"/>
</s:treenode>
</s:tree>
鏇村 tree 淇℃伅
treenode
tree鍜宼reenode鏍囩鍙互鍦ㄩ〉闈㈢敓鎴愪竴涓爲褰㈢粨鏋勶紝鍏朵腑tree鐢熸垚涓涓爲褰㈢粨鏋勶紝treenode鐢熸垚涓涓爲鑺傜偣銆?br />
紺鴻寖浠g爜錛?br />
<s:tree label="鍥句功" id="book" theme="ajax"
showRootGrid="true" showGrid="true" treeSelectedTopic="treeSelected">
<s:treenode theme="ajax" label="David" id="David">
<s:treenode theme="ajax" label="JavaScript: The Definitive Guide" id="javascript"/>
</s:treenode>
</s:tree>
鏇村 treenode 淇℃伅
updownselect
updownselect鏍囩鍒涘緩涓涓甫鏈変笂涓嬬Щ鍔ㄧ殑鎸夐挳鐨勫垪琛ㄦ錛屽彲浠ラ氳繃涓婁笅縐誨姩鎸夐挳鏉ヨ皟鏁村垪琛ㄦ鐨勯夐」鐨勪綅緗?br />
紺鴻寖浠g爜錛?br />
<s:updownselect name="a" label="璇烽夋嫨鎮ㄥ枩嬈㈢殑鍥句功" labelposition="top"
moveUpLabel="鍚戜笂縐誨姩"
list="{'Spring2.0瀹濆吀' , '杞婚噺綰2EE浼佷笟搴旂敤瀹炴垬' , 'JavaScript: The Definitive Guide'}"/>
鏇村 updownselect 淇℃伅
url
url鏍囩 鐢ㄤ簬鐢熸垚涓涓猆RL鍦板潃錛屽彲浠ラ氳繃param鍚憉rl鏍囩鎸囧畾鍙傛暟錛屼粠鑰屾寚瀹歎RL鍙戦佽姹傚弬鏁般?
紺鴻寖浠g爜錛?br />
鎸囧畾action灞炴э紝涓斾嬌鐢╬aram浼犲叆鍙傛暟鐨勫艦寮?br />
<s:url action="showbook">
<s:param name="author" value="'yeeku'">
</s:url>
鏇村 url 淇℃伅
]]>
]]>
Struts 2妗嗘灦鏈変袱涓牳蹇冮厤緗枃浠?struts.xml鍜宻truts.properties 鍏朵腑struts.xml鏂囦歡涓昏璐熻矗綆$悊搴旂敤涓殑Action鏄犲皠錛屼互鍙婅Action鍖呭惈鐨凴esult瀹氫箟絳夈傞櫎姝や箣澶栵紝Struts2妗嗘灦榪樺寘鍚? 涓涓猻truts.properties鏂囦歡錛岃鏂囦歡瀹氫箟浜哠truts 2妗嗘灦鐨勫ぇ閲忓睘鎬э紝寮鍙戣呭彲浠ラ氳繃鏀瑰彉榪欎簺灞炴ф潵婊¤凍搴旂敤鐨勯渶姹傘?/font>
struts.properties鏂囦歡鏄竴涓爣鍑嗙殑Properties鏂囦歡錛岃鏂囦歡鍖呭惈浜嗙郴鍒楃殑key-value瀵硅薄錛屾瘡涓猭ey灝辨槸涓涓猄truts 2灞炴э紝璇ey瀵瑰簲鐨剉alue灝辨槸涓涓猄truts2灞炴у箋?/font>
struts.properties鏂囦歡閫氬父鏀懼湪Web搴旂敤鐨刉EB-
INF/classes璺緞涓嬨傚疄闄呬笂錛屽彧瑕佸皢璇ユ枃浠舵斁鍦╓eb搴旂敤鐨凜LASSPATH璺緞涓嬶紝Struts
2妗嗘灦灝卞彲浠ュ姞杞借鏂囦歡銆傚叾瀹烇紝struts.properties鏂囦歡鐨勫唴瀹瑰潎鍙湪struts.xml涓互<constant
name="" value=""></constant>鍔犺澆銆?
涓嬮潰灝嗚鏂囦歡鐨勯厤緗弬鏁拌緇嗗垪涓懼嚭鏉ワ紝鏂逛究澶у鏌ョ湅錛?/font>
struts.configuration
璇ュ睘鎬ф寚瀹氬姞杞絊truts
2閰嶇疆鏂囦歡鐨勯厤緗枃浠剁鐞嗗櫒銆傝灞炴х殑榛樿鍊兼槸org.apache.Struts2.config.DefaultConfiguration錛岃繖鏄?
Struts2榛樿鐨勯厤緗枃浠剁鐞嗗櫒銆傚鏋滈渶瑕佸疄鐜拌嚜宸辯殑閰嶇疆綆$悊鍣紝寮鍙戣呭垯鍙互瀹炵幇涓涓疄鐜癈onfiguration鎺ュ彛鐨勭被錛岃綾誨彲浠ヨ嚜宸卞姞杞?
Struts 2閰嶇疆鏂囦歡銆?/font>
struts.locale
鎸囧畾Web搴旂敤鐨勯粯璁ocale銆?/font>
struts.i18n.encoding
鎸囧畾Web搴旂敤鐨勯粯璁ょ紪鐮侀泦銆傝灞炴у浜庡鐞嗕腑鏂囪姹傚弬鏁伴潪甯告湁鐢紝瀵逛簬鑾峰彇涓枃璇鋒眰鍙傛暟鍊鹼紝搴旇灝嗚灞炴у艱緗負GBK鎴栬匞B2312銆?/font>
鎻愮ず 褰撹緗鍙傛暟涓篏BK鏃訛紝鐩稿綋浜庤皟鐢℉ttpServletRequest鐨剆etCharacterEncoding鏂規硶銆?/font>
struts.objectFactory
鎸囧畾Struts 2榛樿鐨凮bjectFactory Bean錛岃灞炴ч粯璁ゅ兼槸spring銆?/font>
struts.objectFactory.spring.autoWrite
鎸囧畾Spring妗嗘灦鐨勮嚜鍔ㄨ閰嶆ā寮忥紝璇ュ睘鎬х殑榛樿鍊兼槸name錛屽嵆榛樿鏍規嵁Bean鐨刵ame灞炴ц嚜鍔ㄨ閰嶃?/font>
struts.objectFactory.spring.useClassCache
璇ュ睘鎬ф寚瀹氭暣鍚圫pring妗嗘灦鏃訛紝鏄惁緙撳瓨Bean瀹炰緥錛岃灞炴у彧鍏佽浣跨敤true鍜宖alse涓や釜灞炴у鹼紝瀹冪殑榛樿鍊兼槸true銆傞氬父涓嶅緩璁慨鏀硅灞炴у箋?/font>
struts.objectTypeDeterminer
璇ュ睘鎬ф寚瀹歋truts 2鐨勭被鍨嬫嫻嬫満鍒訛紝閫氬父鏀寔tiger鍜宯otiger涓や釜灞炴у箋?/font>
struts.multipart.parser錛?br /> 璇ュ睘鎬ф寚瀹氬鐞唌ultipart/form-data鐨凪IME綾誨瀷錛堟枃浠朵笂浼狅級璇鋒眰鐨勬鏋訛紝璇ュ睘鎬ф敮鎸乧os銆乸ell鍜宩akarta絳夊睘鎬у鹼紝鍗? 鍒嗗埆瀵瑰簲浣跨敤cos鐨勬枃浠朵笂浼犳鏋躲乸ell涓婁紶鍙奵ommon-fileupload鏂囦歡涓婁紶妗嗘灦銆傝灞炴х殑榛樿鍊間負jakarta銆?br /> 娉ㄦ剰 濡傛灉闇瑕佷嬌鐢╟os鎴栬卲ell鐨勬枃浠朵笂浼犳柟寮忥紝鍒欏簲璇ュ皢瀵瑰簲鐨凧AR鏂囦歡澶嶅埗鍒癢eb搴旂敤涓備緥濡傦紝浣跨敤cos涓婁紶鏂瑰紡錛屽垯闇瑕佽嚜宸變笅杞絚os妗嗘灦鐨凧AR鏂囦歡錛屽茍灝嗚鏂囦歡鏀懼湪WEB-INF/lib璺緞涓嬨?/font>
struts.multipart.saveDir
璇ュ睘鎬ф寚瀹氫笂浼犳枃浠剁殑涓存椂淇濆瓨璺緞錛岃灞炴х殑榛樿鍊兼槸javax.servlet.context.tempdir銆?/font>
struts.multipart.maxSize
璇ュ睘鎬ф寚瀹歋truts 2鏂囦歡涓婁紶涓暣涓姹傚唴瀹瑰厑璁哥殑鏈澶у瓧鑺傛暟銆?/font>
struts.custom.properties
璇ュ睘鎬ф寚瀹歋truts2搴旂敤鍔犺澆鐢ㄦ埛鑷畾涔夌殑灞炴ф枃浠訛紝璇ヨ嚜瀹氫箟灞炴ф枃浠舵寚瀹氱殑灞炴т笉浼氳鐩杝truts.properties鏂囦歡涓寚瀹氱殑灞炴с傚鏋?
闇瑕佸姞杞藉涓嚜瀹氫箟灞炴ф枃浠訛紝澶氫釜鑷畾涔夊睘鎬ф枃浠剁殑鏂囦歡鍚嶄互鑻辨枃閫楀彿錛?錛夐殧寮銆?br />
struts.mapper.class
鎸囧畾灝咹TTP璇鋒眰鏄犲皠鍒版寚瀹欰ction鐨勬槧灝勫櫒錛孲truts2鎻愪緵浜嗛粯璁ょ殑鏄犲皠鍣細
org.apache.struts2.dispatcher.mapper.DefaultActionMapper銆傞粯璁ゆ槧灝勫櫒鏍規嵁璇鋒眰鐨勫墠緙涓嶢ction鐨刵ame灞炴у畬鎴愭槧灝勩?/font>
struts.action.extension
璇ュ睘鎬ф寚瀹氶渶瑕丼truts 2澶勭悊鐨勮姹傚悗緙錛岃灞炴х殑榛樿鍊兼槸action錛屽嵆鎵鏈夊尮閰?.action鐨勮姹傞兘鐢盨truts2澶勭悊銆傚鏋滅敤鎴烽渶瑕佹寚瀹氬涓姹傚悗緙錛屽垯澶氫釜鍚庣紑涔嬮棿浠ヨ嫳鏂囬楀彿錛?錛夐殧寮銆?/font>
struts.serve.static
璇ュ睘鎬ц緗槸鍚﹂氳繃JAR鏂囦歡鎻愪緵闈欐佸唴瀹規湇鍔★紝璇ュ睘鎬у彧鏀寔true鍜宖alse灞炴у鹼紝璇ュ睘鎬х殑榛樿灞炴у兼槸true銆?/font>
struts.serve.static.browserCache
璇ュ睘鎬ц緗祻瑙堝櫒鏄惁緙撳瓨闈欐佸唴瀹廣傚綋搴旂敤澶勪簬寮鍙戦樁孌墊椂錛屾垜浠笇鏈涙瘡嬈¤姹傞兘鑾峰緱鏈嶅姟鍣ㄧ殑鏈鏂板搷搴旓紝鍒欏彲璁劇疆璇ュ睘鎬т負false銆?/font>
struts.enable.DynamicMethodInvocation
璇ュ睘鎬ц緗甋truts 2鏄惁鏀寔鍔ㄦ佹柟娉曡皟鐢紝璇ュ睘鎬х殑榛樿鍊兼槸true銆傚鏋滈渶瑕佸叧闂姩鎬佹柟娉曡皟鐢紝鍒欏彲璁劇疆璇ュ睘鎬т負false銆?/font>
struts.enable.SlashesInActionNames
璇ュ睘鎬ц緗甋truts 2鏄惁鍏佽鍦ˋction鍚嶄腑浣跨敤鏂滅嚎錛岃灞炴х殑榛樿鍊兼槸false銆傚鏋滃紑鍙戣呭笇鏈涘厑璁稿湪Action鍚嶄腑浣跨敤鏂滅嚎錛屽垯鍙緗灞炴т負true銆?/font>
struts.tag.altSyntax
璇ュ睘鎬ф寚瀹氭槸鍚﹀厑璁稿湪Struts 2鏍囩涓嬌鐢ㄨ〃杈懼紡璇硶錛屽洜涓洪氬父閮介渶瑕佸湪鏍囩涓嬌鐢ㄨ〃杈懼紡璇硶錛屾晠姝ゅ睘鎬у簲璇ヨ緗負true錛岃灞炴х殑榛樿鍊兼槸true銆?/font>
struts.devMode
璇ュ睘鎬ц緗甋truts2搴旂敤鏄惁浣跨敤寮鍙戞ā寮忋傚鏋滆緗灞炴т負true錛屽垯鍙互鍦ㄥ簲鐢ㄥ嚭閿欐椂鏄劇ず鏇村銆佹洿鍙嬪ソ鐨勫嚭閿欐彁紺恒傝灞炴у彧鎺ュ彈true鍜?
flase涓や釜鍊鹼紝璇ュ睘鎬х殑榛樿鍊兼槸false銆傞氬父錛屽簲鐢ㄥ湪寮鍙戦樁孌碉紝灝嗚灞炴ц緗負true錛屽綋榪涘叆浜у搧鍙戝竷闃舵鍚庯紝鍒欒灞炴ц緗負false銆?/font>
struts.i18n.reload
璇ュ睘鎬ц緗槸鍚︽瘡嬈TTP璇鋒眰鍒拌揪鏃訛紝緋葷粺閮介噸鏂板姞杞借祫婧愭枃浠躲傝灞炴ч粯璁ゅ兼槸false銆傚湪寮鍙戦樁孌靛皢璇ュ睘鎬ц緗負true浼氭洿鏈夊埄浜庡紑鍙戯紝浣嗗湪浜у搧鍙戝竷闃舵搴斿皢璇ュ睘鎬ц緗負false銆?/font>
鎻愮ず 寮鍙戦樁孌靛皢璇ュ睘鎬ц緗簡true錛屽皢鍙互鍦ㄦ瘡嬈¤姹傛椂閮介噸鏂板姞杞藉浗闄呭寲璧勬簮鏂囦歡錛屼粠鑰屽彲浠ヨ寮鍙戣呯湅鍒板疄鏃跺紑鍙戞晥鏋滐紱浜у搧鍙戝竷闃舵搴旇灝嗚灞炴ц緗負false錛屾槸涓轟簡鎻愪緵鍝嶅簲鎬ц兘錛屾瘡嬈¤姹傞兘闇瑕侀噸鏂板姞杞借祫婧愭枃浠朵細澶уぇ闄嶄綆搴旂敤鐨勬ц兘銆?/font>
struts.ui.theme
璇ュ睘鎬ф寚瀹氳鍥炬爣絳鵑粯璁ょ殑瑙嗗浘涓婚錛岃灞炴х殑榛樿鍊兼槸xhtml銆?/font>
struts.ui.templateDir
璇ュ睘鎬ф寚瀹氳鍥句富棰樻墍闇瑕佹ā鏉挎枃浠剁殑浣嶇疆錛岃灞炴х殑榛樿鍊兼槸template錛屽嵆榛樿鍔犺澆template璺緞涓嬬殑妯℃澘鏂囦歡銆?/font>
struts.ui.templateSuffix
璇ュ睘鎬ф寚瀹氭ā鏉挎枃浠剁殑鍚庣紑錛岃灞炴х殑榛樿灞炴у兼槸ftl銆傝灞炴ц繕鍏佽浣跨敤ftl銆乿m鎴杍sp錛屽垎鍒搴擣reeMarker銆乂elocity鍜孞SP妯℃澘銆?/font>
struts.configuration.xml.reload
璇ュ睘鎬ц緗綋struts.xml鏂囦歡鏀瑰彉鍚庯紝緋葷粺鏄惁鑷姩閲嶆柊鍔犺澆璇ユ枃浠躲傝灞炴х殑榛樿鍊兼槸false銆?/font>
struts.velocity.configfile
璇ュ睘鎬ф寚瀹歏elocity妗嗘灦鎵闇鐨剉elocity.properties鏂囦歡鐨勪綅緗傝灞炴х殑榛樿鍊間負velocity.properties銆?/font>
struts.velocity.contexts
璇ュ睘鎬ф寚瀹歏elocity妗嗘灦鐨凜ontext浣嶇疆錛屽鏋滆妗嗘灦鏈夊涓狢ontext錛屽垯澶氫釜Context涔嬮棿浠ヨ嫳鏂囬楀彿錛?錛夐殧寮銆?/font>
struts.velocity.toolboxlocation
璇ュ睘鎬ф寚瀹歏elocity妗嗘灦鐨則oolbox鐨勪綅緗?/font>
struts.url.http.port
璇ュ睘鎬ф寚瀹歐eb搴旂敤鎵鍦ㄧ殑鐩戝惉绔彛銆傝灞炴ч氬父娌℃湁澶ぇ鐨勭敤鎴鳳紝鍙槸褰揝truts 2闇瑕佺敓鎴怳RL鏃訛紙渚嬪Url鏍囩錛夛紝璇ュ睘鎬ф墠鎻愪緵Web搴旂敤鐨勯粯璁ょ鍙c?/font>
struts.url.https.port
璇ュ睘鎬х被浼間簬struts.url.http.port灞炴х殑浣滅敤錛屽尯鍒槸璇ュ睘鎬ф寚瀹氱殑鏄疻eb搴旂敤鐨勫姞瀵嗘湇鍔$鍙c?/font>
struts.url.includeParams
璇ュ睘鎬ф寚瀹歋truts 2鐢熸垚URL鏃舵槸鍚﹀寘鍚姹傚弬鏁般傝灞炴ф帴鍙梟one銆乬et鍜宎ll涓変釜灞炴у鹼紝鍒嗗埆瀵瑰簲浜庝笉鍖呭惈銆佷粎鍖呭惈GET綾誨瀷璇鋒眰鍙傛暟鍜屽寘鍚叏閮ㄨ姹傚弬鏁般?/font>
struts.custom.i18n.resources
璇ュ睘鎬ф寚瀹歋truts 2搴旂敤鎵闇瑕佺殑鍥介檯鍖栬祫婧愭枃浠訛紝濡傛灉鏈夊浠藉浗闄呭寲璧勬簮鏂囦歡錛屽垯澶氫釜璧勬簮鏂囦歡鐨勬枃浠跺悕浠ヨ嫳鏂囬楀彿錛?錛夐殧寮銆?/font>
struts.dispatcher.parametersWorkaround
瀵逛簬鏌愪簺JavaEE鏈嶅姟鍣紝涓嶆敮鎸丠ttpServletRequest璋冪敤getParameterMap()鏂規硶錛屾鏃跺彲浠ヨ緗灞炴у間負true
鏉ヨВ鍐寵闂銆傝灞炴х殑榛樿鍊兼槸false銆傚浜嶹ebLogic銆丱rion鍜孫C4J鏈嶅姟鍣紝閫氬父搴旇璁劇疆璇ュ睘鎬т負true銆?/font>
struts.freemarker.manager.classname
璇ュ睘鎬ф寚瀹歋truts 2浣跨敤鐨凢reeMarker綆$悊鍣ㄣ傝灞炴х殑榛樿鍊兼槸org.apache.struts2.views.freemarker.FreemarkerManager錛岃繖鏄疭truts2鍐呭緩鐨凢reeMarker綆$悊鍣ㄣ?/font>
struts.freemarker.wrapper.altMap
璇ュ睘鎬у彧鏀寔true鍜宖alse涓や釜灞炴у鹼紝榛樿鍊兼槸true銆傞氬父鏃犻渶淇敼璇ュ睘鎬у箋?/font>
struts.xslt.nocache
璇ュ睘鎬ф寚瀹歑SLT Result鏄惁浣跨敤鏍峰紡琛ㄧ紦瀛樸傚綋搴旂敤澶勪簬寮鍙戦樁孌墊椂錛岃灞炴ч氬父琚緗負true錛涘綋搴旂敤澶勪簬浜у搧浣跨敤闃舵鏃訛紝璇ュ睘鎬ч氬父琚緗負false銆?/font>