锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲一区无码中文字幕,亚洲av日韩av高潮潮喷无码,国产亚洲精品自在久久http://www.tkk7.com/tunaic/archive/2009/08/27/292810.html涓夌窘涓夌窘Thu, 27 Aug 2009 06:25:00 GMThttp://www.tkk7.com/tunaic/archive/2009/08/27/292810.htmlhttp://www.tkk7.com/tunaic/comments/292810.htmlhttp://www.tkk7.com/tunaic/archive/2009/08/27/292810.html#Feedback0http://www.tkk7.com/tunaic/comments/commentRss/292810.htmlhttp://www.tkk7.com/tunaic/services/trackbacks/292810.html 2銆乭ttp://www.diybl.com/course/3_program/java/javaxl/20071022/79392.html

涓夌窘 2009-08-27 14:25 鍙戣〃璇勮
]]>
SSO瑙e喅鏂規澶у叏 Single Sign-On for everyone錛堣漿錛?/title><link>http://www.tkk7.com/tunaic/archive/2008/12/26/248420.html</link><dc:creator>涓夌窘</dc:creator><author>涓夌窘</author><pubDate>Fri, 26 Dec 2008 05:05:00 GMT</pubDate><guid>http://www.tkk7.com/tunaic/archive/2008/12/26/248420.html</guid><wfw:comment>http://www.tkk7.com/tunaic/comments/248420.html</wfw:comment><comments>http://www.tkk7.com/tunaic/archive/2008/12/26/248420.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/tunaic/comments/commentRss/248420.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/tunaic/services/trackbacks/248420.html</trackback:ping><description><![CDATA[     鎽樿:  java/vc鍗曠偣鐧誨綍鐨勭畝鍗曞疄鐜? 鍦ㄩ棬鎴烽」鐩腑錛岀粡甯鎬細閬囧埌濡備綍瀹炵幇鍗曠偣鐧誨綍鐨勯棶棰橈紝涓嬮潰灝辨湰浜虹殑緇忛獙鍋氫釜鎬葷粨銆傛榪庡ぇ瀹惰繘琛岃ˉ鍏呰璁恒?鍗曠偣鐧誨綍鐨勫叿浣撳疄鐜版湁寰堝縐嶉夋嫨錛屽寘鎷細 閲囩敤涓撻棬鐨凷SO鍟嗕笟杞歡錛?涓昏鏈夛細Netgrity鐨凷iteminder錛屽凡緇忚CA鏀惰喘銆侼ovell 鍏徃鐨刬Chain銆俁SA鍏徃鐨凜learTrust絳夈? 閲囩敤闂ㄦ埛浜у搧渚涘簲鍟嗚嚜宸?..  <a href='http://www.tkk7.com/tunaic/archive/2008/12/26/248420.html'>闃呰鍏ㄦ枃</a><img src ="http://www.tkk7.com/tunaic/aggbug/248420.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/tunaic/" target="_blank">涓夌窘</a> 2008-12-26 13:05 <a href="http://www.tkk7.com/tunaic/archive/2008/12/26/248420.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>JSP浣跨敤URLRewirte瀹炵幇url鍦板潃浼潤鎬佸寲http://www.tkk7.com/tunaic/archive/2008/09/27/231532.html涓夌窘涓夌窘Sat, 27 Sep 2008 08:20:00 GMThttp://www.tkk7.com/tunaic/archive/2008/09/27/231532.htmlhttp://www.tkk7.com/tunaic/comments/231532.htmlhttp://www.tkk7.com/tunaic/archive/2008/09/27/231532.html#Feedback0http://www.tkk7.com/tunaic/comments/commentRss/231532.htmlhttp://www.tkk7.com/tunaic/services/trackbacks/231532.htmlURLRewirte鐨勭敤澶?
1.婊¤凍鎼滅儲寮曟搸鐨勮姹?
2.闅愯棌鎶鏈疄鐜幫紝鎻愰珮緗戠珯鐨勭Щ妞嶆?
3.婊¤凍緹庢劅鐨勮姹?涓漢鎰熻榪欎釜鐢ㄥ澶壍寮?

欏圭洰閮ㄧ講
1.棣栧厛鍦╤ttp://tuckey.org/urlrewirte/涓嬭澆urlrewirtefilter
2.瑙e帇鎵涓嬭澆鐨勬枃浠?鎶妘rlrewrite-2.6.0.jar澶嶅埗鍒伴」鐩殑WebRoot/WEB-INF/lib/鐩綍涓?鐒跺悗緙栬瘧
3.鎶妘rlrewrite.xml澶嶅埗鍒伴」鐩殑WebRoot/WEB-INF/鐩綍涓?
4.鍦╳eb.xml鏂囦歡涓姞鍏ヤ互涓?

 1<!-- 鍔ㄦ佸湴鍧闈欐佸寲 -->  
 2<filter>  
 3  <filter-name>UrlRewriteFilter</filter-name>  
 4  <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>  
 5  <init-param>  
 6    <param-name>logLevel</param-name>  
 7    <param-value>WARN</param-value>  
 8  </init-param>  
 9</filter>  
