锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 娉ㄦ剰鐨勬槸濡傛灉浣跨敤Carlender鏉ヤ繚瀛樻椂闂?鍥犱負涓婇潰瑕佹眰浼犲叆鐨勬槸Data瀵硅薄錛屽洜姝ら渶瑕佷嬌鐢–arlender.getTime()鏂規硶 <ww:text name="'global.format.date'"> 榪欓噷浣跨敤鐨勬槸<ww:param/>鏍囩鏉ヤ紶閫掑弬鏁幫紝铏界劧涔熷彲浠ヤ嬌鐢?<ww:text name="'format.date'" value0= "'birthday.time()'"/> 紱佺敤value0灞炴х殑璇存槑錛?br />
澶у鍙互鎵懼埌text鏍囩鐨勬簮浠g爜,鍦╟om.opensymphony.webwork.views.jsp.ui.TextTag涓細 鑰冭檻鐩墠鍦ㄩ」鐩腑浣跨敤鏈澶氱殑鏄樉紺洪檮浠跺ぇ灝?瀹氫箟浠ヤ笅鏍煎紡: 濡俛ction鏈夋柟娉?br />
public long getFilesize(); 榪斿洖鐨勫ぇ灝忔槸浠yte涓哄崟浣嶏紝鍦ㄦ樉紺烘椂閫氬父鏄互k鎴朚鏄劇ず 姣旇緝閬楁喚鐨勬槸浼間箮娌℃湁鍔炴硶鍦ㄨ祫婧愭枃浠朵腑榪涜榪欎釜/1024鐨勮繍綆楋紝璇曡繃{0/1024,number,##0.00'K'} 鏃犳硶瑙f瀽銆傚彧濂藉湪jsp閲岄潰鐢?value="filesize/1024"鏉ヨ綆楀疄闄呭箋備笉鐭ラ亾榪欓噷鏈夋病鏈夊埆鐨勬洿濂界殑瀹炵幇鏂瑰紡錛?br />
鍓嶈█錛氬ぇ姒傚湪鍘誨勾6鏈堢殑鏃跺欙紝鎴戜滑鍥㈤槦寮濮嬩嬌鐢╳ebwork鏉ユ浛浠truts錛屽垰寮濮嬪ぇ瀹墮兘娌℃湁緇忛獙錛屼負浜嗘牸寮忓寲杈撳嚭鏃墮棿鍜屾暟瀛楋紝鎯沖嚭浜嗗緢澶氱幇鍦ㄧ湅鏉ョ絎ㄧ殑鍌誨偦鐨勬柟娉曘傚悗鏉ヤ亢鎵懼埌浜嗚繖涓柟娉曪紝璇曢獙浜嗕竴涓嬩箣鍚庡彂浜嗕笅闈㈣繖涓猠mail緇欎簡team member, 浠婂ぉ涓浣嶅悓浜嬮棶璧瘋繖涓棶棰橈紝淇轟粠鏁頒互鍗冭鐨勫凡鍙戦侀偖浠朵腑鎵懼埌浜嗚繖涓笢瑗匡紝鎯蟲兂鍐沖畾鏁寸悊鍑烘潵銆傜粰澶у鍒嗕韓涓涓嬶紝欏轟究緇欐垜鑷繁鍋氫釜澶囦喚錛屽懙鍛碉紝鍚庤呭熀鏈笂鏄亢鍐檅log鐨勪竴涓噸瑕佺敤閫斻?br />
鍒嗕韓涓涓湪WebWork涓浣曟牸寮忓寲鏄劇ず鏁板瓧鍜屾棩鏈熺殑鏂規硶錛?
鍏蜂綋鐨勫仛娉曡繖閲屾湁璇︾粏鐨勮鏄庯細
http://wiki.opensymphony.com/display/WW1/How+to+format+dates+and+numbers?showComments=true
涓嬮潰鏄」鐩腑鎺ㄨ崘浣跨敤鐨勬椂闂存牸寮?
#format
global.format.date={0,date,yyyy-MM-dd}
global.format.time={0,date,HH:mm:ss}
global.format.datetime={0,date,yyyy-MM-dd HH:mm:ss}
浠嶤arlender涓幏鍙朌ate:
<ww:param value="'birthday.time()'"/>
</ww:text>
浣嗘槸鍚庨潰鐨勮繖涓柟娉曞湪webwork鐨勬柊鐗堟湰涓凡緇忚瑕佹眰涓嶈浣跨敤錛屽ぇ瀹惰繕鏄敖閲忎嬌鐢?<ww:param/>鏍囩
public void setValue0(String aName) {
LOG.warn("The value attributes of TextTag are deprecated.");
value1Attr = aName;
}
瀵逛簬鏁板瓧鐨勬牸寮忓寲錛岃繖閲屾湁涓や釜鍙傝冿細
global.format.percent = {0,number,##0.00'%'}
global.format.money = {0,number,$##0.00}
global.format.size.k={0,number,##0.00'K'}
global.format.size.m={0,number,##0.00'M'}
global.format.size.g={0,number,##0.00'G'}
鍒欐樉紺烘椂:
<ww:text name="'global.format.size.k'">
<ww:param value="filesize/1024"/>
</ww:text>
<ww:text name="'global.format.size.m'">
<ww:param value="filesize/1048576"/>
</ww:text>
<ww:text name="'global.format.size.g'">
<ww:param value="filesize/1073741824"/>
</ww:text>
鎭╋紝欏轟究鍐嶄粙緇嶄竴涓嬪綋鏃朵亢浠瑃eam鎯沖嚭鏉ョ殑絎ㄧ鐨勬柟娉曪紝涓嶈瑙佺瑧鍟婏紝浠ヤ笂闈㈢殑鏄劇ず鏂囦歡澶у皬涓轟緥錛屾兂鍒扮殑鏂規硶澶ц嚧鏈変互涓嬪嚑縐嶏細
1. 鐩存帴杈撳嚭瀛楃涓茬殑緇撴灉
getFileSizeString(), 鍦ㄩ噷闈㈢敤java浠g爜鍒ゆ柇澶у皬騫剁敓鎴愯濡?1.2k", "31.2M"鐨勭粨鏋滆繑鍥?br />
2. 鎻愪緵澶氫釜鍑芥暟
getFileSizeByte(), getFileSizeK(), getFileSizeM(), getFileSizeG()
3.浣跨敤javascript鍦╟lient绔牸寮忓寲
<script type = "text/javascript">
var resultNum = <ww:property value="fileSize" />;
resultNum = format(resultNum);//綾諱技鐨勫嚱鏁?nbsp;
document.write(resultNum);
</script>
4.浣跨敤鑷畾涔夋爣絳?/p>
--------------------------------------------------------------------------------------------------------------
struts2涓牸寮忓寲杈撳嚭鏁板瓧鍜屾棩鏈熺殑鏂規硶
璧勬簮鏂囦歡
......
#鏍煎紡鍖栨暟瀛楁垨鏃墮棿杈撳嚭
global.format.date={0,date,yyyy-MM-dd}
global.format.money={0,number,錕?#0.00 '鍏?}
......
JSP鏂囦歡
鏍煎紡鍖栨椂闂? <s:text name="global.format.date"><s:param value="publishTime"></s:param></s:text>
鏍煎紡鍖栨暟瀛? <s:text name="global.format.money"><s:param value="price"/></s:text>
鐢ㄦ鏋墮獙璇?
闂錛氭彁浜ょ┖琛ㄥ崟鏃訛紝鍑洪敊淇℃伅浼氫笉鏂殑绱姞
瑙e喅鏂規硶:
spring2.0鍙皢action閰嶇疆涓姞鍏?lt;xxx scope="prototype">灝監K浜?/span>
chain --> 閾炬帴鍒板彟涓涓獁ebwork action
dispathc --> 鏍囧噯Servlet鍒嗗彂鍣ㄧ殑鍖呭惈鎿嶄綔(榛樿鍊?
freemarker --> 鐢熸垚涓涓狥reeMarker妯℃澘
httpheader --> 鍙戦佸鐞咹TTP header鐨勫懡浠?br>jasper --> 鐢熸垚涓涓狫asperReports鎶ヨ〃
redirect --> 鍙戦丠TTP閲嶅畾鍚?br>velocity --> 鐢熸垚涓涓猇elocity妯℃澘
xalt --> 閫氳繃XSL緲昏瘧澶勭悊XML
webwork涓殑榛樿interceptor(鍩虹)
chain --> 灝嗗弬鏁頒粠涓涓猘ction澶嶅埗鍒板彟澶栦竴涓猘ction
component --> 涓篴ction搴旂敤Ioc鐨勯昏緫澶勭悊
conversionError --> 濡傛灉鍙戠敓浜嗙被鍨嬩笂鐨勯敊璇?鍒欏鍔犵浉搴旂殑瀛楁閿欒淇℃伅
execAndWait --> 鐢熸垚涓涓嫭绔嬬殑綰跨▼,浠ユ墽琛宎ction
fileUpload --> 璁劇疆涓婁紶鏂囦歡涓篴ction鏂囦歡(File瀵硅薄)
logger --> 璁板綍action鎵ц鐨勮搗濮嬫椂闂?br>model-driven --> 灝哸ction妯″瀷鍘嬪叆鍊兼爤涓?br>params --> 灝咹TTP鍙傛暟鍊煎簲鐢ㄨ嚦action瀹炰緥涓?br>prepare --> 璋冪敤action鐨刾repare()鏂規硶
servlet-config --> 鎻愪緵瀵歸氱敤HTTP瀵硅薄(璇鋒眰,鍝嶅簲)鐨勮闂?br>static-params --> 灝哸ction鏄犲皠璁懼畾鐨勫弬鏁板簲鐢ㄥ埌action瀹炰緥涓?br>timer --> 鎺у埗action鐨勫畾鏃舵墽琛?br>token --> 闃叉琛ㄥ崟閲嶅鎻愪氦鐨勫熀鏈疄鐜?br>toen-session --> 闃叉琛ㄥ崟閲嶅鎻愪氦鐨勯珮綰у疄鐜?br>validation --> 鏍¢獙action涓殑瀛楁鍊?br>workflow --> 濡傛灉鍙戠敓閿欒鍒欒嚜鍔ㄨ繑鍥濱NPUT榪欎釜result code瀵瑰簲鐨勮鍥?/p>
webwork涓殑榛樿interceptor(鑼冧緥)鏍?br>
defaultStack --> 鍩虹intercetor鏍?br>validationWorkflowStack --> 浣跨敤validation鍜?workflow 榪欎袱涓猧nterceptor 鐨勮寖渚?br>fileUploadStack --> 浣跨敤fileUpload interceptor鐨勮寖渚?br>componentStack --> 浣跨敤component(Ioc) interceptor鐨勮寖渚?br>modelDrivenStack --> 浣跨敤model-driven interceptor鐨勮寖渚?br>chainStack --> 浣跨敤chain interceptor鐨勮寖渚?br>execAndWaitStack --> 浣跨敤execAndWait interceptor鐨勮寖渚?br>completeStack --> 浣跨敤浜哻hain model-driven Ioc fileUpload validation鍜寃orkflow鐨勫畬鏁磇nerceptor鏍?br> 緇濆ぇ閮ㄥ垎鎯呭喌涓?瑕佷互閫夋嫨瀹冧綔涓轟綘鐨刬nterceptor鏍?br>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "xwork-1.0.dtd" >
<xwork>
<include file="webwork-default.xml"></include>
<package name="default" extends="webwork-default">
<default-interceptor-ref name="completeStack"/>
<action name="hello" class="dgut.ke.action.HelloWorld">
<result name="success">/hello.jsp</result>
<result name="input">/name.jsp</result>
</action>
</package>
</xwork>
鍦ㄨ繖閲屾湁涓涓叧閿殑鍦版柟闇瑕佹敞鎰?xwork.xml鍖呭惈浜嗕竴涓悕涓簑ebwork-default.xml
鐨勬枃浠?榪欐牱鍋氭槸涓轟簡淇濊瘉浣犲彲浠ヤ嬌鐢ㄦ墍鏈夋瀯寤轟簬XWork涔嬩笂鐨刉ebWork闄勫姞鐗規?webwork-default.xml
鍖呭惈浜嗚WebWork姝e父榪愯鐨勬爣鍑嗛厤緗?鍥犳鍖呭惈瀹冩槸鍗佸垎閲嶈鐨?娌℃湁榪欎釜鏂囦歡,WebWork鏃犳硶姝g‘鐨勮
閰嶇疆,褰撶劧紼嬪簭涔熸棤娉曟甯歌繍琛屼簡.鎴戜滑涓嶉渶瑕佽嚜宸卞垱寤簑ebwork-default.xml鏂囦歡,鍥犱負瀹冨凡緇忓寘鍚湪
WebWork鐨凧AR鏂囦歡涓簡.
webwork.properties閰嶇疆鏂囦歡
涓庢妸xwork.xml鏀懼湪WEB-INF/classes涓嬩竴鏍?鎴戜滑榪橀渶瑕佸湪榪欎釜鐩綍涓鍔犱竴涓悕涓簑ebwork.properties
鏂囦歡.鍏跺唴瀹逛負
webwork.tag.altSyntax = true
#瑙e喅涓枃涔辯爜
webwork.i18n.encoding = GBK