10<filter-mapping>  
11  <filter-name>UrlRewriteFilter</filter-name>  
12  <url-pattern>/*</url-pattern>  
13</filter-mapping>  
14

5.闇瑕侀厤緗畊rlrewrite.xml鏂囦歡鏉ュ疄鐜皍rl闈欐佸寲,涓嬮潰灝嗚緇嗚鏄?

鍒拌繖閲岀浉鍏崇殑閰嶇疆宸茬粡瀹屾垚,涓嬮潰鐪嬪浣曟妸鍔ㄦ佸湴鍧闈欐佸寲
1.鏅歶rl闈欐佸寲
渚嬪:瑕佹妸http://localhost/prjtest/user/list.jsp杞崲鎴恏ttp://localhost/prjtest/user/list.html
榪欑鏄渶綆鍗曠殑,褰撲竴涓猻ervlet璺寵漿鍒發ist.jsp欏甸潰鍒楀嚭user鍒楄〃鏃?鍦╱rlrewrite.xml涓繖鏍烽厤緗?
1<rule>  
2  <from>^/user/list.html</from>  
3  <to type="redirect">/user/list.jsp</to>  
4</rule>  
褰撹姹?user/list.html榪欎釜欏甸潰鏃?瀹為檯涓婄浉褰撲簬璇鋒眰/user/list.jsp欏甸潰
鍦╯ervlet鐨勮煩杞榪欐牱鍐?
response.sendRedirect("./user/list.html");
2.甯﹀弬鏁扮殑url闈欐佸寲
渚嬪:瑕佹妸http://localhost/prjtest/user/view.jsp?cid=1&cname=admin杞崲鎴?
       http://localhost/prjtest/user/view/1_admin.html
鍦╱rlrewrite.xml涓繖鏍烽厤緗?
1<rule>  
2  <from>^/user/view/([0-9]+)_([a-z]+).html$</from>  
3  <to type="redirect">/user/view.jsp?cid=$1&cname=$2</to>  
4</rule>  

褰撹姹?user/view/1_admin.html榪欎釜欏甸潰鏃?瀹為檯涓婄浉褰撲簬璇鋒眰/user/list.jsp?cid=1&cname=admin欏甸潰
鍦╯ervlet鐨勮煩杞榪欐牱鍐?cid,cname涓哄彉閲?:
response.sendRedirect("./user/view/"+ cid +"_"+ cname +".html");
娉ㄦ剰:閰嶇疆鏂囦歡涓敤"&"鏉ヤ唬鏇?&"
涓涓氱敤鐨勬鍒欒〃杈懼紡:[a-zA-Z0-9]+

鐗瑰埆璇存槑
涓轟粈涔堝湴鍧鏍忎笉鍙橈紵
鍘熷洜灝卞湪浜庢祻瑙堝櫒鏄劇ず鐨勬槸鏈鍚庤緇欏畾鐨刄RL銆傚綋涓涓猆RL琚彁浜ゅ悗錛屽湪鏌愪竴涓粍浠惰繑鍥炰竴涓浉搴旂粰嫻忚鍣ㄤ箣鍓嶏紝浣犵殑搴旂敤鍙兘杞彂璇鋒眰澶氭銆傛墍鏈夎繖浜涢兘鍙戠敓鍦ㄦ湇鍔″櫒绔紝嫻忚鍣ㄥ茍涓嶇煡閬撳彂鐢熶簡浠涔堜簨銆傚綋涓涓狧ttp鐩稿簲琚斁鍥炴椂錛屽畠騫舵病鏈夊寘鍚湴鍧淇℃伅錛屾墍浠ユ祻瑙堝櫒浠呬粎鏄劇ず鐢ㄦ潵浣滀負鍒濆璇鋒眰鐨勫湴鍧銆?br />
瑕佹兂璁╁湴鍧鏍忎篃鍙樻垚闈欐佸寲鐨刄RL錛屽緢綆鍗曪紝灝?lt;to type="redirect">鏀規垚<to type="forward">鍗沖彲


涓夌窘 2008-09-27 16:20 鍙戣〃璇勮
]]>
Struts2鐨勪竴浜涙敹钘?/title><link>http://www.tkk7.com/tunaic/archive/2008/09/27/231519.html</link><dc:creator>涓夌窘</dc:creator><author>涓夌窘</author><pubDate>Sat, 27 Sep 2008 07:45:00 GMT</pubDate><guid>http://www.tkk7.com/tunaic/archive/2008/09/27/231519.html</guid><wfw:comment>http://www.tkk7.com/tunaic/comments/231519.html</wfw:comment><comments>http://www.tkk7.com/tunaic/archive/2008/09/27/231519.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/tunaic/comments/commentRss/231519.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/tunaic/services/trackbacks/231519.html</trackback:ping><description><![CDATA[<a href="/Files/tunaic/Struts2.rar">/Files/tunaic/Struts2.rar</a> <img src ="http://www.tkk7.com/tunaic/aggbug/231519.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/tunaic/" target="_blank">涓夌窘</a> 2008-09-27 15:45 <a href="http://www.tkk7.com/tunaic/archive/2008/09/27/231519.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Tapestry 鍚勭緇勪歡浣跨敤http://www.tkk7.com/tunaic/archive/2008/09/27/231513.html涓夌窘涓夌窘Sat, 27 Sep 2008 07:29:00 GMThttp://www.tkk7.com/tunaic/archive/2008/09/27/231513.htmlhttp://www.tkk7.com/tunaic/comments/231513.htmlhttp://www.tkk7.com/tunaic/archive/2008/09/27/231513.html#Feedback0http://www.tkk7.com/tunaic/comments/commentRss/231513.htmlhttp://www.tkk7.com/tunaic/services/trackbacks/231513.html 1銆丗or
source:鏄搴旂殑java綾婚噷鐨凩ist 瀵硅薄鎴栬呮槸涓暟緇?闇瑕佹娊璞?鎴栬呮彁渚泂et get鏂規硶
value:鏄驚鐜繖涓猻ource瀵硅薄浠h〃褰撳墠鐨勪竴涓?錛岄渶瑕佸湪page鏂囦歡涓緗棶涓涓睘鎬э紝鍙互涓嶅湪瀵瑰簲鐨刯ava綾婚噷鏈夎繖涓睘鎬?br /> index:鏄驚鐜殑绱㈠紩鍊?鍚寁alue涓鏍?鍦╬age鏂囦歡涓緗竴涓睘鎬у嵆鍙?<property name="index"/>
鍦ㄥ驚鐜殑鏃跺?浼氳嚜鍔ㄤ負vlaue鍜宨ndex璧嬪綋鍓嶇殑鍊?

2銆丗oreach 鍜孎or涓鏍蜂嬌鐢?/p>

3銆丠idden緇勪歡 鎬繪槸澶氫綑S鐨勫鐞?br />  <input jwcid="@Hidden" type="hidden" value="ognl:blahblah" encode="false"/>


4銆?Insert 緇勪歡
e.g.
    <input type="text" jwcid="name@Insert" value="ognl:user.name"/>
    欏甸潰琛ㄧ幇鏃?灝嗕細鍒伴〉闈㈢被涓鎵緂etUser().getName()鏂規硶鑾峰彇鍒濆煎茍杈撳嚭
    鐩稿綋浜庡湪欏甸潰涓婃樉紺烘暟鎹?

5銆?TextField 緇勪歡
e.g.
    <input type="text" jwcid="username@TextField" value="ognl:username"/>
    欏甸潰琛ㄧ幇鏃?灝嗕細鍒伴〉闈㈢被涓鎵緂etUsername()鏂規硶鑾峰彇鍒濆?
    *濡傛灉鏄慨鏀逛俊鎭〉闈?閫氬父鍒濆鍊艱鍦ㄩ〉闈㈣〃鐜頒箣鍓嶇敱setUsername()鎵嬪姩璁劇疆浠庢暟鎹簱涓鍙栧嚭鏉ョ殑鍊?
    琛ㄥ崟鎻愪氦鏃?閫氳繃setUsername()鍐欏叆鏂板?鍗崇敤鎴瘋緭鍏ュ?,鍦ㄧ被涓氳繃getUsername()鑾峰彇鏂板?
    鐩稿綋浜庡湪淇敼涓漢淇℃伅鏃?棣栧厛璇誨嚭鐢ㄦ埛鍚嶈祴浜堟枃鏈(鐢ㄦ埛鍚?鍒濆?鐢ㄦ埛淇敼鏃跺~鍏ユ柊鍊?鍚庡彴鑾峰彇涔?
    *Hidden灞炴у尯鍒嗘槸鏅氭枃鏈緭鍏ユ(榛樿false)鍜屽瘑鐮佽緭鍏ユ(hidden="ognl:true")
    readonly灞炴ц緗彧璇?readonly="true"涓哄彧璇?鍚庡彴鍙鍙?
    *disabled灞炴ц緗槸鍚﹀彲鍐?diabled="true"涓轟笉鍙啓(鍚庡彴涔熶笉鍙鍙?

6銆?TextArea 緇勪歡
e.g.
    <textarea jwcid="content@TextArea" value="ognl:content" cols="40" rows="10"></textarea>
    欏甸潰琛ㄧ幇鏃?灝嗕細鍒伴〉闈㈢被涓鎵緂etContent()鏂規硶鑾峰彇鍒濆?
    宸ヤ綔鍘熺悊鍚孴extField

7銆?RadioGroup/Radio 緇勪歡
e.g.
    <span jwcid="headImage@RadioGroup" selected="ognl:headImage">
      <input jwcid="@Radio" type="radio" value="1"/>澶村儚1
      <input jwcid="@Radio" type="radio" value="2"/>澶村儚2
      <input jwcid="@Radio" type="radio" value="3"/>澶村儚3
      <input jwcid="@Radio" type="radio" value="4"/>澶村儚4
      <input jwcid="@Radio" type="radio" value="5"/>澶村儚5
      <input jwcid="@Radio" type="radio" value="6"/>澶村儚6
    </span>
    RadioGroup涓烘瘡涓涓猂adio鎻愪緵涓涓敮涓鐨処D銆俁adioGroup璺熻釜褰撳墠琚変腑鐨勫睘鎬у鹼紝騫朵笖鍙湁涓涓猂adio鑳藉琚変腑.
    欏甸潰鎻愪氦鏃訛紝RadioGroup緇勪歡灝卞埄鐢∣GNL琛ㄨ揪寮忓悜headImage瀛楁鍐欏叆琚変腑鐨凴adio緇勪歡鐨剉alue鍙傛暟鍊?
    欏甸潰琛ㄧ幇鏃?淇敼欏甸潰),灝嗕細鍒伴〉闈㈢被涓鎵緂etHeadImage()鏂規硶鑾峰彇鍒濆?鐒跺悗瀵繪壘@Radio緇勪歡涓笌鍏剁浉鍚岀殑緇勪歡騫跺嬀閫変笂.

8銆?PropertySelection 緇勪歡
    浣跨敤PropertySelection緇勪歡蹇呴』瑕佹瀯閫犱竴涓被鏉ュ疄鐜癐PropertySelectionModel鎺ュ彛錛屽茍涓旈噸鍐欒鎺ュ彛鐨?涓柟娉?
    public int getOptionCount() //鎻愪緵涓嬫媺鑿滃崟鐨勯暱搴?
    public Object getOption(int index) //鎻愪緵select鏍囩鐨刼ption
    public String getLabel(int index) //鎻愪緵select鏍囩鐨凩abel鍊鹼紝涔熷氨鏄笅鎷夎彍鍗曟樉紺虹殑鍐呭
    public String getValue(int index) //鎻愪緵select鏍囩鐨剉alue鍊?
    public Object translateValue(String value) //selected鍚庣殑榪斿洖鍊鹼紝value鍊兼湭蹇呭氨鏄垜浠渶瑕佺殑榪斿洖鍊鹼紝鍙互鍦ㄨ繖涓柟娉曢噷闈㈠榪斿洖鐨剉alue鍋氬搴旂殑杞崲鎴栦慨鏀?
e.g.1. 鎬у埆涓嬫媺妗?
    <select jwcid="gender@ProPertySelection" name="genderSelect" value="ognl:gender" model="supportedGender">
      <option selected>鍏堢敓</option>
      <option>濂沖+</option>
    </select>


浠g爜
GenderSelectionModel.java  
public class GenderSelectionModel implements IPropertySelectionModel {  
 
    public static final String male = "鍏堢敓";  
 
    public static final String female = "濂沖+";  
 
    public static final String[] genderOptions = { male, female };  
 
    public int getOptionCount() {  
        return genderOptions.length;  
    }  
 
    public Object getOption(int index) {  
        return this.translateValue(genderOptions[index]);  
    }  
 
    public String getLabel(int index) {  
        return genderOptions[index].toString();  
    }  
 
    public String getValue(int index) {  
        return genderOptions[index];  
    }  
 
    public Object translateValue(String value) {  
        if (value.equals("鍏堢敓")) {  
            return "1";  
        } else {  
            return "0";  
        }  
    }  

 

浠g爜
ModUserInfo.java  
public IPropertySelectionModel getSupportedGender() {  
    return new GenderSelectionModel();  


    瀛樺叆鏁版嵁搴撲腑"1"浠h〃鍏堢敓,"0"浠h〃濂沖+,閫氳繃translateValue(String value)鏂規硶杞崲
    欏甸潰琛ㄧ幇鏃?閫氳繃model灞炴х粰鍑虹殑IPropertySelectionModel鑾峰彇涓嬫媺閫夐」,鍗砱etSupportedGender().
    鐒跺悗閫氳繃getGender()鏂規硶鑾峰彇鍒濆?姣斿鑾峰彇"0",鍒欏湪欏甸潰鏄劇ず鏃跺鎵緑alue鍊間負"0"鐨勯夐」鍗充負"濂沖+",騫墮夋嫨涔嬩綔涓哄垵濮嬮夋嫨欏?

e.g.2. 鏃ュ織綾誨瀷涓嬫媺妗?
    <select jwcid="logType@PropertySelection" name="typeSelect" value="ognl:logType" model="supportedType">
      <option>蹇冩儏鏃ヨ</option>
      <option>鎯呮劅澶╁湴</option>
      <option>鐢熸椿鎰熻Е</option>
    </select>


浠g爜
TypeSelectionModel.java  
public class TypeSelectionModel implements IPropertySelectionModel {  
      
    private List typeList = new ArrayList();  
 
    public TypeSelectionModel(List typeList) {  
        this.typeList = typeList;  
    }  
 
    public int getOptionCount() {  
        return typeList.size();  
    }  
 
    public Object getOption(int index) {  
        return ((LogType)typeList.get(index)).getValue();  
    }  
 
    public String getLabel(int index) {  
        return ((LogType) typeList.get(index)).getName();  
    }  
 
    public String getValue(int index) {  
        return ((LogType) typeList.get(index)).getValue();  
    }  
 
    public Object translateValue(String value) {  
        return value;  
    }  

 

浠g爜
ModLog.java  
public IPropertySelectionModel getSupportedType() {  
    TypeSelectionModel typeSelectionModel =   
                           new TypeSelectionModel(loadType(getUser().getUserId()));  
    return typeSelectionModel;  
}  
 
private List loadType(int userid) {  
    ...//浠庢暟鎹簱杞藉叆璇ョ敤鎴風殑鏃ュ織綾誨瀷鍒楄〃  


    欏甸潰琛ㄧ幇鏃?閫氳繃model灞炴х粰鍑虹殑IPropertySelectionModel鑾峰彇涓嬫媺閫夐」,鍗砱etSupportedType().
    鐒跺悗閫氳繃value灞炴х粰鍑虹殑鍒濆鍊煎嵆,getLogType()鏂規硶鑾峰彇鍒濆?姣斿鑾峰彇"2",鍒欏湪欏甸潰鏄劇ず鏃跺鎵緑alue鍊間負"2"鐨勯夐」鍗充負"鐢熸椿鎰熻Е",騫墮夋嫨涔嬩綔涓哄垵濮嬮夋嫨欏?

9銆?Form緇勪歡
e.g.
    <form jwcid="logForm@Form">
      ...
    </form>
    Form鐨勭洃鍚?listener)鏂規硶鍙互鏈変袱縐嶆柟寮?
      1. 鍦‵orm緇勪歡涓0鏄?
        <form jwcid="logForm@Form" listener="ognl:listener:onLogin">
          ...
        </form>
      2. 鍦╯ubmit綾誨瀷緇勪歡涓0鏄?
        <input type="submit" jwcid="onLogin@Submit" listener="listener:onLogin" value="鍙戣〃"/>鎴栬?
        <span jwcid="@ImageSubmit" image="..." listener="listener:onLogin"><img src="..." width="" height=""/></span>
      鍓嶄竴縐嶆柟寮忓綋Form涓彧瑕佹湁submit灝變細瑙﹀彂鐩戝惉鏂規硶,鍚庝竴縐嶆柟寮忔槸Form涓湁澶氫釜submit,鍚勮嚜瀹炵幇涓嶅悓鐨勭洃鍚柟娉?

G) Foreach 緇勪歡
e.g.
    <span jwcid="@Foreach" source="ognl:logList" value="ognl:item">
    寰幆緇勪歡,閬嶅巻source鍙傛暟,鍦ㄨ〃鐜板叾鍐呭鍓嶆洿鏂皏alue鍙傛暟,灝咶oreach緇勪歡鎵鍖呭惈鐨勫唴瀹歸噸澶嶈〃鐜?鍏朵腑鍙互閫氳繃value鍙傛暟鑾峰彇鎵闇鏄劇ず鍐呭.
    鏈緥涓?欏甸潰琛ㄧ幇鏃墮氳繃getLogList()鏂規硶鑾峰彇鏃ュ織鍒楄〃,寰幆鍙栧嚭鍏朵腑鏁版嵁鏇存柊item(鏃ュ織瀵硅薄)騫朵簣浠ユ樉紺?鍏朵腑item闇瑕佸湪欏甸潰瑙勮寖(.page)鏂囦歡涓0鏄?
    <property name="item"/>
    *class鍙傛暟鐢ㄦ潵瀵繪壘綾諱技CSS鐨勬枃浠跺Foreach榪涜淇グ.
    Foreach緇勪歡: class="ognl:beans.evenOdd.next"
    Page鏂囦歡: <bean name="evenOdd" class="org.apache.tapestry.bean.EvenOdd"/>
    CSS鏂囦歡: tr.odd{background-color: #ffffff;}tr.even{background-color: #eeeeee;}

10銆?Conditional 緇勪歡
e.g.
    <span jwcid="@Conditional" condition='ognl:item.sex.equals("1")'>鍏堢敓</span>
    <span jwcid="@Conditional" condition='ognl:item.sex.equals("0")'>濂沖+</span>
    conditional鍙傛暟涓簍rue鏃惰繍琛孋onditional緇勪歡涓殑HTML妯℃澘鍐呭.
    鍦═apestry4.0浠ュ悗灝變笉鏀寔璇ョ粍浠朵簡, 鍙互浣跨敤鍏朵粬緇勪歡鏉ュ疄鐜?
    1. Contrib:Choose鍜孋ontrib:When
    <library id="contrib" specification-path="classpath:/org/apache/tapestry/contrib/Contrib.library"/>(.application鏂囦歡涓紩鍏ontrib綾誨寘)
    <span jwcid="@contrib:Choose">
      <span jwcid="@contrib:When" condition='ognl:user.gender.equals("1")'>鍏堢敓</span>
      <span jwcid="@contrib:When" condition='ognl:user.gender.equals("0")'>濂沖+</span>
    </span>
    2. If緇勪歡
    <span jwcid="@If" condition='ognl:item.sex.equals("1")'>鍏堢敓</span>
    <span jwcid="@If" condition='ognl:item.sex.equals("0")'>濂沖+</span>
    3. Else緇勪歡
    <span jwcid="@Else">man</span>

銆?===========================ts鐨勫嚱鏁版墽琛岄『搴?=======================================銆?br /> 瀵逛箣鍓嶇殑璇ユ枃绔犺繘琛屼簡涓浜涗慨姝o紝涓昏鏄拡瀵筬inishLoad()鏂規硶銆?
鎴戣寰楀鍒濆鑰呬細鏈変竴浜涘府鍔┿?
涓嬮潰榪欏嚑涓嚱鏁版槸鎴戝湪浣跨敤鐨勶紝瀹冧滑鐨勬墽琛岄『搴忎緷嬈′粠涓婂埌涓嬨?
1.protected void finishLoad() {} ***
2.public void pageValidate(PageEvent event) {}
3.public void activateExternalPage(Object[] parameters, IRequestCycle cycle) {}
4.public void pageBeginRender(PageEvent event) {}
// 濡傛灉鏈夎〃鍗曟彁浜わ紝鍒欏皢form涓殑鍚勫瓧孌電殑鍊艱祴緇欓〉闈㈢被
5. ...... 璧嬪?
6.public void submit() // 琛ㄥ崟鎻愪氦絳夌敤listenter:璋冪敤鐨勬柟娉?
7.protected void prepareForRender(IRequestCycle cycle) {}
----------------------------------------------------
1.protected void finishLoad() {}
榪欎釜鍑芥暟鏈鍏堟墽琛岋紝浣嗘槸瀹冨疄闄呬笂娌℃湁浠涔堢敤澶勶紙鎴戞劅瑙夛級銆傚洜涓猴細
銆銆榪欎釜鍑芥暟鍙湪欏甸潰姹犱腑娌℃湁鏌愪竴涓〉闈㈢被銆侀渶瑕佺敓鎴愪竴涓柊鐨勯〉闈㈠璞℃椂鎵嶈皟鐢ㄣ傝繖閲屽氨鏈変竴涓櫡闃憋細濡傛灉浣犵殑tomcat鍚姩鏃朵嬌鐢ㄤ簡-Dorg.apache.tapestry.disable-caching=true(涓轟簡璋冭瘯鏂逛究鑰岃)錛岄偅涔堜綘姣忔鍒鋒柊欏甸潰鏃訛紝瀹冮兘浼氭墽琛岋紙鍥犱負姣忎釜request閮戒細鏂扮敓鎴愪竴涓〉闈㈢被瀵硅薄錛夛紝閫犳垚浜嗗畠鎬繪槸鎵ц鐨勫亣璞°傚湪瀹為檯鐨勯儴緗叉椂錛屼細浣跨敤caching錛屽垯榪欎釜鍑芥暟鎵ц鐨勬満浼氬緢灝戙傛墍浠ヨ娉ㄦ剰銆?
銆銆鍒濆鍖栫殑浠g爜鏀懼湪4 pageBeginRender()涓?
2.public void pageValidate(PageEvent event) {}
濡傛灉瀹炵幇浜哖ageValidateListener鎺ュ彛錛屽垯鍙互鍦ㄨ繖閲岃繘琛岄獙璇侊紝姣斿璁塊棶鏉冮檺絳夈傛墽琛屽畬1鍚庯紝瀹冨氨寮濮嬫墽琛屻?
3.public void activateExternalPage(Object[] parameters, IRequestCycle cycle) {}
濡傛灉瀹炵幇浜咺ExternalPage鎺ュ彛錛屽垯鍙互浠庤繖閲屽彇寰楃敱澶栭潰浼犺繃鏉ョ殑鍙傛暟銆傛墽琛?鍚庯紝鎵ц鍒拌繖閲屻傚湪榪欓噷鍙互鎶婇偅浜涘弬鏁板彇鍑猴紝璧嬬粰欏甸潰綾匯?
4.public void pageBeginRender(PageEvent event) {}
鎵ц瀹?鍚庯紝灝嗘墽琛屾湰鍑芥暟銆備絾鏄繖鏃朵粠瀹㈡埛绔紶榪囨潵鐨勫弬鏁拌繕娌℃湁琚祴鍊?濡傛灉鎻愪氦浜嗚〃鍗曠殑璇?銆傝繖閲屽彲浠ヨ繘琛屼竴浜涘垵濮嬪寲鎿嶄綔銆?
5.鎵ц瀹?鍚庯紝濡傛灉鏈夎〃鍗曟彁浜わ紝鍦ㄨ繖閲屽皢浼氬彇鍑洪偅浜涘鹼紝璧嬬粰瀵瑰簲鐨勫瓧孌點?娉ㄦ剰錛氬彧鏄皢琛ㄥ崟涓湁鐨勫艱祴榪囨潵)
6.public void submit()
濡傛灉鏈夎〃鍗曟彁浜ょ殑璇濓紝鍦ㄨ繖閲屽皢榪涜瀵瑰簲鐨勬搷浣溿傚洜涓烘鏃跺悇瀛楁宸茬粡鍙栧ソ鍊間簡錛屾墍浠ュ彲浠ユ嬁鏉ョ洿鎺ョ敤銆?
7.protected void prepareForRender(IRequestCycle cycle) {}
鏈鍚庢墠鎵ц榪欎釜鏂規硶銆傛垜浠彲浠ュ湪鍏朵腑榪涜涓轟簡鍦ㄩ〉闈笂鏄劇ず鏁版嵁鑰岃繘琛岀殑鎿嶄綔錛屾瘮濡傚彇寰椾粈涔堝璞′粈涔堢殑錛屽洜涓鴻繖閲岄〉闈㈢被鐨勫睘鎬ц祴鍊煎凡緇忕粨鏉燂紝鍙互鐩存帴鎷挎潵浣跨敤浜嗐?
娉ㄦ剰錛氬鏋滄墽琛屼簡6錛屽垯榪樿鎵ц4錛屽啀鎵ц7銆傚鏋滄病鏈?錛?瀹屼簡灝辯洿鎺ユ槸7銆?
浠ヤ笂鏄垜鎵鎬葷粨鐨勬墽琛岄『搴忥紝涓嶅綋涔嬪璇鋒寚鍑恒?nbsp;     

-----------------------------------------------------
鏈寮濮嬪tapestry鐨勬椂鍊欙紝瑙夊緱“鎬庝箞鏈夎繖涔堝鍦版柟闇瑕佹寔涔呭晩”銆傚師鏉ヤ互鍓嶅彧鐭ラ亾pageBeginRender榪欎釜鍑芥暟錛屼粈涔堝垵濮嬪寲鎿嶄綔閮芥斁鍦ㄥ畠閲岄潰銆傚彲鏄畠鏄湪璧嬪間箣鍓嶆墽琛岋紝鎵浠ユ嬁鍒扮殑瀛楁澶氶兘鏄┖鐨勶紝鍗撮兘浠ヤ負鏄病鏈夋寔涔呭寲鐨勭紭鏁呫傛墍浠ュ湪瀹㈡埛绔噷鏀句簡涓澶у爢鐨凘Hidden錛屾垨鑰卻ession涓寔涔咃紝闈炲父楹葷儲錛岋紝錛屽tapestry涔熶駭鐢熺殑鎬鐤戙傜幇鍦ㄦ墠鐭ラ亾閭d簺闇瑕佸彇寰楀鎴風浼犳潵鐨勫弬鏁扮殑浠g爜錛屾渶濂芥斁鍦╬repareForRender閲岋紝寰堝涓嶅繀瑕佺殑鎸佷箙閮藉彲浠ョ渷鎺変簡



涓夌窘 2008-09-27 15:29 鍙戣〃璇勮
]]>
xml鏂囦歡鎿嶄綔錛堝埄鐢╠om4j)http://www.tkk7.com/tunaic/archive/2008/09/27/231509.html涓夌窘涓夌窘Sat, 27 Sep 2008 07:10:00 GMThttp://www.tkk7.com/tunaic/archive/2008/09/27/231509.htmlhttp://www.tkk7.com/tunaic/comments/231509.htmlhttp://www.tkk7.com/tunaic/archive/2008/09/27/231509.html#Feedback0http://www.tkk7.com/tunaic/comments/commentRss/231509.htmlhttp://www.tkk7.com/tunaic/services/trackbacks/231509.html浠g爜: package dom_xml;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Attribute;
import java.util.List;
import java.util.Iterator;

import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import java.io.*;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
import org.dom4j.DocumentHelper;

public class XmlDom4J {

/**
  * 鐢熸垚xml鏂囦歡錛?br />   *
  */
public void createXMLFile(){
  //浣跨敤 DocumentHelper 綾誨垱寤轟竴涓枃妗e疄渚嬨?DocumentHelper 鏄敓鎴?XML 鏂囨。鑺傜偣鐨?dom4j API 宸ュ巶綾匯?br />   Document document=DocumentHelper.createDocument();
 
  //浣跨敤 addElement() 鏂規硶鍒涘緩鏍瑰厓绱?catalog 銆俛ddElement() 鐢ㄤ簬鍚?XML 鏂囨。涓鍔犲厓绱犮?br />   Element catalogElement = document.addElement("catalog");
  //鍦?catalog 鍏冪礌涓嬌鐢?addComment() 鏂規硶娣誨姞娉ㄩ噴“An XML catalog”銆?br />   catalogElement.addComment("An XML Catalog");
  //鍦?catalog 鍏冪礌涓嬌鐢?addProcessingInstruction() 鏂規硶澧炲姞涓涓鐞嗘寚浠ゃ?br />   catalogElement.addProcessingInstruction("target","text");
 
  //鍦?catalog 鍏冪礌涓嬌鐢?addElement() 鏂規硶澧炲姞 journal 鍏冪礌銆?br />   Element journal=catalogElement.addElement("journal");
  //浣跨敤 addAttribute() 鏂規硶鍚?journal 鍏冪礌娣誨姞 title 鍜?publisher 灞炴с?br />   journal.addAttribute("title", "XML Zone");
  journal.addAttribute("publisher", "IBM Devoloperment");
 
  //娣誨姞鑺傜偣journal鐨勫瓙鑺傜偣article,騫惰緗叾灞炴э紱
  Element articleElement=journal.addElement("article");
  articleElement.addAttribute("level", "Intermediate");
  articleElement.addAttribute("date", "December-2008");
 
  //娣誨姞鑺傜偣articleElement鐨勫瓙緇撶偣title,騫朵嬌鐢?setText() 鏂規硶璁劇疆鍏跺厓绱犵殑鏂囨湰銆?br />   Element titleElement=articleElement.addElement("title");
  titleElement.setText("鍙堟槸涓嬮洦澶?);
 
  //娣誨姞鑺傜偣articleElement鐨勫瓙緇撶偣author.娣誨姞瀛愮粨鐐圭殑瀛愮粨鐐筬irstname銆乴astname,騫惰緗叾鏂囦歡錛?br />   Element authorElement=articleElement.addElement("author");
     Element  firstNameElement=authorElement.addElement("firstname");
     firstNameElement.setText("Marcello");
     Element lastNameElement=authorElement.addElement("lastname");
     lastNameElement.setText("Vitaletti");
    
     //鍙互浣跨敤 addDocType()  鏂規硶娣誨姞鏂囨。綾誨瀷璇存槑銆?br />    
    
     XMLWriter output;
  try {
   OutputFormat format=new OutputFormat();
   format.setEncoding("gb2312");
   output = new XMLWriter(
     new FileWriter(new File("catalog.xml")),format);
   output.write(document);
   output.close();
  } catch (IOException e) {
   e.printStackTrace();
  } 
}

/**
  * 淇敼xml鏂囦歡鎸囧畾鑺傜偣鐨勫睘鎬э紱
  * @param inputXml xml鏂囦歡嫻?br />   * @oldAttributeValue 鍘熷睘鎬э紱
  * @attributeValue 瑕佷慨鏀規垚鐨勫鹼紱
  * @param XPath 瑕佷慨鏀硅妭鐐瑰睘鎬х殑琛ㄨ揪寮忥紱濡傦細"http://article/@level" 鍒欒〃紺轟慨鏀硅妭鐐筶evel(鐖惰妭鐐逛負article)鐨勫睘鎬?br />   * 鐗瑰埆璇存槑:@鍚庨潰琛ㄧず鐨勬槸灞炴?
  */
public Document modifyXMLNodeAttributeByName(File inputXml, String XPath,String oldAttributeValue,String attributeValue) {
  if(XPath.indexOf("@")<0){
   System.out.println("鍙傛暟XPath鏃犳晥,璇峰湪瑕佷慨鏀圭殑灞炴у墠鍔犲叆'@'");
   return null;
  }
  SAXReader saxReader = new SAXReader();
  Document document=null;
  try {
   document = saxReader.read(inputXml);
   List list = document.selectNodes(XPath);
   Iterator iter = list.iterator();
   while (iter.hasNext()) {
    Attribute attribute = (Attribute) iter.next();
    if (attribute.getValue().equals(oldAttributeValue))//鎶婂師灞炴т慨鏀逛負鏂扮殑灞炴э紱
     attribute.setValue(attributeValue);
   }
   
  } catch (DocumentException e) {   
   e.printStackTrace();
  }
  return document;
 
}

/**
  * 淇敼鎸囧畾鑺傜偣鐨勫睘鎬у鹼紱
  * @param inputXml xml鏂囦歡嫻?br />   * @param XPath 瑕佷慨鏀硅妭鐐瑰睘鎬х殑琛ㄨ揪寮忥紱濡傦細"http://article/@level" 鍒欒〃紺轟慨鏀硅妭鐐筶evel(鐖惰妭鐐逛負article)鐨勫睘鎬?br />   * @param attributeValue 灞炴ф柊鍊鹼紱
  */
public Document modifyXMLNodeAttributeByName(File inputXml, String XPath,String attributeValue) {
  if(XPath.indexOf("@")<0){
   System.out.println("鍙傛暟XPath鏃犳晥,璇峰湪瑕佷慨鏀圭殑灞炴у墠鍔犲叆'@'");
   return null;
  }
  SAXReader saxReader = new SAXReader(); 
  Document document=null;
  try {
   document = saxReader.read(inputXml); 
   List list = document.selectNodes(XPath);   
   Iterator iter = list.iterator();
   while (iter.hasNext()) {
    Attribute attribute = (Attribute) iter.next();   
    //鎶婂師灞炴т慨鏀逛負鏂扮殑灞炴э紱
    attribute.setValue(attributeValue);
   }
   
  } catch (DocumentException e) {   
   e.printStackTrace();
  }
  return document;
}

/**
  * 鑾峰彇鏌愪竴鑺傜偣鐨勫睘鎬у鹼紱
  * @param inputxml xml鏂囦歡錛?br />   * @param XPath
  * @return
  */
public String[] getNodeAttributeValue(File inputxml,String XPath){
  String nodeAttri="";//鍌ㄥ瓨鑺傜偣灞炴у?
  if(XPath.indexOf("@")<0){
   return null;
  }
  SAXReader saxReader=new SAXReader();
  Document document=null;
  try{
   document=saxReader.read(inputxml);
   List list=document.selectNodes(XPath);
   Iterator it=list.iterator();
   while(it.hasNext()){
    Attribute attri=(Attribute)it.next();
    nodeAttri+=attri.getValue()+",";
   }
  }catch(Exception e){
   e.printStackTrace();
  }
  if(nodeAttri.length()>0){
   nodeAttri=nodeAttri.substring(0, nodeAttri.length()-1);
  }
  return nodeAttri.split(",");
}

/**
  * 淇敼鎸囧畾鑺傜偣鐨勬枃鏈鹼紱
  * @param inputXml
  * @param XPath 瑕佷慨鏀硅妭鐐瑰睘鎬х殑琛ㄨ揪寮忥紱濡傦細"http://article/@level" 鍒欒〃紺篴rticle鑺傜偣涓嬬殑鎵鏈塴evel鑺傜偣鐨勬枃鏈紱
  * @param newText 鏂扮殑鏂囨湰鍊鹼紱
  */
public Document modifyXMLNodeTextByName(File inputXml,String XPath,String newText){
  if(XPath.indexOf("@")>=0){
   System.out.println("鍙傛暟XPath鏃犳晥!");
   return null;
  }
  SAXReader saxReader = new SAXReader();
  Document document=null;
  try {
   document=saxReader.read(inputXml);
   List list= document.selectNodes(XPath);
   Iterator iter = list.iterator();
   while(iter.hasNext()){   
    Element elementText=(Element)iter.next();   
    elementText.setText(newText);   
   }
  } catch (DocumentException e) {   
   e.printStackTrace();
  }
  return document;
}

/**
  *  鏇挎崲鎸囧畾鑺傜偣鏂囨湰鐨勫箋?br />   * @param inputXml xml鏂囦歡嫻?br />   * @param XPath 瑕佷慨鏀硅妭鐐瑰睘鎬х殑琛ㄨ揪寮忥紱濡傦細"http://article/level" 鍒欒〃紺篴rticle鑺傜偣涓嬬殑鎵鏈塴evel鑺傜偣鐨勬枃鏈紱
  * @param oldText 鍘熸枃鏈?br />   * @param newText 鏂版枃鏈紱
  */
public Document modifyXMLNodeTextByName(File inputXml,String XPath,String oldText,String newText){
  if(XPath.indexOf("@")>=0){
   System.out.println("鍙傛暟XPath鏃犳晥!");
   return null;
  }
  SAXReader saxReader = new SAXReader();
  Document document=null;
  try {
   document=saxReader.read(inputXml);
   List list= document.selectNodes(XPath);
   Iterator iter = list.iterator();
   while(iter.hasNext()){
    Element elementText=(Element)iter.next();
    if(elementText.getText().equals(oldText))
    elementText.setText(newText);
   }
  } catch (DocumentException e) {   
   e.printStackTrace();
  }
  return document;
}
/**
  * 鑾峰彇鏌愪竴鑺傜偣鐨勬枃鏈唴瀹癸紱
  * @param inputxml xml鏂囦歡錛?br />   * @param XPath
  * @return
  */
public String[] getNodeTextValue(File inputxml,String XPath){
  String nodeTextValue="";//鍌ㄥ瓨鑺傜偣灞炴у?
  if(XPath.indexOf("@")>=0){
   return null;
  }
  SAXReader saxReader=new SAXReader();
  Document document=null;
  try{
   document=saxReader.read(inputxml);
   List list=document.selectNodes(XPath);
   Iterator it=list.iterator();
   while(it.hasNext()){
    Element text=(Element)it.next();
    nodeTextValue+=text.getText()+",";
   }
  }catch(Exception e){
   e.printStackTrace();
  }
  if(nodeTextValue.length()>0){
   nodeTextValue=nodeTextValue.substring(0, nodeTextValue.length()-1);
  }
  return nodeTextValue.split(",");
}



/**
  * 淇濆瓨xml鏂囦歡;
  * @param document xml鏂囦歡嫻?
  * @param filePath 鏂囦歡瀛樺偍鐨勫叏璺緞(鍖呮嫭鏂囦歡鍚?
  * @code 鍌ㄥ瓨鐨勭紪鐮?
  */
public void saveXmlFile(Document document,String filePath,String code){
  if(document==null){
   return ;
  }
  XMLWriter output;
  try {
   OutputFormat format=new OutputFormat();
   format.setEncoding(code);
   output = new XMLWriter(new FileWriter(new File(filePath)),format);
   output.write( document );
   output.close();
  } catch (IOException e) {   
   e.printStackTrace();
  } 
}
 
  // 嫻嬭瘯錛?br /> public static void main(String[] args){
  XmlDom4J dom4jParser=new XmlDom4J(); 
  //鐢熸垚XML
  //dom4jParser.createXMLFile();
  File file=new File("D:/MyWork/operateXMLfile/catalog.xml");
  //dom4jParser.saveXmlFile(document, "F://test.xml", "GBK");
 
  /*String[] attrArray=dom4jParser.getNodeAttributeValue(file, "http://article/@level");
  if(attrArray!=null){
   for(int i=0;i<attrArray.length;i++){
    System.out.println("Attribute is :"+attrArray[i]);
   }
  }*/
 
  String[] nodeText=dom4jParser.getNodeTextValue(file, "http://article/title");
  if(nodeText!=null){
   for(int i=0;i<nodeText.length;i++){
    System.out.println("NODE TEXT IS:"+nodeText[i]);
   }
  }
 
}
}
xml鏂囦歡瀹氫箟濡備笅錛?
澶嶅埗鍐呭鍒板壀璐存澘
浠g爜:
<?xml version="1.0" encoding="gb2312"?>
<catalog><!--An XML Catalog--><?target text?>
<journal title="XML Zone" publisher="IBM Devoloperment">
<article level="灝忓鍥涘勾綰?  date="December-2008"><title>鍙堟槸涓嬮洦澶?lt;/title>
<author><firstname>Marcello</firstname><lastname>Vitaletti</lastname></author></article>
<article level="澶у鍥涘勾綰?  date="2008-04-01"><title>澶槼鍑烘潵浜?lt;/title>
<author><firstname>Marcello</firstname><lastname>Vitaletti</lastname></author></article>
</journal></catalog>


涓夌窘 2008-09-27 15:10 鍙戣〃璇勮
]]>
Display Tag浣跨敤灝忚鏀惰棌http://www.tkk7.com/tunaic/archive/2008/09/27/231504.html涓夌窘涓夌窘Sat, 27 Sep 2008 07:03:00 GMThttp://www.tkk7.com/tunaic/archive/2008/09/27/231504.htmlhttp://www.tkk7.com/tunaic/comments/231504.htmlhttp://www.tkk7.com/tunaic/archive/2008/09/27/231504.html#Feedback0http://www.tkk7.com/tunaic/comments/commentRss/231504.htmlhttp://www.tkk7.com/tunaic/services/trackbacks/231504.html     浠嬩釜鏄疍isplay Tag鐨勫畼鏂圭綉绔?a >http://displaytag.sourceforge.net/銆?br />
    棣栧厛褰撶劧鏄涓嬭澆瀹冪殑jar鍖呬簡錛?a >榪欓噷鍙互涓嬭澆鍒版渶鏂扮殑鐗堟湰銆傚皢jar鍖呮斁鍒癢EB-INF鐨刲ib鏂囦歡澶逛笅銆傚彟澶栬繕闇瑕佷袱涓緟鍔╁寘錛歛pache鐨刢ommons-lang鍜宻tandard鍖咃紝鏇村鐨勮緟鍔╁寘鍙互鍦ㄨ繖閲?a >涓嬭澆銆?br />
    鍦╳eb.xml涓嬫坊鍔犱竴涓猣ilter
    <filter>
        <filter-name>exportFilter</filter-name>
        <filter-class>org.displaytag.filter.ResponseOverrideFilter</filter-class>
    </filter>

    鍦╦sp欏甸潰鍋氫竴涓紩鐢細
<%@ taglib uri="http://displaytag.sf.net/el" prefix="display" %>

    棣栧厛鎴戜滑瀹氫箟涓涓猯ist
<%
 List test = new ArrayList( 6 );
 test.add( "Test String 1" );
 test.add( "Test String 2" );
 test.add( "Test String 3" );
 test.add( "Test String 4" );
 test.add( "Test String 5" );
 test.add( "Test String 6" );
 request.setAttribute( "test", test );
%>

    褰撴垜浠兂鍦╦sp欏甸潰涓婃樉紺鴻繖涓猯ist鏃訛紝鎴戜滑鍙渶瑕佸啓涓鍙ヨ瘽
    <display:table name="test" />
    display tag浼氳嚜鍔ㄧ敓鎴愪竴涓猼able

    濡傛灉list鏄粠鎺у埗灞傛姏鍑烘潵鐨勶紝name鍙嬌鐢‥L琛ㄨ揪寮忚〃紺?br />     <display:table name="${test}" />

    榪欐槸鏈綆鍗曠殑display tag鐨勪嬌鐢紝鎴戜滑鍙互緇欏畠鍔犱笂鏍峰紡絳夛紝涔熷彲浠ュ畾涔夋樉紺虹殑鍒楋紝涓嬮潰鐨則able鏄劇ず澶嶆潅涓浜?br /> <display:table name="test" styleClass="list" cellspacing="0" cellpadding="0">
  <display:column property="id" title="ID" class="idcol"/>
  <display:column property="name" />
  <display:column property="email" />
  <display:column property="description" title="Comments"/>
</display:table>

    濡傛灉鎯寵緇欏畠鍔犱釜閾炬帴涔熷緢綆鍗?涓嬮潰鐨勪唬鐮佺粰name鍔犱簡榪炴帴錛屽茍闄勫甫id鍙傛暟錛宔mail涔熻嚜鍔ㄨ繛鎺ュ埌mailto:XXX
<display:table name="test" styleClass="list" cellspacing="0" cellpadding="0">
  <display:column property="id" title="ID" class="idcol"/>
  <display:column property="name" url="detail.jsp" paramId="id" paramProperty="id"/>
  <display:column property="email" autolink="true"/>
  <display:column property="description" title="Comments"/>
</display:table>

涓嬮潰浠嬬粛鍑犱釜Display鏈甯哥敤鐨勫姛鑳斤紝鏇村鍔熻兘璇峰弬鑰?a >http://displaytag.homeip.net/displaytag-examples-1.1/銆?br /> 1. 鍒嗛〉
    濡傛灉鎯沖浠g爜鍒嗛〉錛屽彧闇鍦╠isplay:table鏍囩涓坊鍔犱竴欏筽agesize="姣忛〉鏄劇ず琛屾暟"錛屽
<display:table name="test" pagesize="10"/>

2. 瀵瑰垪鎺掑簭
    display tag鍙鍒楄繘琛屾帓搴忥紝灝辨槸鐐瑰嚮鍒楀悕錛屽璇ュ垪鐨勬暟鎹繘琛屾帓搴忋備綘鍙渶瀵規兂瑕佹帓搴忕殑鍒楁坊鍔?sort="true" 灝監K錛屽涓嬮潰鐨勪唬鐮佸彲瀵瑰墠涓夊垪榪涜鎺掑簭銆傚湪display:table涓坊鍔燿efaultsort="鍒楁暟"錛屽彲榛樿瀵規寚瀹氱殑鍒楁帓搴忋?br /> <display:table name="test" styleClass="list" cellspacing="0" cellpadding="0" defaultsort="1">
  <display:column property="id" title="ID" class="idcol" sort="true"/>
  <display:column property="name" url="detail.jsp" paramId="id" paramProperty="id" sort="true"/>
  <display:column property="email" autolink="true" sort="true"/>
  <display:column property="description" title="Comments"/>
</display:table>
   濡傛灉table鏈夊垎欏碉紝Display Tag榛樿鍙褰撳墠欏佃繘琛屾帓搴忥紝濡傛灉鎯沖鏁翠釜list鎺掑簭錛屽彲浠ュ湪display:table涔嬮棿娣誨姞涓孌典唬鐮侊細
<display:setProperty name="sort.amount" value="list"/>

3. 瀵煎嚭鏁版嵁
    鍦╠isplay:table涓坊鍔爀xport="true"錛岀湅鐪嬩細鍑虹幇浠涔堬紒Display Tag榛樿浼氭彁渚涗笁縐嶆暟鎹鍑烘柟寮忥細CSV銆丒xcel銆乆ML 銆?br />     鍙﹀Display Tag榪樺彲浠ュ鍑轟負PDF鏍煎紡錛屽湪http://prdownloads.sourceforge.net/itext/涓嬭澆涓涓緟鍔╁寘iText.jar錛宑opy鍒發ib鐩綍涓嬶紝鐒跺悗鍦╠isplay:table涔嬮棿娣誨姞涓孌典唬鐮侊細
<display:setProperty name="export.pdf" value="true"/>錛屽ぇ鍔熷憡鎴愩?/p>

4. Display Tag鐨勫睘鎬ц緗?br />     鍓嶉潰鎵璇寸殑display:setProperty 鏄竴縐嶆敼鍙楧isplay Tag灞炴х殑鏂規硶錛屼絾鏄湪姣忎釜jsp涓兘瑕佸啓澶夯鐑︿簡銆?br />     Display Tag涓緗簡寰堝榛樿鐨勫睘鎬э紝瀹冩湁涓涓笓闂ㄧ殑灞炴ф枃浠訛紝鏄湪瀹冪殑jar鍖呬腑鐨刣isplaytag/properties/TableTag.properties
    鎯寵鏀瑰彉瀹冪殑榛樿灞炴э紝鎴戜滑鍙互鍦╓EB-INF\classes涓嬫柊寤轟竴涓枃浠禿isplaytag.properties錛屼豢鐓ableTag.properties涓睘鎬х殑鏍煎紡璁劇疆闇瑕佷慨鏀圭殑灞炴с?br />     TableTag.properties涓殑# messages涓緗殑鏄樉紺哄湪欏甸潰涓婄殑鎻愮ず淇℃伅銆傞粯璁ゆ槸鑻辨枃鐨勶紝鎴戜滑鍙互鎶婂畠鏀逛負涓枃鐨勩備笉榪囪繖閲屽彧鑳戒嬌鐢╱nicode錛屽氨鏄涓枃瀛楃蹇呴』杞崲涓簎nicode鐮侊紝榪欎釜鍙互浣跨敤jdk鑷甫鐨刵ative2ascii.exe榪涜杞崲銆?/p>

5. 鍏跺畠鍔熻兘
    DisplayTag榪樻湁涓浜涘緢瀹炵敤鐨勫皬鍔熻兘錛岃繖閲屾彁涓や釜銆備竴涓槸瀵規暟鎹殑Format錛岃繖鏄?.1鐗堟湰娣誨姞鐨勬柊鍔熻兘錛屽彲浠ヤ嬌鐢ㄦ爣絳劇殑鏂瑰紡鏍煎紡鍖栨椂闂淬佹暟瀛椼佸瓧絎︿覆銆傛瘮濡傛棩鏈燂紝鍦ㄩ渶瑕佹牸寮忓寲鐨刢olumn鏍囩涓坊鍔爁ormat="{0,date,yyyy-MM-dd}"錛岀涓涓弬鏁頒負鏍煎紡鍖栫殑鏁版嵁搴忓彿錛岀浜屼釜鍙傛暟鏄暟鎹被鍨嬶紝鏁板瓧涓簄umber錛岀涓変釜鍙傛暟涓烘暟鎹牸寮忋?br />     鍙﹀涓涓姛鑳芥槸瀵箃able鏁版嵁鐨勫悎璁″姛鑳姐傚湪table鏍囩涓坊鍔?decorator="org.displaytag.decorator.TotalTableDecorator"錛岀劧鍚庡湪鎯寵榪涜鍚堣鐨勬暟鎹垪鐨刢olumn鏍囩涓坊鍔?total="true"錛岃鍒楀氨鍙互琚綆楁繪暟浜嗐備絾榪欎釜鍔熻兘鏈変釜緙虹偣錛屼笉鑳界敤鍦ㄦ湁鍒嗛〉鐨勬椂鍊欙紝瀹冨彧鑳藉悎璁$涓欏電殑鏁版嵁銆?br />
DisplayTag鐨勪笉瓚?br />     鍒濇浣跨敤DisplayTag鐨勪漢鍙兘浼氳寰楁儕鍠滐紝浣嗘槸鐢ㄤ箙浜嗕細鍙戠幇寰堝闂錛屾渶澶х殑闂鏄涓枃鐨勬敮鎸佷笉濂斤紝姣斿濡傛灉鏌ヨ鏉′歡涓湁涓枃錛屽氨鏃犳硶緲婚〉錛屾棤娉曞涓枃鎺掑簭錛屽皢涓枃瀵煎嚭涓烘寚瀹氭枃浠舵椂鍑虹幇涔辯爜絳夌瓑銆傝繖浜涢棶棰樻湁鏃跺欎細璁╀漢寰堥儊闂鳳紝鏈夋椂鍊欓煎緱浣犺鍘諱慨鏀瑰畠鐨勬簮浠g爜銆備笅闈㈡槸瀵逛互涓婂嚑涓棶棰樼殑瑙e喅鏂規硶錛?br />     1. 瀵逛簬涓枃鏃犳硶緲婚〉銆佹帓搴忥紝鏈綆鍗曠殑鍔炴硶鏄慨鏀筎omcat涓嬬殑server.xml鏂囦歡銆傛壘鍒癏TTP鐨凜onnector鏍囩錛屽湪閲岄潰娣誨姞涓欏筓RIEncoding="..."錛屽紩鍙烽噷闈㈢殑鍐呭鍙栧喅浜庝綘鐨勯〉闈㈢紪鐮侊紝姣斿鍙互鏄疓BK錛孶TF8絳夈傝繖鏍蜂笂闈袱涓棶棰樺氨鍙互瑙e喅浜嗐?br />     2. 瀵煎嚭涓烘枃浠訛細鍏跺疄榪欎釜鍔熻兘闄や簡涓枃鏀寔澶栬繕鏈夊緢澶氬叾瀹冮棶棰橈紝姣斿瀹冧細灝咹tml鏍囩涓璧峰鍑恒佸彧瀵煎嚭鏄劇ず鐨勫唴瀹癸紝浣嗗鏋滃table榪涜浜哾ecorator錛宒ecorator鍚庣殑鍐呭鏃犳硶瀵煎嚭銆傚鏋滄兂瑕佸皢涓枃姝g‘瀵煎嚭錛岄渶瑕佷慨鏀笵isplayTag婧愪唬鐮併?br />     涓嬭澆鐩稿悓鐗堟湰鐨勬簮浠g爜錛屽湪org.displaytag.export.ExcelView.java鏂囦歡涓壘鍒癵etMimeType()鏂規硶錛屽皢姝ゆ柟娉曚慨鏀逛負 return "application/vnd.ms-excel;charset=GB2312";錛屼慨鏀瑰悗瀵煎嚭鏁版嵁鐨勯熷害浼氭參寰堝錛屼笉榪囧皢灝卞惂銆?br />     3. 鏂扮増鐨凞isplayTag1.1娣誨姞浜嗗涓嬈″彇閮ㄥ垎鏁版嵁鐨勬敮鎸侊紝鐩稿叧鐨勬爣絳懼寘鎷琾artialList鍜宻ize錛岄渶瑕佽緗畃artialList="true"鍜宻ize鐨勫ぇ灝忋傚叿浣撴庝箞鐢ㄥ伓榪樻病鐮旂┒銆?br />
涔辯爜瑙e喅錛?/strong>

tomcat/jboss   淇敼server.xml

<Connector port="8001" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK" />


.鏁村悎tomcat鍜宎pache鍚庣殑璁劇疆
    鍒氬紑濮嬫垜娌℃湁鏁村悎鐨勬椂鍊欎紶閫掔殑涓枃鍙傛暟鍙互寰堝ソ鐨勮В鍐籌紝鍚庢潵鏁村悎apache鍚庯紝鍗村嚭鐜頒貢鐮佷簡錛岀粫榪嘺pache鍚庢槸姝e父鐨勶紝鎵浠ラ棶棰樺嚭鐜板湪apache鎴朼pache鍜宼omcat鐨勯氫俊涓婏紝緇忚繃baidu錛屽ソ涓嶅鏄撴壘鍒扮瓟妗堛備慨鏀箂erver.xml鏂囦歡涓殑濡備笅琛岋細

  榪欏嚭鐜癮pache鍜宼omcat鐨勯氫俊涓婏紝鐢變簬鎴戣繖閲岀殑鏁村悎鏄噰鐢↗K錛宼omcat浣跨敤鐨勬槸ajp13鍗忚錛屾墍浠ワ紝闇瑕佸湪浠栦滑鐨勯氫俊闃舵鏉ュ鐞嗙紪鐮侊紝鍗充唬鐮佷腑鐨刄RIEncoding="UTF-8"閮ㄥ垎銆?br />  
websphere 
“鏈嶅姟鍣?#8221;-->搴旂敤紼嬪簭鏈嶅姟鍣紝鎵懼埌鑷繁搴旂敤浣跨敤鐨勬湇鍔″櫒銆?
WS6鏈変笉鍚岋紝娉ㄦ剰銆?
鎵懼埌“鏈嶅姟鍣ㄥ熀紜緇撴瀯”錛屽睍寮鍏朵笅鐨?#8220;Java 鍜岃繘紼嬬鐞?#8221;錛岀劧鍚庤繘鍏?#8220;榪涚▼瀹氫箟”銆?
榪涘叆鍚庢壘鍒?#8220;鍏跺畠灞炴?#8221;-->“Java 铏氭嫙鏈?#8221;錛?
灝?#8220;Java 铏氭嫙鏈?#8221;閫氱敤 JVM 鍙傛暟 璁劇疆涓猴細-Dfile.encoding=GBK

weblogic

銆愬叧閿瓧銆?Tomcat瀹瑰櫒 涓枃 瀛楃緙栫爜 涔辯爜 Weblogic瀹瑰櫒 鏈嶅姟鍣?/font>
銆愭鏂囥戝洜涓虹紪鐮佹柟寮忕殑涓嶅悓鍦ㄤ嬌鐢═omcat瀹瑰櫒鏃朵細鍑虹幇鎻愪氦鍒癝ervlet鐨勪腑鏂囨槸涔辯爜鐨勬柟寮忥紝鑰屼笖Tomcat5.x瀵逛簬POST鍜孏ET鐨勬柟寮忓鐞嗕技涔庤繕鏈変笉鍚岋紝POST鏂瑰紡鏄噰鐢‵ilter鐨勬柟寮忓嵆鍙紝鎬庢牱鑳藉澶勭悊GET鏂瑰紡涓枃鎻愪氦涔辯爜鐨勯棶棰樺憿錛?/font>
 鍙互閲囩敤閰嶇疆鏈嶅姟鍣ㄥ瓧絎︾紪鐮佺殑鏂規硶錛屽叿浣撴搷浣滃涓嬶細
1銆佹墦寮Tomcat瀹夎鐩綍涓殑conf鐩綍
2銆佷慨鏀箂erver.xml涓殑connector涓涓瓙欏癸紝鍏蜂綋鍙兘綾諱技濡備笅:

<Connector port="8001" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" />

鍦ㄥ叾涓坊鍔?strong style="color: black; background-color: #a0ffff">URIEncoding="GBK" 錛屾垨鑰呮槸鍏朵粬鐨勭紪鐮佹柟寮忥紝鍙樻垚濡備笅錛?/font>

<Connector port="8001" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK" />

3銆佸仠姝omcat鏈嶅姟錛岄噸鏂板惎鍔═omcat鏈嶅姟鍗沖彲銆?/font>

銆愬彟闄?strong style="color: black; background-color: #ffff66">Weblogic瀹瑰櫒澶勭悊緙栫爜鐨勬柟寮忋?/font>

澶勭悊Weblogic瀹瑰櫒鐨勭紪鐮佹瘮杈冪畝鍗曪紝鍙渶瑕佸湪绔欑偣鐨剋eb.xml涓厤緗竴琛屽涓嬬殑浠g爜鍗沖彲銆?/font>

<context-param> <param-name>weblogic.httpd.inputCharset./*</param-name> <param-value>GBK</param-value> </context-param>

銆愬彟闄凾omcat澶勭悊POST鎻愪氦涔辯爜鐨勬柟寮忋?/font>

1銆侀鍏堝湪web.xml涓厤緗繃婊ゅ櫒

<filter> <filter-name>SetCharacterEncodingFilter</filter-name> <filter-class> cn.cublog.jedliu.SetCharacterEncodingFilter </filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> </filter>


<filter-mapping> <filter-name>SetCharacterEncodingFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping>

2銆佸湪cn.cublog.jedliu鍖呬腑SetCharacterEncodingFilter鏄敤浜庢潵瀹炵幇緙栫爜鐨勮繃婊ゅ櫒銆?/font>

public class SetCharacterEncodingFilter implements Filter {
    protected String encoding = null;
    protected FilterConfig filterConfig = null;
    protected boolean ignore = true;
    public void destroy() {
        this.encoding = null;
        this.filterConfig = null;
    }
    public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain)
    throws IOException, ServletException {
        if (ignore || (request.getCharacterEncoding() == null)) {
            String encoding = selectEncoding(request);
            if (encoding != null)
                request.setCharacterEncoding(encoding);
        }
        chain.doFilter(request, response);
    }

    public void init(FilterConfig filterConfig) throws ServletException {
     this.filterConfig = filterConfig;
        this.encoding = filterConfig.getInitParameter("encoding");
        String value = filterConfig.getInitParameter("ignore");
        if (value == null)
            this.ignore = true;
        else if (value.equalsIgnoreCase("true"))
            this.ignore = true;
        else if (value.equalsIgnoreCase("yes"))
            this.ignore = true;
        else
            this.ignore = false;
    }
    protected String selectEncoding(ServletRequest request) {
        return (this.encoding);
    }
}



涓夌窘 2008-09-27 15:03 鍙戣〃璇勮
]]>
servlet 鍜孞SP鐨勪笂浼犱笅杞?/title><link>http://www.tkk7.com/tunaic/archive/2008/09/27/231502.html</link><dc:creator>涓夌窘</dc:creator><author>涓夌窘</author><pubDate>Sat, 27 Sep 2008 06:58:00 GMT</pubDate><guid>http://www.tkk7.com/tunaic/archive/2008/09/27/231502.html</guid><wfw:comment>http://www.tkk7.com/tunaic/comments/231502.html</wfw:comment><comments>http://www.tkk7.com/tunaic/archive/2008/09/27/231502.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/tunaic/comments/commentRss/231502.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/tunaic/services/trackbacks/231502.html</trackback:ping><description><![CDATA[     鎽樿: 鍏蜂綋鍙互鐪嬩笅闈㈢殑渚嬪瓙:涓昏鏄疭ERVLET package oa.home.servlet;import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; import java.sql.*; import org.apache.commons.fileupload.D...  <a href='http://www.tkk7.com/tunaic/archive/2008/09/27/231502.html'>闃呰鍏ㄦ枃</a><img src ="http://www.tkk7.com/tunaic/aggbug/231502.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/tunaic/" target="_blank">涓夌窘</a> 2008-09-27 14:58 <a href="http://www.tkk7.com/tunaic/archive/2008/09/27/231502.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://331927.com" target="_blank">美女被cao网站免费看在线看</a>| <a href="http://6266tv.com" target="_blank">免费一级毛suv好看的国产网站</a>| <a href="http://goodwaysi.com" target="_blank">成全动漫视频在线观看免费高清版下载</a>| <a href="http://nb46.com" target="_blank">国产一级淫片免费播放</a>| <a href="http://4eeyy.com" target="_blank">国产精品亚洲专区无码牛牛 </a>| <a href="http://tyfinland.com" target="_blank">精品久久久久久久免费人妻</a>| <a href="http://726zh.com" target="_blank">99热亚洲色精品国产88</a>| <a href="http://xbooktxt.com" target="_blank">黄瓜视频高清在线看免费下载 </a>| <a href="http://guakao88.com" target="_blank">亚洲GV天堂GV无码男同</a>| <a href="http://www398ph.com" target="_blank">暖暖在线日本免费中文</a>| <a href="http://cqyouyongpx.com" target="_blank">日韩欧美亚洲中文乱码</a>| <a href="http://dgyinhezy.com" target="_blank">亚洲精品无码久久不卡</a>| <a href="http://www8x5188x.com" target="_blank">精品97国产免费人成视频</a>| <a href="http://ynkaishan.com" target="_blank">亚洲日本乱码在线观看</a>| <a href="http://clzqb2b.com" target="_blank">99xxoo视频在线永久免费观看</a>| <a href="http://nb46.com" target="_blank">久久亚洲精品成人无码网站</a>| <a href="http://zhaosifuwang.com" target="_blank">亚洲免费观看网站</a>| <a href="http://wxxwy.com" target="_blank">亚洲AV无码一区二区三区网址 </a>| <a href="http://lfhotline.com" target="_blank">亚洲中文无码av永久</a>| <a href="http://bdykdq.com" target="_blank">永久免费看mv网站入口</a>| <a href="http://zengzeyu.com" target="_blank">日日狠狠久久偷偷色综合免费 </a>| <a href="http://6711wan.com" target="_blank">国产精品视频免费</a>| <a href="http://sdzsks.com" target="_blank">亚洲国产精品99久久久久久</a>| <a href="http://www42iii.com" target="_blank">亚洲av无码乱码在线观看野外</a>| <a href="http://1ygogo.com" target="_blank">XXX2高清在线观看免费视频</a>| <a href="http://szmazida.com" target="_blank">亚洲∧v久久久无码精品</a>| <a href="http://dw168cn.com" target="_blank">国产高清免费视频</a>| <a href="http://tiantiantegou.com" target="_blank">亚洲AV永久无码精品一福利 </a>| <a href="http://czdlglass.com" target="_blank">亚洲偷偷自拍高清</a>| <a href="http://zgbeian.com" target="_blank">亚洲av午夜精品一区二区三区</a>| <a href="http://xhm33.com" target="_blank">在线观看免费黄色网址</a>| <a href="http://023439.com" target="_blank">亚洲午夜精品国产电影在线观看</a>| <a href="http://jggbk.com" target="_blank">国产成人免费a在线视频app</a>| <a href="http://wusongtv.com" target="_blank">中文字幕永久免费视频</a>| <a href="http://35xyz.com" target="_blank">久久精品国产亚洲AV久</a>| <a href="http://heifengmi.com" target="_blank">亚洲人成网站观看在线播放 </a>| <a href="http://langtuojidian.com" target="_blank">国产成人高清精品免费软件</a>| <a href="http://luyifeile.com" target="_blank">国产精品内射视频免费</a>| <a href="http://cxljdz.com" target="_blank">亚洲精品国产国语</a>| <a href="http://lyczyb.com" target="_blank">亚洲精品无码不卡在线播放HE</a>| <a href="http://625r.com" target="_blank">久久久高清免费视频</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>