锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久久亚洲av无码专区,亚洲国产日韩视频观看,久久精品亚洲综合专区http://www.tkk7.com/pepsixp/I am strong, I am in Suzhou.zh-cnSun, 11 May 2025 06:15:30 GMTSun, 11 May 2025 06:15:30 GMT60鎼浜?/title><link>http://www.tkk7.com/pepsixp/archive/2007/07/06/128463.html</link><dc:creator>闃垮鏂.</dc:creator><author>闃垮鏂.</author><pubDate>Thu, 05 Jul 2007 16:10:00 GMT</pubDate><guid>http://www.tkk7.com/pepsixp/archive/2007/07/06/128463.html</guid><description><![CDATA[璧頒簡錛屾柊鐨勫潙錛?a >http://amsz.yo2.cn/</a>  <img src ="http://www.tkk7.com/pepsixp/aggbug/128463.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/pepsixp/" target="_blank">闃垮鏂.</a> 2007-07-06 00:10 <a href="http://www.tkk7.com/pepsixp/archive/2007/07/06/128463.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>瀹夎 DokuWikihttp://www.tkk7.com/pepsixp/archive/2007/06/14/DokuWiki.html闃垮鏂.闃垮鏂.Thu, 14 Jun 2007 14:13:00 GMThttp://www.tkk7.com/pepsixp/archive/2007/06/14/DokuWiki.htmlhttp://www.tkk7.com/pepsixp/comments/124370.htmlhttp://www.tkk7.com/pepsixp/archive/2007/06/14/DokuWiki.html#Feedback0http://www.tkk7.com/pepsixp/comments/commentRss/124370.htmlhttp://www.tkk7.com/pepsixp/services/trackbacks/124370.html鐜錛歀inux AS4銆丄pache2.2銆丳HP 4.4.7銆丏okuWiki-2007-05-24

Apache鐨勫畨瑁呰鍓嶆枃

PHP

  1. 涓嬭澆php-4.4.7.tar.gz錛岃В鍘?
  2. ./configure --with-apxs2=$APACHE_HOME/bin/apxs
  3. make & make install
  4. cp php.ini-dist &PHP_HOME/etc/php.ini

DokuWiki

  1. 涓嬭澆dokuwiki-2006-11-06.tgz錛岃В鍘?
  2. 涓篴pache娣誨姞rewrite妯″潡錛?br>cd $APACHE_HOME/modules/mappers
    $APACHE_HOME/bin/apxs -i -a -c mod_rewrite.c
  3. 媯鏌ttpd.conf涓槸鍚﹀凡緇忓姞鍏ワ細LoadModule rewrite_module libexec/mod_rewrite.so
  4. 閰嶇疆apache鐨刪ttpd.conf
    Alias /wiki "/local/xsun/servers/dokuwiki"
    <Directory "$DokuWiki_HOME">
    Allow from all 

    AddType application/x-httpd-php .php .phtml
    AddType application/x-httpd-php-source .phps
    RewriteEngine on

    RewriteBase /wiki

    RewriteRule ^_media/(.*)              lib/exe/fetch.php?media=$1  [QSA,L]
    RewriteRule ^_detail/(.*)             lib/exe/detail.php?media=$1  [QSA,L]
    RewriteRule ^_export/([^/]+)/(.*)     doku.php?do=export_$1
    &id=$2  [QSA,L]
    RewriteRule ^$                        doku.php  [L]
    RewriteCond %{REQUEST_FILENAME}       !-f
    RewriteCond %{REQUEST_FILENAME}       !-d
    RewriteRule (.*)                      doku.php?id=$1  [QSA,L]
    RewriteRule ^index.php$               doku.php
    php_value auto_prepend_file "$DokuWiki_HOME/prepend.php"
    </Directory>
  5. $APACHE_HOME/bin/apachectl start

DokuWiki 瀹夊叏閰嶇疆

鍦?DokuWiki_HOME鐩綍涓嬪垱寤簆repend.php錛屽拰apache鐨勯厤緗枃浠跺搴旓紝鍦ㄦ墽琛屼細棰勫厛鍔犺澆
<?php
define('DOKU_CONF','$DokuWiki_HOME/conf/');
define('DOKU_INC','$DokuWiki_HOME');
?>

鐒跺悗灝?DokuWiki_HOME鐩綍涓嬬殑鏂囦歡澶歸兘縐誨嚭錛屼緥濡?Wiki_HOME
ln -s $DokuWiki_HOME/lib $Wiki_HOME/lib
鍦?DokuWiki_HOME/conf/local.php鏂囦歡涓坊鍔狅細$conf['savedir'] = '$Wiki_HOME/data';
鍦ㄦ祻瑙堝櫒涓墦寮install.php錛岄厤緗畬鍚庡皢榪欎釜鏂囦歡鍒犻櫎

涓嬮潰鏄垜閰嶇疆榪囩殑鏂囦歡錛?br>local.php:
$conf['title'] = 'My Wiki';
$conf['useacl'] = 1;
$conf['superuser'] = '@admin';
$conf['userewrite'] = '1';
$conf['useslash'] = 1;
$conf['sepchar'] = '-';
$conf['openregister'] = '0';

 $conf['savedir'] = '/local/xsun/wiki/data';
@include(DOKU_CONF.'local.protected.php');

users.auth.php:
test:61e7250f72098cf2602541ffbaf66e59:LALALA:pepsixp@gmail.com:admin,user

acl.auth.php:
*               @ALL          1
*               @user         8



闃垮鏂. 2007-06-14 22:13 鍙戣〃璇勮
]]>
PEPSIXPhttp://www.tkk7.com/pepsixp/archive/2007/06/13/123739.html闃垮鏂.闃垮鏂.Tue, 12 Jun 2007 16:08:00 GMThttp://www.tkk7.com/pepsixp/archive/2007/06/13/123739.htmlhttp://www.tkk7.com/pepsixp/comments/123739.htmlhttp://www.tkk7.com/pepsixp/archive/2007/06/13/123739.html#Feedback0http://www.tkk7.com/pepsixp/comments/commentRss/123739.htmlhttp://www.tkk7.com/pepsixp/services/trackbacks/123739.htmlPEPSIXP = PEPSI + XP = 鐧句簨鍙箰 + 鏋侀檺緙栫▼ = 涓涓埍鍠濈櫨浜嬪彲涔愶紝鍚戝線鍔犲叆鏁忔嵎鍥㈤槦鐨勭▼搴忓憳
鍐頒簯鐨?a target=_blank>鏁忔嵎鍥㈤槦寤鴻鐪嬪緱鎴戝績鐩寸棐鐥掞紝璨屼技鐪嬪埌浜嗕竴涓▼搴忓憳鐨勫ぉ鍫傘傛湁鐨勫洟闃熸垚澶╁繖蹇欑紕岋紝榪涘害緙撴參Bug澶у爢榪樻氮璐逛簡鑷繁澶уソ鐨勫勾鍗庯紱鏈夌殑鍥㈤槦鍢誨樆鍝堝搱錛屽嵈鏈夌潃鏋侀珮鐨勫伐浣滄晥鐜囷紝榪欏氨鏄幆澧冨甫鏉ョ殑宸紓銆?br>
濂蟲曞珌閿欓儙錛岀敺鎬曞叆閿欒錛岃佽瘽娌¢敊鐨勶紒鍐欏湪鍏徃鍙堜竴鍚屽織紱昏亴褰撳ぉ鏅氫笂銆?/p>

闃垮鏂. 2007-06-13 00:08 鍙戣〃璇勮
]]>
IDEA 6涓嶫unit 4 鐗堟湰涓嶅吋瀹?/title><link>http://www.tkk7.com/pepsixp/archive/2007/04/04/108428.html</link><dc:creator>闃垮鏂.</dc:creator><author>闃垮鏂.</author><pubDate>Wed, 04 Apr 2007 06:43:00 GMT</pubDate><guid>http://www.tkk7.com/pepsixp/archive/2007/04/04/108428.html</guid><wfw:comment>http://www.tkk7.com/pepsixp/comments/108428.html</wfw:comment><comments>http://www.tkk7.com/pepsixp/archive/2007/04/04/108428.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/pepsixp/comments/commentRss/108428.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/pepsixp/services/trackbacks/108428.html</trackback:ping><description><![CDATA[IDEA 6.0.4 涓嶈兘璺慗unit4.2 - <a target=_blank>ISSUES<br></a>IDEA 6.0.5 涓嶈兘璺慗unit4.3 - <a target=_blank>ISSUES</a><br><br>Intellij IDEA鎬繪槸鎱竴鎷嶏紝鎵浠ユ渶楂樼増鏈殑閰嶇疆灝辨槸錛欼DEA 6.0.5 + Junit4.2 <img src ="http://www.tkk7.com/pepsixp/aggbug/108428.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/pepsixp/" target="_blank">闃垮鏂.</a> 2007-04-04 14:43 <a href="http://www.tkk7.com/pepsixp/archive/2007/04/04/108428.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Hibernate OneToOne 澶嶅悎涓婚敭http://www.tkk7.com/pepsixp/archive/2007/02/01/97387.html闃垮鏂.闃垮鏂.Thu, 01 Feb 2007 15:55:00 GMThttp://www.tkk7.com/pepsixp/archive/2007/02/01/97387.htmlhttp://www.tkk7.com/pepsixp/comments/97387.htmlhttp://www.tkk7.com/pepsixp/archive/2007/02/01/97387.html#Feedback0http://www.tkk7.com/pepsixp/comments/commentRss/97387.htmlhttp://www.tkk7.com/pepsixp/services/trackbacks/97387.html涓昏〃鏈変袱涓瓧孌墊槧灝勫埌鍓〃錛屽彲浠ュ彇寰楀敮涓璁板綍錛屼絾榪欐潯璁板綍涓嶅畾瀛樺湪錛岃繖涓や釜瀛楁闇瑕佸仛鏉′歡榪囨護錛屽氨榪欎釜鐘跺喌銆?/p>

Hibernate Annotation 閰嶇疆鐨勬敞鎰忕偣錛?/p>

HQL
select 聽s from ScopeProjection s聽 left joinfetch聽s.overridewhere聽s.hubsite=?聽ands.companyabbr=?

CODE
@Entity
@SequenceGenerator(name
= " SEQ_GEN " ,聽sequenceName = " SCOPEPROJECTIONSEQ " )
public class 聽ScopeProjection聽 implements 聽Serializable聽{
聽聽聽聽
private 聽Integer聽id;
聽聽聽聽
private 聽String聽hubsite;
聽聽聽聽
private 聽String聽companyabbr;
聽聽聽聽
private 聽ScopeProjectionOverride聽override;

聽聽聽聽@Id
聽聽聽聽@Column(name聽
= " PROJECTIONID " )
聽聽聽聽@GeneratedValue(strategy聽
= 聽GenerationType.AUTO,聽generator聽 = " SEQ_GEN " )
聽聽聽聽
public 聽Integer聽getId()聽{
聽聽聽聽聽聽聽聽
return 聽id;
聽聽聽聽}

聽聽聽聽
public void 聽setId(Integer聽id)聽{
聽聽聽聽聽聽聽聽
this .id聽 = 聽id;
聽聽聽聽}

聽聽聽聽@Column(name聽
= " HUBSITENAME " ,聽nullable聽 = false ,聽insertable聽 = false ,聽updatable聽 = false )
聽聽聽聽
public 聽String聽getHubsite()聽{
聽聽聽聽聽聽聽聽
return 聽hubsite;
聽聽聽聽}

聽聽聽聽
public void 聽setHubsite(String聽hubsite)聽{
聽聽聽聽聽聽聽聽
this .hubsite聽 = 聽hubsite;
聽聽聽聽}

聽聽聽聽@Column(name聽
= " COMPANYABBREVIATION " ,聽nullable聽 = false ,聽insertable聽 = false ,聽updatable聽 = false )
聽聽聽聽
public 聽String聽getCompanyabbr()聽{
聽聽聽聽聽聽聽聽
return 聽companyabbr;
聽聽聽聽}

聽聽聽聽
public void 聽setCompanyabbr(String聽companyabbr)聽{
聽聽聽聽聽聽聽聽
this .companyabbr聽 = 聽companyabbr;
聽聽聽聽}
聽聽聽聽
聽聽聽聽@OneToOne(cascade聽
= 聽CascadeType.PERSIST)
聽聽聽聽@JoinColumns聽({
聽聽聽聽聽聽聽聽@JoinColumn(name聽
= " COMPANYABBREVIATION " ,聽referencedColumnName聽 = " COMPANYABBREVIATION " ),
聽聽聽聽聽聽聽聽@JoinColumn(name聽
= " HUBSITENAME " ,聽referencedColumnName聽 = " HUBSITENAME " )
聽聽聽聽})
聽聽聽聽
public 聽ScopeProjectionOverride聽getOverride()聽{
聽聽聽聽聽聽聽聽
return 聽override;
聽聽聽聽}

聽聽聽聽
public void 聽setOverride(ScopeProjectionOverride聽override)聽{
聽聽聽聽聽聽聽聽
this .override聽 = 聽override;
聽聽聽聽}
}

@Entity
@SequenceGenerator(name
= " SEQ_GEN " ,聽sequenceName = " SCOPEOVERRIDESEQ " )
public class 聽ScopeProjectionOverride聽 implements 聽Serializable聽{
聽聽聽聽
private 聽Integer聽id;
聽聽聽聽
private 聽String聽companyabbr;
聽聽聽聽
private 聽String聽hubsitename;

聽聽聽聽@Id
聽聽聽聽@Column(name聽
= " OVERRIDEID " )
聽聽聽聽@GeneratedValue(strategy聽
= 聽GenerationType.AUTO,聽generator聽 = " SEQ_GEN " )
聽聽聽聽
public 聽Integer聽getId()聽{
聽聽聽聽聽聽聽聽
return 聽id;
聽聽聽聽}

聽聽聽聽
public void 聽setId(Integer聽id)聽{
聽聽聽聽聽聽聽聽
this .id聽 = 聽id;
聽聽聽聽}

聽聽聽聽@Column(name聽
= " COMPANYABBREVIATION " )
聽聽聽聽
public 聽String聽getCompanyabbr()聽{
聽聽聽聽聽聽聽聽
return 聽companyabbr;
聽聽聽聽}

聽聽聽聽
public void 聽setCompanyabbr(String聽companyabbr)聽{
聽聽聽聽聽聽聽聽
this .companyabbr聽 = 聽companyabbr;
聽聽聽聽}

聽聽聽聽
public 聽String聽getHubsitename()聽{
聽聽聽聽聽聽聽聽
return 聽hubsitename;
聽聽聽聽}

聽聽聽聽
public void 聽setHubsitename(String聽hubsitename)聽{
聽聽聽聽聽聽聽聽
this .hubsitename聽 = 聽hubsitename;
聽聽聽聽}
}


闃垮鏂. 2007-02-01 23:55 鍙戣〃璇勮
]]>
SVN 閰嶇疆http://www.tkk7.com/pepsixp/archive/2006/12/21/89268.html闃垮鏂.闃垮鏂.Thu, 21 Dec 2006 05:38:00 GMThttp://www.tkk7.com/pepsixp/archive/2006/12/21/89268.htmlhttp://www.tkk7.com/pepsixp/comments/89268.htmlhttp://www.tkk7.com/pepsixp/archive/2006/12/21/89268.html#Feedback0http://www.tkk7.com/pepsixp/comments/commentRss/89268.htmlhttp://www.tkk7.com/pepsixp/services/trackbacks/89268.html鍒涘緩
  1. mkdir /etc/svn/repos1
  2. svnadmin create /etc/svn/repos1
  3. svn import file:///etc/svn/repos1聽 --message "init" // 瀵煎叆褰撳墠鐩綍涓嬫墍浠ユ枃浠?br />svn import /local/mydir/ file:///etc/svn/repos1聽 --message "init" // 瀵煎叆鎸囧畾鐩綍涓嬫墍浠ユ枃浠?

鏌ョ湅

  • svn list --verbose file:///etc/svn/repos1/
  • svnlook info /etc/svn/repos1/
  • svnlook tree /etc/svn/repos1/ --show-ids

Apache鏉冮檺鎺у埗

${apache}/conf/httpd.conf 鐨勯厤緗細
LoadModule聽dav_svn_module聽聽聽聽聽modules/mod_dav_svn.so
LoadModule聽authz_svn_module聽聽聽modules
/mod_authz_svn.so
<Location聽/svn/>
DAV聽svn
SVNParentPath聽
/etc/svn/repos1
SVNListParentPath聽on

AuthType聽Basic
AuthName聽
"MY SVN聽Repository"
AuthUserFile聽
/etc/svn/repos1/passwd.conf
AuthzSVNAccessFile聽
/etc/svn/repos1/authz.conf
Require聽vaild-user
</Location>

鍒涘緩鐢ㄦ埛鍜屽瘑鐮侊細${apache}/bin/htpasswd聽/etc/svn/repos1/authz.comf user1

authz.conf鐨勯厤緗細
[groups]
group1聽
=聽user1
group2聽
=聽user1,user2

[
/]
*=聽r

[project1
:/path1]
@group1=聽rw

[project1
:/path2]
@group2=聽rw

鍙栧嚭錛歴vn co file:///etc/svn/report1

鍙﹀闇瑕佷慨鏀逛袱涓湴鏂癸紝涓嶇劧鏃犳硶鎻愪氦淇敼鐨勬枃浠訛細

  1. chown -R sysuser:sysuser /etc/svn/report1
    chmod -R 700 /etc/svn/report1
  2. 鍦?{apache}/conf/httpd.conf涓壘鍒幫細
    User daemon
    Group daemon
    鏀逛負
    User sysuser
    Group sysuser
    浠oot鐢ㄦ埛鍚姩apache鍚庯紝鑷姩鍒囨崲鍒皊ysuser韜喚榪愯


闃垮鏂. 2006-12-21 13:38 鍙戣〃璇勮
]]>
Apache + Subversion 瀹夎http://www.tkk7.com/pepsixp/archive/2006/12/04/85237.html闃垮鏂.闃垮鏂.Mon, 04 Dec 2006 05:16:00 GMThttp://www.tkk7.com/pepsixp/archive/2006/12/04/85237.htmlhttp://www.tkk7.com/pepsixp/comments/85237.htmlhttp://www.tkk7.com/pepsixp/archive/2006/12/04/85237.html#Feedback0http://www.tkk7.com/pepsixp/comments/commentRss/85237.htmlhttp://www.tkk7.com/pepsixp/services/trackbacks/85237.html鐜錛歋unOS 5.9 Generic銆丄pache-2.2.3銆丼ubversion-1.4.2

Apache

  1. 涓嬭澆httpd-2.2.3.tar.gz錛岃В鍘?
  2. 媯鏌ath鏄惁鍔犲叆浜嗭細/usr/ccs/bin錛岃繖鏄垜make鎶ラ敊鐨勬牴婧愶紝涔嬪悗灝變竴椹鉤宸濅簡
  3. $ ./configure --enable-dav --enable-so --prefix=/usr/local/apache2/
  4. $ make;make install
  5. 淇敼/usr/local/apache2/conf/httpd.conf涓殑ServerName鐨勯厤緗紝鍐欎笂鏈嶅姟鍣ㄧ殑IP鍦板潃鍜岀鍙e彿錛屼緥濡係erverName聽 12.34.56.78:80
  6. 榪涘叆bin鐩綍鍚姩(闇瑕乺oot)錛? ./apachectl start
  7. 鎵撳紑嫻忚鍣?a href="http://ip_address/">http://ip_address/錛岀瓑寰呮祴璇曢〉"It works!"鐨勫嚭鐜?:_)

Subversion

  1. 涓嬭澆neon-0.26.2.tar.gz錛岃В鍘?
  2. $ ./configure --prefix=/usr/local/neon; make; make install
  3. 涓嬭澆subversion-1.4.2.tar.gz錛岃В鍘?
  4. $ ./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --with-neon=/usr/local/neon --with-ssl --with-zlib
  5. $ make;make install
  6. 淇敼apache閰嶇疆鏂囦歡httpd.conf錛?br />LoadModule dav_svn_module modules/mod_dav_svn.so聽
    LoadModule authz_svn_module modules/mod_authz_svn.so聽
    <Location /svn>
    DAV svn聽
    SVNParentPath /home/svnroot/
    </Location>
  7. 鍒涘緩浠撳簱錛?br />$ mkdir /home/svnroot/
    $ cd /usr/local/subversion/bin
    $ ./svnadmin create /home/svnroot/test
    $ ./svn import /home/user/import file:///home/svnroot/test 鈥搈 "import files test"
  8. 閲嶅惎Apache
    $ ./usr/local/apache2/bin/apachectl restart
    鎵撳紑嫻忚鍣細http://localhost/svn/test 錛屽簲璇ヨ兘鐪嬪埌浜涗粈涔堜笢瑗?


闃垮鏂. 2006-12-04 13:16 鍙戣〃璇勮
]]>
Ubuntu6.10 - 鍒濆鍖?/title><link>http://www.tkk7.com/pepsixp/archive/2006/11/12/80654.html</link><dc:creator>闃垮鏂.</dc:creator><author>闃垮鏂.</author><pubDate>Sat, 11 Nov 2006 16:52:00 GMT</pubDate><guid>http://www.tkk7.com/pepsixp/archive/2006/11/12/80654.html</guid><wfw:comment>http://www.tkk7.com/pepsixp/comments/80654.html</wfw:comment><comments>http://www.tkk7.com/pepsixp/archive/2006/11/12/80654.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/pepsixp/comments/commentRss/80654.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/pepsixp/services/trackbacks/80654.html</trackback:ping><description><![CDATA[鍗囩駭浜嗕竴涓媢buntu錛岃褰曚竴涓?br /><ol><li>嬋媧籸oot鐢ㄦ埛錛?br /> sudo passwd root</li><li>淇敼婧愶細<br /> sudo gedit /etc/apt/sources.list<br />鍒犻櫎鎵鏈夊唴瀹瑰茍娣誨姞濡備笅淇℃伅(姹熻嫃鐪佸父宸炲競鐢典俊)錛?br />deb http://ubuntu.cn99.com/ubuntu/ edgy main restricted universe multiverse<br />deb http://ubuntu.cn99.com/ubuntu/ edgy-security main restricted universe multiverse<br />deb http://ubuntu.cn99.com/ubuntu/ edgy-updates main restricted universe multiverse<br />deb http://ubuntu.cn99.com/ubuntu/ edgy-proposed main restricted universe multiverse<br />deb http://ubuntu.cn99.com/ubuntu/ edgy-backports main restricted universe multiverse<br />deb http://ubuntu.cn99.com/ubuntu-cn/ edgy main restricted universe multiverse</li><li>鍗囩駭緋葷粺錛?br />sudo apt-get update<br /> sudo apt-get dist-upgrade</li><li>璁劇疆鏈湴local鐜錛?br />sudo dpkg-reconfigure locales</li><li>瀹夎涓枃璇█鏀寔:<br />do apt-get install language-pack-gnome-zh language-pack-gnome-zh-base language-pack-zh language-pack-zh-base language-support-zh<br /></li><li> 瀹夎涓枃瀛椾綋錛?br />sudo apt-get install ttf-arphic-ukai ttf-arphic-uming</li><li>瀹夎緙栬瘧鐜:<br /> sudo apt-get install build-essential</li><li>鏇存敼 GRUB 鑿滃崟鍐呭紑鏈虹郴緇熺殑棰勮鍊?br />sudo vi /boot/grub/menu.lst<br />淇敼 ... default 0 ...<br /></li></ol>濂戒簡錛屾敞閿涓涓嬬數鑴戯紝鍐嶆鐧誨叆鍚庢寜 Ctrl + 絀烘牸閿?嬋媧昏緭鍏ユ硶) 搴旇鍙互浣跨敤錛屽茍涓旀暣涓晫闈㈤兘鏄腑鏂囩殑浜嗐?img src ="http://www.tkk7.com/pepsixp/aggbug/80654.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/pepsixp/" target="_blank">闃垮鏂.</a> 2006-11-12 00:52 <a href="http://www.tkk7.com/pepsixp/archive/2006/11/12/80654.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>浣跨敤DbUnithttp://www.tkk7.com/pepsixp/archive/2005/09/05/12124.html闃垮鏂.闃垮鏂.Mon, 05 Sep 2005 15:05:00 GMThttp://www.tkk7.com/pepsixp/archive/2005/09/05/12124.htmlhttp://www.tkk7.com/pepsixp/comments/12124.htmlhttp://www.tkk7.com/pepsixp/archive/2005/09/05/12124.html#Feedback0http://www.tkk7.com/pepsixp/comments/commentRss/12124.htmlhttp://www.tkk7.com/pepsixp/services/trackbacks/12124.html褰撴垜鍒氬紑濮嬬紪鍐欏拰鏁版嵁搴撴湁鍏崇殑鍗曞厓嫻嬭瘯鏃訛紝灝辯煡閬撹繖浜涙祴璇曚唬鐮佸湪涓嬫榪愯鐨勬椂鍊欏彲鑳芥棤娉曞畬鍏ㄩ氳繃錛屽洜涓哄畠鍜屾暟鎹揣瀵嗙殑鑱旂郴鍦ㄤ竴璧鳳紝浣嗕篃鎯充笉鍑轟竴涓ソ鐨勮В鍐蟲柟妗堛傚畠鍙繚璇佷簡褰撴椂鐨勪唬鐮佹槸娌℃湁闂鐨勶紝涓涓槦鏈熷悗錛屼笉錛屽彲鑳藉湪榪欐鍗曞厓嫻嬭瘯榪愯瀹屽悗錛屽氨搴旇涓㈣繘鍨冨溇妗朵簡銆?BR>榪欑鍚冨姏涓嶈濂界殑琛屼負鎸佺畫浜嗕竴孌墊椂闂達紝鐩村埌寮曞叆浜咲bUnit涔嬪悗銆傚畠紜疄鑳藉鐨勪繚璇佹暟鎹簱澶勪簬涓涓ǔ瀹氱殑鐘舵侊紝鏃犻』瀵瑰叾榪涜浜哄伐騫查錛屾搷浣滀篃闈炲父綆鍗曘?BR>
鍒涘緩涓涓?STRONG>DbUnit Test Case
銆傘傘?BR>



闃垮鏂. 2005-09-05 23:05 鍙戣〃璇勮
]]>
鍔犵彮緇撴潫浜?/title><link>http://www.tkk7.com/pepsixp/archive/2005/03/26/2492.html</link><dc:creator>闃垮鏂.</dc:creator><author>闃垮鏂.</author><pubDate>Sat, 26 Mar 2005 15:49:00 GMT</pubDate><guid>http://www.tkk7.com/pepsixp/archive/2005/03/26/2492.html</guid><wfw:comment>http://www.tkk7.com/pepsixp/comments/2492.html</wfw:comment><comments>http://www.tkk7.com/pepsixp/archive/2005/03/26/2492.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/pepsixp/comments/commentRss/2492.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/pepsixp/services/trackbacks/2492.html</trackback:ping><description><![CDATA[浠庝笂涓槦鏈熶簲錛屽埌榪欎釜鏄熸湡浜旓紝鏁存暣涓涓槦鏈燂紝姣忓ぉ8:30涓婄彮錛?2錛?0涓嬬彮錛屾劅瑙夋槸鏁翠釜浜洪兘涔扮粰鍏徃浜嗭紝鍥炲埌瀹惰兘鍋氱殑浜嬫儏灝卞墿鐫¤浜嗐傜涓嬈¤繖鏍風殑榪炵畫濂嬫垬錛屼漢鍊掓槸娌℃庝箞鎰熷埌绱紝涔熻閮戒範鎯簡鍚э紝鍙嶆鍦ㄥ鐨勬椂鍊欎篃甯稿父12澶氭墠鐫¤鐨勩傚敮涓鐨勪笉婊″氨鏄紮椋燂紝鏃╅キ鏄敤楗煎共瑙e喅鐨勶紝璧峰簥鍙戠幇鐪肩潧嫻偪鎴栫溂鍦堝彂榛戯紝灝卞啀濂栬祻鑷繁涓琚嬬墰濂訛紝涓崍鎶婅儍涔扮粰浜嗙鎶鍥殑椋熷爞錛岄鍫傜殑楗槸閭e畞鎰塊夋嫨娉¢潰涔熶笉鍘誨悆瀹冮キ鐨勯偅縐嶏紝浣嗘病鍔炴硶錛屽瀯鏂粡钀ワ紝涓嶅悆鐨勮瘽錛屽氨瑕佸悆涓ら】娉¢潰浜嗭紝闃茶厫鍓傛秹鍏ュお澶氾紝浜哄氨瀹規槗楹繪湪錛屾櫄楗厜涓村彲鐨勶紝涓婚闄や簡鏂逛究闈紝鍐嶅姞浜涙病钀ュ吇鐨勮眴鑵愬共銆佽柉鐗囦箣綾葷殑闆墮銆傛妸韜綋鎶樿吘浜嗕竴涓槦鏈燂紝鑲氬瓙緇堜簬蹇嶄笉浣忓弽鎶椾簡錛屾槦鏈熶簲鐨勬櫄涓婂挄鍜曠洿鍙紝鏄熸湡鍏氨璺戣倸鎷夌█鐨勮繃浜嗕竴涓笂鍗堬紝鐪嬬湅闀滃瓙閲岀殑鎴戯紝姝葷嫍涓鍙?BR><BR>濂戒笉瀹規槗鍧氭寔浜嗕竴涓槦鏈熺殑鏅ㄨ窇錛岃榪欑獊鍏ュ叾鏉ョ殑鍔犵彮鍐茬殑涓嶇煡鍝竟鍘諱簡銆備笉鐭ヤ笅涓槦鏈熻繕鑳戒笉鑳界戶緇潥鎸佷笅鍘伙紝韜綋鍟婅韓浣撳晩錛岃佷簡鍙埆鎬垜錛岃皝璁╀綘榪欎箞鎳掔殑銆傚伐浣滀簡涓騫村錛岀幇鍦ㄤ竴鐩存劅鍒拌剸瀛愮棝錛岀櫧鍙戜篃澶氫簡涓嶅皯錛岃儗閮ㄦ椂涓嶆椂鐨勪篃浼氫駭鐢熶竴闃電柤鐥涳紝涓鐩存鐤戞槸涓嶆槸鑴婃鍑轟簡浠涔堥棶棰橈紝姝eソ閭f椂鍦ㄧ湅銆婄櫧褰便嬶紝姹熺洿鍙戠梾鏃剁棝鑻︾殑琛ㄦ儏錛屽鎴戞亹鎯т簡鏁翠竴涓槦鏈燂紝鍚庢潵鍜屽悓浜嬬殑浜ゆ祦涓墠鍙戠幇錛屾槸鍑沖瓙鐨勯棶棰橈紝浠栦滑涔熸湁榪欑鎯呭喌鍙戠敓錛岀幇鍦ㄦ崲鍑沖瓙浜嗭紝榪欎釜鐥囩姸涔熸病鏈夊嚭鐜頒簡銆傚湪榪炵畫涓涓槦鏈熺殑鏅ㄨ窇鍧氭寔涓嬫潵鍚庯紝綺劇鍜岃韓瀛愰鍑哄鐨勭埥鏈楋紝璺戣礬鑴氬簳閮借寰楀緢杞葷泩錛屼絾鏄棭涓?鐐圭埇璧鋒潵錛屽鎴戞潵璇村お鏈夐毦搴︿簡錛岃繖鍙瘮鍔犱竴涓槦鏈熺殑鐝毦澶氫簡銆傛兂鎯崇幇鍦ㄨ繖縐嶇敤韜綋鎹㈤噾閽辯殑鏂瑰紡錛屽拰姘戝伐鏈変粈涔堝尯鍒紝鍙兘榪炴皯宸ラ兘涓嶅鍚с備粈涔堜簨鎯呴兘璐靛湪鍧氭寔錛屾櫒璺戞槸榪欐牱錛屽伐浣滀篃鏄繖鏍楓?BR><BR>鐮旂┒鐢熷緢鍘夊錛屼笉瑙佸緱錛屽彧鑳借鏄壇鑾犱笉榻愶紒榪欐鍔犱簡榪欎箞澶氱殑鐝紝鏈夐儴鍒嗗師鍥犲氨鏄粬浠犳垚鐨勩傚叕鍙稿鍖呯粰浠栦滑鐨勭▼搴忥紝鏈鍚庣敱鎴戝仛嫻嬭瘯鍜屼慨鏀癸紝鐪嬬湅婧愪唬鐮侊紝榪炴渶璧風爜鐨勫彉閲忓悕棣栧瓧姣嶅皬鍐欓兘涓嶈兘閬靛畧錛岃繕鎸囨湜鍦ㄤ唬鐮佷腑鎵懼埌涓孌典紭闆呯殑浠g爜浠ヤ緵瀛︿範鍚楋紵寮傚父澶勭悊錛屾棩蹇楄緭鍑猴紝浠g爜閲嶇敤錛岄殢蹇冩墍嬈茬殑鍋氾紝濂藉儚瀹屽叏鏄負浜嗗畬鎴愪換鍔¤屽仛鐨勶紝褰撴垜鎶婁唬鐮佹祴璇曞茍淇敼瀹屽悗錛屽彂鐜版湁浜涚被鍓╀笅鐨勪唬鐮佹暟閲忕敋鑷寵繛鍘熸潵鐨勪竴鍗婇兘涓嶅埌錛屽搱鍝堬紝淇晩淇晩鏀瑰晩鏀瑰晩錛屼竴涓槦鏈熺殑鍏夐槾寰堝揩灝辮繃鍘諱簡錛屽け鍘諱簡涓浜涳紝涔熷緱鍒頒簡涓浜涖?BR><BR>鏈榪戣銆婇挗涔嬬偧閲戞湳澹嬫劅鍔ㄤ笉宸詫細娌℃湁鐗虹壊灝辨病鏈夎幏寰楋紝鎯寵寰楀埌浠涔堬紝灝卞繀欏諱粯鍑哄悓絳夌殑浠d環錛岃繖鏄偧閲戞湳涓殑絳変環浜ゆ崲鍘熷垯錛屼篃鏄幇瀹炰腑鐨勭瓑浠蜂氦鎹㈠師鍒欙紒<img src ="http://www.tkk7.com/pepsixp/aggbug/2492.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/pepsixp/" target="_blank">闃垮鏂.</a> 2005-03-26 23:49 <a href="http://www.tkk7.com/pepsixp/archive/2005/03/26/2492.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>瀛︿範FreeMarker錛堜簩錛?/title><link>http://www.tkk7.com/pepsixp/archive/2005/03/11/1941.html</link><dc:creator>闃垮鏂.</dc:creator><author>闃垮鏂.</author><pubDate>Fri, 11 Mar 2005 03:08:00 GMT</pubDate><guid>http://www.tkk7.com/pepsixp/archive/2005/03/11/1941.html</guid><wfw:comment>http://www.tkk7.com/pepsixp/comments/1941.html</wfw:comment><comments>http://www.tkk7.com/pepsixp/archive/2005/03/11/1941.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/pepsixp/comments/commentRss/1941.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/pepsixp/services/trackbacks/1941.html</trackback:ping><description><![CDATA[<P><STRONG>鐢ㄦ埛瀹氫箟鎸囦護</STRONG>錛嶄嬌鐢ˊ絎﹀悎鏉ヨ皟鐢?BR>鏈変袱縐嶄笉鍚岀殑綾誨瀷錛歁acro(瀹?鍜宼ransform(浼犻掑櫒)錛孧acro鏄湪妯℃澘涓嬌鐢╩acro鎸囦護瀹氫箟錛岃宼ransform鏄湪妯℃澘澶栫敱紼嬪簭瀹氫箟(鍩烘湰涓婇兘鏄熀浜嶫ava鐨?錛岃繖閲岄氳繃Macro鏉ヤ粙緇嶈嚜瀹氫箟鎸囦護銆?BR>渚嬩竴錛?BR><#macro greet><BR>  <font size="+2">Hello Joe!</font><BR></#macro>  <BR>浣跨敤錛?lt;@greet><<A>/@greet</A>> 鎴?<@greet/><BR>緇撴灉錛?lt;font size="+2">Hello Joe!</font></P> <P>鍙傛暟錛嶅湪macro鎸囦護涓彲浠ュ湪瀹忓彉閲忎箣鍚庡畾涔夊弬鏁?BR>渚嬩簩錛?BR><#macro greet person><BR>  <font size="+2">Hello ${person}!</font><BR></#macro> <BR>浣跨敤錛?lt;@greet person="Fred"/> and <@greet person="Batman"/> <BR>緇撴灉錛?<font size="+2">Hello Fred!</font> and <font size="+2">Hello Batman!</font></P> <P>macro鍙互鏈夊涓弬鏁幫紝鍙傛暟鐨勬搴忔槸鏃犲叧鐨勶紝鍦╩acro鎸囦護涓彧鑳戒嬌鐢ㄥ畾涔夌殑鍙傛暟錛屽茍涓斿繀欏誨鎵鏈夊弬鏁拌祴鍊鹼紝鍙互鍦ㄥ畾涔夊弬鏁版椂鎸囧畾緙虹渷鍊鹼細</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#macro </SPAN><SPAN style="COLOR: #ff0000">greet person color</SPAN><SPAN style="COLOR: #0000ff">="black"</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">font </SPAN><SPAN style="COLOR: #ff0000">size</SPAN><SPAN style="COLOR: #0000ff">="+2"</SPAN><SPAN style="COLOR: #ff0000"> color</SPAN><SPAN style="COLOR: #0000ff">="${color}"</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">Hello ${person}!</SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">font</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">#macro</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"> <BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN></DIV></DIV> <P><BR><STRONG>鍦ㄨ嚜瀹氫箟鎸囦護宓屽鍐呭</STRONG>錛氭ā鏉跨墖鏂腑浣跨敤<#nested>鎸囦護</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#macro </SPAN><SPAN style="COLOR: #ff0000">border</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">table </SPAN><SPAN style="COLOR: #ff0000">border</SPAN><SPAN style="COLOR: #0000ff">=4 </SPAN><SPAN style="COLOR: #ff0000">cellspacing</SPAN><SPAN style="COLOR: #0000ff">=0 </SPAN><SPAN style="COLOR: #ff0000">cellpadding</SPAN><SPAN style="COLOR: #0000ff">=4><tr><td><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>    </SPAN><SPAN style="COLOR: #ff0000"><#nested</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">tr</SPAN><SPAN style="COLOR: #0000ff">></</SPAN><SPAN style="COLOR: #800000">td</SPAN><SPAN style="COLOR: #0000ff">></</SPAN><SPAN style="COLOR: #800000">table</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">#macro</SPAN><SPAN style="COLOR: #0000ff">></SPAN></DIV></DIV> <P>浣跨敤錛?lt;@border>The bordered text<<A>/@border</A>><BR>緇撴灉錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">table </SPAN><SPAN style="COLOR: #ff0000">border</SPAN><SPAN style="COLOR: #0000ff">=4 </SPAN><SPAN style="COLOR: #ff0000">cellspacing</SPAN><SPAN style="COLOR: #0000ff">=0 </SPAN><SPAN style="COLOR: #ff0000">cellpadding</SPAN><SPAN style="COLOR: #0000ff">=4><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff0000"><tr</SPAN><SPAN style="COLOR: #0000ff">><</SPAN><SPAN style="COLOR: #800000">td</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">The bordered text<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">tr</SPAN><SPAN style="COLOR: #0000ff">></</SPAN><SPAN style="COLOR: #800000">td</SPAN><SPAN style="COLOR: #0000ff">></</SPAN><SPAN style="COLOR: #800000">table</SPAN><SPAN style="COLOR: #0000ff">></SPAN></DIV></DIV> <P><#nested>鎸囦護鍙互琚嬈¤皟鐢細</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#macro </SPAN><SPAN style="COLOR: #ff0000">do_thrice</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#nested</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#nested</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#nested</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">#macro</SPAN><SPAN style="COLOR: #0000ff">></SPAN></DIV></DIV> <P>浣跨敤錛?BR><@do_thrice>Anything.<<A>/@do_thrice</A>>  <BR>緇撴灉錛?BR>Anything.<BR>Anything.<BR>Anything. </P> <P><STRONG>娉ㄦ剰</STRONG>錛氬祵濂楀唴瀹規槸鏃犳硶璁塊棶鍒癿acro涓殑灞閮ㄥ彉閲忕殑銆?BR>渚嬪錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#macro </SPAN><SPAN style="COLOR: #ff0000">repeat count</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#local </SPAN><SPAN style="COLOR: #ff0000">y </SPAN><SPAN style="COLOR: #0000ff">= "test"</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#list </SPAN><SPAN style="COLOR: #ff0000">1..count as x</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>    ${y} ${count}/${x}: </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#nested</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">#list</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">#macro</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">@repeat </SPAN><SPAN style="COLOR: #ff0000">count</SPAN><SPAN style="COLOR: #0000ff">=3>${y?default("?")} </SPAN><SPAN style="COLOR: #ff0000">${x?default("?")} ${count?default("?")}</@repeat</SPAN><SPAN style="COLOR: #0000ff">></SPAN></DIV></DIV> <P>緇撴灉錛?BR>test 3/1: ? ? ?<BR>test 3/2: ? ? ?<BR>test 3/3: ? ? ?</P> <P><BR>涓嬮潰鏄竴涓祵濂椾嬌鐢ㄨ嚜瀹氫箟鎸囦護鐨勪緥瀛愶細</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">@border</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">ul</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">@do_thrice</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>    </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">li</SPAN><SPAN style="COLOR: #0000ff">><</SPAN><SPAN style="COLOR: #800000">@greet </SPAN><SPAN style="COLOR: #ff0000">person</SPAN><SPAN style="COLOR: #0000ff">="Joe"</SPAN><SPAN style="COLOR: #0000ff">/></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">@do_thrice</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">ul</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">@border</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"> </SPAN></DIV></DIV> <P>緇撴灉錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">table </SPAN><SPAN style="COLOR: #ff0000">border</SPAN><SPAN style="COLOR: #0000ff">=4 </SPAN><SPAN style="COLOR: #ff0000">cellspacing</SPAN><SPAN style="COLOR: #0000ff">=0 </SPAN><SPAN style="COLOR: #ff0000">cellpadding</SPAN><SPAN style="COLOR: #0000ff">=4><tr><td><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top> </SPAN><SPAN style="COLOR: #ff0000"><ul</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top> </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">li</SPAN><SPAN style="COLOR: #0000ff">><</SPAN><SPAN style="COLOR: #800000">font </SPAN><SPAN style="COLOR: #ff0000">size</SPAN><SPAN style="COLOR: #0000ff">="+2"</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">Hello Joe!</SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">font</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top> </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">li</SPAN><SPAN style="COLOR: #0000ff">><</SPAN><SPAN style="COLOR: #800000">font </SPAN><SPAN style="COLOR: #ff0000">size</SPAN><SPAN style="COLOR: #0000ff">="+2"</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">Hello Joe!</SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">font</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top> </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">li</SPAN><SPAN style="COLOR: #0000ff">><</SPAN><SPAN style="COLOR: #800000">font </SPAN><SPAN style="COLOR: #ff0000">size</SPAN><SPAN style="COLOR: #0000ff">="+2"</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">Hello Joe!</SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">font</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top> </SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">ul</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">tr</SPAN><SPAN style="COLOR: #0000ff">></</SPAN><SPAN style="COLOR: #800000">td</SPAN><SPAN style="COLOR: #0000ff">></</SPAN><SPAN style="COLOR: #800000">table</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">  </SPAN></DIV></DIV> <P>鍦╩acro涓?STRONG>浣跨敤寰幆鍙橀噺</STRONG>錛嶄綔涓簄ested鎸囦護鐨勫弬鏁頒紶閫掑驚鐜彉閲忕殑瀹為檯鍊鹼紝鑰屽湪璋冪敤鐢ㄦ埛瀹氫箟鎸囦護鏃訛紝鍦?lt;@鈥?gt;寮濮嬫爣璁扮殑鍙傛暟鍚庨潰鎸囧畾寰幆鍙橀噺鐨勫悕瀛楋細</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#macro </SPAN><SPAN style="COLOR: #ff0000">repeat count</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#list </SPAN><SPAN style="COLOR: #ff0000">1..count as x</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>    </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#nested </SPAN><SPAN style="COLOR: #ff0000">x, x/2, x</SPAN><SPAN style="COLOR: #0000ff">==count><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #ff0000"></#list</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">#macro</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">@repeat </SPAN><SPAN style="COLOR: #ff0000">count</SPAN><SPAN style="COLOR: #0000ff">=4 </SPAN><SPAN style="COLOR: #ff0000">; c, halfc, last</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  ${c}. ${halfc}</SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#if </SPAN><SPAN style="COLOR: #ff0000">last</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"> Last!</SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">#if</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"><A>/</SPAN><SPAN style="COLOR: #800000">@repeat</SPAN><SPAN style="COLOR: #0000ff"></A></SPAN></DIV></DIV> <P> 緇撴灉錛?BR>1. 0.5<BR>2. 1<BR>3. 1.5<BR>4. 2 Last!</P> <P><STRONG>娉ㄦ剰</STRONG>錛氬驚鐜彉閲忓拰鐢ㄦ埛瀹氫箟鎸囦護寮濮嬫爣璁版寚瀹氱殑鏁扮洰鍙互涓嶅悓錛岃皟鐢ㄦ椂灝戞寚瀹氬驚鐜彉閲忥紝鍒欏鎸囧畾鐨勫間笉鍙錛岃皟鐢ㄦ椂澶氭寚瀹氬驚鐜彉閲忥紝澶氫綑鐨勫驚鐜彉閲忎笉浼氳鍒涘緩銆?BR><BR><STRONG>妯℃澘涓殑鍙橀噺</STRONG>錛屾湁涓夌綾誨瀷錛?BR>1.) <STRONG>plain(鍏ㄥ眬)鍙橀噺</STRONG>錛氬彲浠ュ湪妯℃澘鐨勪換浣曞湴鏂硅闂紝鍖呮嫭浣跨敤include鎸囦護鎻掑叆鐨勬ā鏉匡紝浣跨敤assign鎸囦護鍒涘緩鍜屾浛鎹?BR>2.) <STRONG>灞閮ㄥ彉閲?/STRONG>錛氬湪macro涓湁鏁堬紝浣跨敤local鎸囦護鍒涘緩鍜屾浛鎹?BR>3.) <STRONG>寰幆鍙橀噺</STRONG>錛氬彧鑳藉瓨鍦ㄤ簬鎸囦護鐨勫祵濂楀唴瀹癸紝鐢辨寚浠?濡俵ist)鑷姩鍒涘緩錛涘畯鐨勫弬鏁版槸灞閮ㄥ彉閲忥紝鑰屼笉鏄驚鐜彉閲?/P> <P>鐢╝ssign鎸囦護鍒涘緩鍜屾浛鎹㈢殑渚嬪瓙錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#assign </SPAN><SPAN style="COLOR: #ff0000">x </SPAN><SPAN style="COLOR: #0000ff">= 1>  </SPAN><SPAN style="COLOR: #ff0000"><#-- create variable x --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${x}<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#assign </SPAN><SPAN style="COLOR: #ff0000">x </SPAN><SPAN style="COLOR: #0000ff">= x </SPAN><SPAN style="COLOR: #ff0000">+ 3</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000">replace variable x --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${x}  </SPAN></DIV></DIV> <P>緇撴灉錛?BR>1<BR>4</P> <P>灞閮ㄥ彉閲忛殣钘?鑰屼笉鏄鐩?鍚屽悕鐨刾lain鍙橀噺錛涘驚鐜彉閲忛殣钘忓悓鍚嶇殑灞閮ㄥ彉閲忓拰plain鍙橀噺錛屼笅闈㈡槸涓涓緥瀛愶細</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#assign </SPAN><SPAN style="COLOR: #ff0000">x </SPAN><SPAN style="COLOR: #0000ff">= "plain"</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>1. ${x}  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000">we see the plain var. here --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">@test</SPAN><SPAN style="COLOR: #0000ff">/></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>6. ${x}  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000">the value of plain var. was not changed --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#list </SPAN><SPAN style="COLOR: #ff0000">["loop"] as x</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>    7. ${x}  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000">now the loop var. hides the plain var. --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>    </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#assign </SPAN><SPAN style="COLOR: #ff0000">x </SPAN><SPAN style="COLOR: #0000ff">= "plain2"</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000">replace the plain var, hiding does not mater here --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>    8. ${x}  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000">it still hides the plain var. --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">#list</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>9. ${x}  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000">the new value of plain var. --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top> <BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#macro </SPAN><SPAN style="COLOR: #ff0000">test</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  2. ${x}  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000">we still see the plain var. here --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#local </SPAN><SPAN style="COLOR: #ff0000">x </SPAN><SPAN style="COLOR: #0000ff">= "local"</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  3. ${x}  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000">now the local var. hides it --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#list </SPAN><SPAN style="COLOR: #ff0000">["loop"] as x</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>    4. ${x}  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000">now the loop var. hides the local var. --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">#list</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  5. ${x}  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000">now we see the local var. again --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">#macro</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">  </SPAN></DIV></DIV> <P>緇撴灉錛?BR>1. plain<BR>  2. plain<BR>  3. local<BR>    4. loop<BR>  5. local<BR>6. plain<BR>    7. loop<BR>    8. loop<BR>9. plain2</P> <P>鍐呴儴寰幆鍙橀噺闅愯棌鍚屽悕鐨勫閮ㄥ驚鐜彉閲忥紝渚嬪錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#list </SPAN><SPAN style="COLOR: #ff0000">["loop 1"] as x</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  ${x}<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#list </SPAN><SPAN style="COLOR: #ff0000">["loop 2"] as x</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>    ${x}<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>    </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#list </SPAN><SPAN style="COLOR: #ff0000">["loop 3"] as x</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>      ${x}<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>    </SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">#list</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>    ${x}<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">#list</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  ${x}<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">#list</SPAN><SPAN style="COLOR: #0000ff">></SPAN></DIV></DIV> <P>緇撴灉錛?BR>loop 1<BR>    loop 2<BR>      loop 3<BR>    loop 2<BR>  loop 1 </P> <P>妯℃澘涓殑鍙橀噺浼氶殣钘忥紙鑰屼笉鏄鐩栵級鏁版嵁妯″瀷涓悓鍚嶅彉閲忥紝濡傛灉闇瑕佽闂暟鎹ā鍨嬩腑鐨勫悓鍚嶅彉閲忥紝浣跨敤鐗規畩鍙橀噺global錛屼笅闈㈢殑渚嬪瓙鍋囪鏁版嵁妯″瀷涓殑user鐨勫兼槸Big Joe錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#assign </SPAN><SPAN style="COLOR: #ff0000">user </SPAN><SPAN style="COLOR: #0000ff">= "Joe Hider"</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${user}          </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000">prints: Joe Hider --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${.globals.user} </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000">prints: Big Joe --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">  </SPAN></DIV></DIV> <P><STRONG>鍛藉悕(namespaces)絀洪棿</STRONG>錛嶉氬父鎯呭喌錛屽彧浣跨敤涓涓懡鍚嶇┖闂達紝縐頒負涓誨懡鍚嶇┖闂?main namespace)錛屼絾浣犳槸涓嶄細鎰忚瘑鍒拌繖浜涚殑錛涗負浜嗗垱寤哄彲閲嶇敤鐨刴acro銆乼ransforms鎴栧叾瀹冨彉閲忕殑闆嗗悎(閫氬父縐板簱)錛屽繀欏諱嬌鐢ㄥ鍛藉悕絀洪棿錛屼負浜嗛槻姝㈠悓鍚嶅啿紿併?/P> <P>棣栧厛鍒涘緩涓涓簱(鍋囪淇濆瓨鍦╨ib/my_test.ftl涓?錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#macro </SPAN><SPAN style="COLOR: #ff0000">copyright date</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">p</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">Copyright (C) ${date} Julia Smith. All rights reserved.<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">br</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">Email: ${mail}</SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">p</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">#macro</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">  <BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#assign </SPAN><SPAN style="COLOR: #ff0000">mail </SPAN><SPAN style="COLOR: #0000ff">= "jsmith@acme.com"</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"> </SPAN></DIV></DIV> <P>浣跨敤import鎸囦護瀵煎叆搴撳埌妯℃澘涓紝Freemarker浼氫負瀵煎叆鐨勫簱鍒涘緩鏂扮殑鍛藉悕絀洪棿錛屽茍鍙互閫氳繃import鎸囦護涓寚瀹氱殑hash(鏁e垪)鍙橀噺璁塊棶搴撲腑鐨勫彉閲忥細</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#import </SPAN><SPAN style="COLOR: #ff0000">"/lib/my_test.ftl" as my</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#assign </SPAN><SPAN style="COLOR: #ff0000">mail</SPAN><SPAN style="COLOR: #0000ff">="fred@acme.com"</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">@my</SPAN><SPAN style="COLOR: #ff0000">.copyright date</SPAN><SPAN style="COLOR: #0000ff">="1999-2002"</SPAN><SPAN style="COLOR: #0000ff">/></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${my.mail}<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${mail}  </SPAN></DIV></DIV> <P>緇撴灉錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">p</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">Copyright (C) 1999-2002 Julia Smith. All rights reserved.<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">br</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">Email: jsmith@acme.com</SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">p</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>jsmith@acme.com<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>fred@acme.com  </SPAN></DIV></DIV> <P>涓婇潰鐨勪緥瀛愪腑浣跨敤鐨勪袱涓悓鍚嶅彉閲忓茍娌℃湁鍐茬獊錛屽洜涓哄畠浠綅浜庝笉鍚岀殑鍛藉悕絀洪棿</P> <P>鍙互浣跨敤assign鎸囦護鍦ㄥ鍏ョ殑鍛藉悕絀洪棿涓垱寤烘垨鏇夸唬鍙橀噺錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#import </SPAN><SPAN style="COLOR: #ff0000">"/lib/my_test.ftl" as my</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${my.mail}<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#assign </SPAN><SPAN style="COLOR: #ff0000">mail</SPAN><SPAN style="COLOR: #0000ff">="jsmith@other.com"</SPAN><SPAN style="COLOR: #ff0000"> in my</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${my.mail}  </SPAN></DIV></DIV> <P>緇撴灉錛?BR><A href="mailto:jsmith@acme.com"><FONT color=#000000>jsmith@acme.com</FONT></A><BR><A href="mailto:jsmith@other.com"><FONT color=#000000>jsmith@other.com</FONT></A>  </P> <P>鏁版嵁妯″瀷涓殑鍙橀噺浠諱綍鍦版柟閮藉彲瑙侊紝涔熷寘鎷笉鍚岀殑鍛藉悕絀洪棿錛屼笅闈慨鏀逛簡鍒氭墠鍒涘緩鐨勫簱錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#macro </SPAN><SPAN style="COLOR: #ff0000">copyright date</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">p</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">Copyright (C) ${date} ${user}. All rights reserved.</SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">p</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">#macro</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#assign </SPAN><SPAN style="COLOR: #ff0000">mail </SPAN><SPAN style="COLOR: #0000ff">= "${user}@acme.com"</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">   </SPAN></DIV></DIV> <P>鍋囪鏁版嵁妯″瀷涓殑user鍙橀噺鐨勫兼槸Fred錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#import </SPAN><SPAN style="COLOR: #ff0000">"/lib/my_test.ftl" as my</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">@my</SPAN><SPAN style="COLOR: #ff0000">.copyright date</SPAN><SPAN style="COLOR: #0000ff">="1999-2002"</SPAN><SPAN style="COLOR: #0000ff">/></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${my.mail}</SPAN></DIV></DIV> <P> 緇撴灉錛?BR> <p>Copyright (C) 1999-2002 Fred. All rights reserved.</p><BR><A href="mailto:Fred@acme.com"><FONT color=#000000>Fred@acme.com</FONT></A>  <BR><BR><BR>鍙傝冿細   <A blog - FreeMarker璁捐鎸囧崡</A><BR>            <A >FreeMarker  in sourceforge.net</A></P><img src ="http://www.tkk7.com/pepsixp/aggbug/1941.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/pepsixp/" target="_blank">闃垮鏂.</a> 2005-03-11 11:08 <a href="http://www.tkk7.com/pepsixp/archive/2005/03/11/1941.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>瀛︿範FreeMarker錛堜竴錛?/title><link>http://www.tkk7.com/pepsixp/archive/2005/03/11/1685.html</link><dc:creator>闃垮鏂.</dc:creator><author>闃垮鏂.</author><pubDate>Fri, 11 Mar 2005 03:00:00 GMT</pubDate><guid>http://www.tkk7.com/pepsixp/archive/2005/03/11/1685.html</guid><wfw:comment>http://www.tkk7.com/pepsixp/comments/1685.html</wfw:comment><comments>http://www.tkk7.com/pepsixp/archive/2005/03/11/1685.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.tkk7.com/pepsixp/comments/commentRss/1685.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/pepsixp/services/trackbacks/1685.html</trackback:ping><description><![CDATA[<P>FreeMarker鏄竴涓敤Java緙栧啓鐨勬ā鏉垮紩鎿庯紝涓昏鐢ㄦ潵鐢熸垚HTML Web欏甸潰錛岀壒鍒槸鍩轟簬MVC妯″紡鐨勫簲鐢ㄧ▼搴忋傝櫧鐒禙reeMarker鍏鋒湁涓浜涚紪紼嬬殑鑳藉姏錛屼絾涓嶅儚PHP錛岄氬父鐢盝ava紼嬪簭鍑嗗瑕佹樉紺虹殑鏁版嵁錛岀敱FreeMarker妯℃澘鐢熸垚欏甸潰銆?nbsp; FreeMarker鍙互浣滀負Web搴旂敤妗嗘灦涓涓粍浠訛紝浣嗗畠涓庡鍣ㄦ棤鍏籌紝鍦ㄩ潪Web搴旂敤紼嬪簭鐜涔熻兘宸ヤ綔鐨勫緢濂姐?FreeMarker閫傚悎浣滀負MVC鐨勮鍥劇粍浠訛紝榪樿兘鍦ㄦā鏉夸腑浣跨敤JSP鏍囪搴撱?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">html</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">head</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">title</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">Welcome!</SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">title</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">head</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">body</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">h1</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">Welcome ${user}!</SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">h1</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">p</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">Our latest product:<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">a </SPAN><SPAN style="COLOR: #ff0000">href</SPAN><SPAN style="COLOR: #0000ff">="${latestProduct.url}"</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">${latestProduct.name}</SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">a</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">!<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">body</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">html</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">  <IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN></DIV></DIV> <P>涓婇潰鐨勪緥瀛愪腑錛屽湪綆鍗曠殑HTML涓姞鍏ヤ簡涓浜涚敱${鈥鍖呭洿鐨勭壒瀹欶reeMarker鐨勬寚浠わ紝榪欎釜鏂囦歡灝辯О涓烘ā鏉夸簡銆傝寀ser銆乴atestProduct.url鍜宭atestProduct.name鏉ヨ嚜浜庢暟鎹ā鍨嬶紝鐢盝ava紼嬪簭鎻愪緵錛屾ā鏉胯璁¤呭氨涓嶇敤鍏沖績鏁版嵁浠庡摢鏉ョ殑銆?/P> <P>FreeMarker妯℃澘涓彲浠ュ寘鎷笅闈㈠洓縐嶇壒瀹氶儴鍒嗭細<BR>涓.) <STRONG>鏂囨湰</STRONG>錛氱洿鎺ヨ緭鍑?BR>浜?) <STRONG>FTL鏍囪</STRONG>(FreeMarker妯℃澘璇█鏍囪)錛氱被浼間簬HTML鏍囪錛屽悕瀛楀墠鍔?(鏈変簺浠寮濮嬶紝鐢ㄦ埛鑷畾涔夋爣璁?浜堜互鍖哄垎錛屼笉浼氳緭鍑恒?BR><STRONG>瀛楃涓?/STRONG>錛?浣跨敤鍗曞紩鍙鋒垨鍙屽紩鍙烽檺瀹氾紱濡傛灉鍖呭惈鐗規畩瀛楃闇瑕佽漿涔夌錛?{"It's \"quoted\" andthis is a backslash: \\"}<BR>鏈変竴綾葷壒孌婄殑瀛楃涓?${r"C:\foo\bar"}錛岃緭鍑虹粨鏋勪負錛欳:\foo\bar錛屽湪寮曞彿鍓嶉潰鍔爎琚涓烘槸綰枃鏈?<BR>鏁板瓧錛嶇洿鎺ヨ緭鍏ワ紝涓嶉渶瑕佸紩鍙楓?{08}, ${+8}, ${8.00} and ${8} 閮芥槸鐩稿悓鐨?<BR><STRONG>甯冨皵鍊?/STRONG>錛峵rue鍜宖alse錛屼笉浣跨敤寮曞彿<BR><STRONG>Sequences(搴忓垪)</STRONG>錛嶇敱閫楀彿鍒嗛殧鐨勫彉閲忓垪琛紝鐢辨柟鎷彿闄愬畾錛岀被浼糺ava涓殑涓緇存暟緇勶細</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#list </SPAN><SPAN style="COLOR: #ff0000"><FONT color=#000000>["winter", "spring", "summer", "autumn"] as x</FONT></SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${x}<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">#list</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN></DIV></DIV> <P>杈撳嚭緇撴灉錛?BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>winter<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>spring<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>summer<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>autumn<BR><BR>渚嬩簩錛歔2 + 2, [1, 2, 3, 4], "whatnot"]<BR>渚嬩笁錛?..5錛岀瓑鍚屼簬[2, 3, 4, 5]錛?..2錛岀瓑鍚屼簬[5,4,3,2]銆傛敞鎰忔柟鎷彿鏄笉闇瑕佺殑銆?BR><BR><STRONG>Hashes(鏁e垪)</STRONG>錛嶇敱閫楀彿鍒嗛殧鐨勯敭-鍊煎垪琛紝鐢卞ぇ鎷彿闄愬畾錛岄敭鍜屽間箣闂寸敤鍐掑彿鍒嗛殧錛歿"name":"green mouse", "price":150}錛岄敭鍜屽奸兘鏄〃杈懼紡錛屼絾鏄敭蹇呴』鏄瓧絎︿覆銆?/P> <P><STRONG>鑾峰彇鍙橀噺</STRONG>錛?{variable}錛屽彉閲忓悕鍙兘鏄瓧姣嶃佹暟瀛椼佷笅鍒掔嚎銆?銆丂鍜?鐨勭粍鍚堬紝涓斾笉鑳戒互鏁板瓧寮澶淬備笅鍒楄〃杈懼紡鏄瓑浠風殑錛?BR>book.author.name<BR>book["author"].name<BR>book.author.["name"]<BR>book["author"]["name"]<BR><BR>鑾峰彇Sequence(搴忓垪)鐗囨柇錛嶄嬌鐢╗startindex..endindex]錛屼緥濡傦細seq涓瓨鍌ㄤ簡"a", "b", "c", "d","e"錛岄偅涔坰eq[1..2]鍖呭惈浜哹鍜宑涓や釜鍊箋?BR><BR>鍙互浣跨敤.variablename璇硶璁塊棶FreeMarker鍐呯疆鍙橀噺銆?/P> <P><STRONG>瀛楃涓叉搷浣?/STRONG><BR>{"Hello ${user}!"} <==> ${"Hello " + user + "!"}<BR>${"${user}${user}${user}${user}"} <==> ${user + user + user + user}</P> <P>${鈥鍙兘鍦ㄦ枃鏈腑浣跨敤錛屼笅闈㈡槸閿欒鐨勪唬鐮侊細<BR><#if ${isBig}>Wow!</#if> <BR><#if "${isBig}">Wow!</#if>  //姝ゅ鐨勪唬鐮佷篃鏄敊璇殑錛屽洜涓篿f鎸囦護闇瑕佺殑鏄痓oolean錛屽疄闄呯殑鍗存槸涓瓧絎︿覆</P> <P>瀛愬瓧絎︿覆鐨勬搷浣滐紝鍋囪user鐨勫間負"Big Joe"錛?BR>${user[0]}${user[4]}  <==>  BJ<BR>${user[1..4]}  <==> ig J </P> <P><STRONG>Sequences(搴忓垪)鎿嶄綔</STRONG></P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#list </SPAN><SPAN style="COLOR: #ff0000"><FONT color=#000000>["Joe", "Fred"] + ["Julia", "Kate"] as user</FONT></SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>- ${user}<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">#list</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN></DIV></DIV> <P>緇撴灉錛?BR>- Joe<BR>- Fred<BR>- Julia<BR>- Kate</P> <P><STRONG>Hashes(鏁e垪)鎿嶄綔</STRONG></P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><STRONG><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></STRONG><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#assign </SPAN><SPAN style="COLOR: #ff0000"><FONT color=#000000>ages</FONT> </SPAN><SPAN style="COLOR: #0000ff">= <FONT color=#000000>{"Joe":23, </FONT></SPAN><SPAN style="COLOR: #ff0000"><FONT color=#000000>"Fred":25} + {"Joe":30, "Julia":18}</FONT></SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>- Joe is ${ages.Joe}<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>- Fred is ${ages.Fred}<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>- Julia is ${ages.Julia}  </SPAN></DIV></DIV> <P>緇撴灉錛?BR>- Joe is 30<BR>- Fred is 25<BR>- Julia is 18  </P> <P><STRONG>綆楁湳榪愮畻</STRONG></P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><STRONG><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></STRONG><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000"><FONT color=#000000>x鐨勫艱瀹氫負5</FONT> --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${x * x - 100}<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${x / 2}<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${12 % 10}</SPAN></DIV></DIV> <P>緇撴灉錛?BR>-75<BR>2.5<BR>2 <BR><BR>娉ㄦ剰錛?鎿嶄綔絎︿袱杈瑰繀欏繪槸鏁板瓧錛涗嬌鐢?+"鏃訛紝濡傛灉涓杈規槸鏁板瓧錛屼竴杈規槸瀛楃涓詫紝灝變細鑷姩灝嗘暟瀛楄漿鎹負瀛楃涓層?BR><BR>浣跨敤鍐呭緩鐨勬寚浠nt<STRONG>鑾峰緱鏁存暟閮ㄥ垎</STRONG>錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV>${(x/2)?int}<BR>${1.1?int}<BR>${1.999?int}<BR>${-1.1?int}<BR>${-1.999?int}</DIV></DIV> <P>緇撴灉錛?BR>2<BR>1<BR>1<BR>-1<BR>-1</P> <P><STRONG>姣旇緝鎿嶄綔絎?/STRONG>錛?lt;#if expression>...</#if><BR>1.)浣跨敤=錛堟垨==錛屽畬鍏ㄧ浉絳夛級嫻嬭瘯涓や釜鍊兼槸鍚︾浉絳夛紝浣跨敤!= 嫻嬭瘯涓や釜鍊兼槸鍚︿笉鐩哥瓑<BR>2.)=鍜?=涓よ竟蹇呴』鏄浉鍚岀被鍨嬬殑鍊鹼紝鍚﹀垯浼氫駭鐢熼敊璇紝渚嬪<#if 1 = "1">浼氬紩璧烽敊璇?BR>3.)Freemarker鏄簿紜瘮杈冿紝鎵浠?x"銆?x  "鍜?X"鏄笉鐩哥瓑鐨?BR>4.)瀵規暟瀛楀拰鏃ユ湡鍙互浣跨敤<銆?lt;=銆?gt;鍜?gt;=錛屼絾涓嶈兘鐢ㄤ簬瀛楃涓?BR>5.)鐢變簬Freemarker浼氬皢>瑙i噴鎴怓TL鏍囪鐨勭粨鏉熷瓧絎︼紝鎵浠ュ浜?gt;鍜?gt;=鍙互浣跨敤鎷彿鏉ラ伩鍏嶈繖縐嶆儏鍐碉紝渚嬪<#if (x > y)>錛屽彟涓縐嶆浛浠g殑鏂規硶鏄紝浣跨敤lt銆乴te銆乬t鍜実te鏉ユ浛浠?lt;銆?lt;=銆?gt;鍜?gt;=</P> <P><STRONG>閫昏緫鎿嶄綔絎?/STRONG>錛?amp;&(and)銆亅|(or)銆?(not)錛屽彧鑳界敤浜庡竷灝斿鹼紝鍚﹀垯浼氫駭鐢熼敊璇?BR><#if x < 12 && color = "green"><BR>  We have less than 12 things, and they are green.<BR></#if><BR><#if !hot> <#-- here hot must be a boolean --><BR>  It's not hot.<BR></#if>  </P> <P><STRONG>鍐呯疆鍑芥暟</STRONG>錛嶇敤娉曠被浼艱闂甴ash(鏁e垪)鐨勫瓙鍙橀噺錛屽彧鏄嬌鐢??"鏇夸唬"."錛屼緥濡傦細user?upper_case<BR>涓嬮潰鍒楀嚭甯哥敤鐨勪竴浜涘嚱鏁幫細<BR><U>瀵逛簬瀛楃涓?/U><BR>html錛嶅瀛楃涓茶繘琛孒TML緙栫爜<BR>cap_first錛嶄嬌瀛楃涓茬涓涓瓧姣嶅ぇ鍐?BR>lower_case錛嶅皢瀛楃涓茶漿鎹㈡垚灝忓啓<BR>trim錛嶅幓鎺夊瓧絎︿覆鍓嶅悗鐨勭┖鐧藉瓧絎?BR><U>瀵逛簬Sequences(搴忓垪)<BR></U>size錛嶈幏寰楀簭鍒椾腑鍏冪礌鐨勬暟鐩?BR><U>瀵逛簬鏁板瓧<BR></U>int錛嶅彇寰楁暟瀛楃殑鏁存暟閮ㄥ垎錛堝-1.9?int鐨勭粨鏋滄槸-1錛?BR><BR>渚嬩竴錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000"><FONT color=#000000>test鐨勫間負Tom & Jerry</FONT> --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${test?html}<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${test?upper_case?html}</SPAN></DIV></DIV> <P>緇撴灉錛?BR>Tom &amp; Jerry<BR>TOM &amp; JERRY <BR><BR>渚嬩簩錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000"><FONT color=#000000>seasons鐨勫間負"winter", "spring", "summer", "autumn"</FONT> --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"> <BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${seasons?size}<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${seasons[1]?cap_first} </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000"><FONT color=#000000>left side can by any expression</FONT> --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${"horse"?cap_first}  </SPAN></DIV></DIV> <P>緇撴灉錛?BR>4<BR>Spring<BR>Horse  </P> <P><STRONG>鏂規硶鐨勮皟鐢?/STRONG><BR>${repeat("What", 3)} <BR>${repeat(repeat("x", 2), 3) + repeat("What", 4)?upper_case} <BR>緇撴灉錛?BR>WhatWhatWhat<BR>xxxxxxWHATWHATWHATWHAT </P> <P><STRONG>鎿嶄綔絎︿紭鍏堥『搴?/STRONG><BR>鍚庣紑            [subvarName] [subStringRange] . (methodParams)<BR>涓鍏?nbsp;           +expr銆?expr銆?<BR>鍐呭緩            ?<BR>涔樻硶            *銆?/ 銆?<BR>鍔犳硶            +銆?<BR>鍏崇郴            <銆?gt;銆?lt;=銆?gt;=錛坙t銆乴te銆乬t銆乬te錛?BR>鐩哥瓑            =銆?=<BR>閫昏緫            &&<BR>閫昏緫            ||<BR>鏁板瓧鑼冨洿      ..</P> <P>涓?) <STRONG>Interpolation</STRONG>錛氱敱${...}鎴?{...}涓ょ綾誨瀷錛岃緭鍑鴻綆楀鹼紝鍙互瀹氫箟杈撳嚭鐨勬牸寮?BR>渚嬩竴錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#setting </SPAN><SPAN style="COLOR: #ff0000">number_format</SPAN><SPAN style="COLOR: #0000ff">="currency"</SPAN><SPAN style="COLOR: #0000ff">/></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#assign </SPAN><SPAN style="COLOR: #ff0000">answer</SPAN><SPAN style="COLOR: #0000ff">=42/><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff0000"><FONT color=#000000>${answer}<BR></FONT><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><FONT color=#000000>${answer?string}</FONT>  <FONT color=#000000><#-- the same as ${answer} --</FONT></SPAN><SPAN style="COLOR: #0000ff"><FONT color=#000000>></FONT></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${answer?string.number}<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${answer?string.currency}<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${answer?string.percent} </SPAN></DIV></DIV> <P>緇撴灉錛?BR>$42.00<BR>$42.00<BR>42<BR>$42.00<BR>4,200%</P> <P>渚嬩簩錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">${lastUpdated?string("yyyy-MM-dd HH:mm:ss zzzz")}<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${lastUpdated?string("EEE, MMM d, ''yy")}<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>${lastUpdated?string("EEEE, MMMM dd, yyyy, hh:mm:ss a '('zzz')'")}  </SPAN></DIV></DIV> <P>緇撴灉錛?BR>2003-04-08 21:24:44 Pacific Daylight Time<BR>Tue, Apr 8, '03<BR>Tuesday, April 08, 2003, 09:24:44 PM (PDT)</P> <P>渚嬩笁錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#assign </SPAN><SPAN style="COLOR: #ff0000">foo</SPAN><SPAN style="COLOR: #0000ff">=true/><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff0000"><FONT color=#000000>${foo?string("yes", "no")}</FONT></SPAN></DIV></DIV> <P>緇撴灉錛?BR>yes</P> <P>渚嬪洓錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000"><FONT color=#000000>x is 2.582 and y is 4</FONT> --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>#{x; M2}   </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#--<FONT color=#0000ff> </FONT></SPAN><SPAN style="COLOR: #ff0000"><FONT color=#0000ff>2.58</FONT> --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>#{y; M2}   </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000"><FONT color=#0000ff>4 </FONT>   --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>#{x; m1}   </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000"><FONT color=#0000ff>2.6</FONT> --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>#{y; m1}   </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000"><FONT color=#0000ff>4.0</FONT> --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>#{x; m1M2} </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000"><FONT color=#0000ff>2.58</FONT> --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>#{y; m1M2} </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#-- </SPAN><SPAN style="COLOR: #ff0000"><FONT color=#0000ff>4.0</FONT>  --</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">  </SPAN></DIV></DIV> <P>璇存槑錛歮X錛嶅皬鏁伴儴鍒嗘渶灝廥浣嶏紱MX錛嶅皬鏁伴儴鍒嗘渶澶浣嶃?/P> <P>鍥?) <STRONG>娉ㄩ噴</STRONG>錛?lt;#--鍜?-> </P> <P>涓嬮潰鏄竴涓父鐢ㄧ殑妯℃澘渚嬪瓙錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">p</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">We have these animals:<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">table </SPAN><SPAN style="COLOR: #ff0000">border</SPAN><SPAN style="COLOR: #0000ff">=1><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #ff0000"><tr</SPAN><SPAN style="COLOR: #0000ff">><</SPAN><SPAN style="COLOR: #800000">th</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">Name</SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">th</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">Price<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#list </SPAN><SPAN style="COLOR: #ff0000">animals as being</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">tr</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>    </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">td</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>      </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#if </SPAN><SPAN style="COLOR: #ff0000">being.size </SPAN><SPAN style="COLOR: #0000ff">= "large"</SPAN><SPAN style="COLOR: #0000ff">><</SPAN><SPAN style="COLOR: #800000">b</SPAN><SPAN style="COLOR: #0000ff">></</SPAN><SPAN style="COLOR: #800000">#if</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>      ${being.name}<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>      </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#if </SPAN><SPAN style="COLOR: #ff0000">being.size</SPAN><SPAN style="COLOR: #0000ff">="large"</SPAN><SPAN style="COLOR: #0000ff">></</SPAN><SPAN style="COLOR: #800000">b</SPAN><SPAN style="COLOR: #0000ff">></</SPAN><SPAN style="COLOR: #800000">#if</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>    </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">td</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">${being.price} Euros<BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">#list</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top> </SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">table</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"> <BR><IMG src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">#include </SPAN><SPAN style="COLOR: #ff0000">"/copyright_footer.html"</SPAN><SPAN style="COLOR: #0000ff">></SPAN></DIV></DIV> <P><STRONG>娉ㄦ剰鐐?/STRONG>錛?BR>1.) FreeMarker鏄尯鍒嗗ぇ灝忓啓鐨勶紱<BR>2.) FTL鏍囪涓嶈兘浣嶄簬鍙︿竴涓狥TL鏍囪鍐呴儴錛屼緥濡傦細<#if <#include 'foo'>='bar'>...</if>錛?BR>3.) ${鈥鍙兘鍦ㄦ枃鏈腑浣跨敤錛?BR>4.) 澶氫綑鐨勭┖鐧藉瓧絎︿細鍦ㄦā鏉胯緭鍑烘椂鍘婚櫎錛?BR>5.) 濡傛灉浣跨敤鐨勬寚浠や笉瀛樺湪錛屼細浜х敓涓涓敊璇秷鎭?/P> <P><BR>鍙傝冿細    <A blog - FreeMarker璁捐鎸囧崡</A><BR>              <A >FreeMarker  in sourceforge.net</A></P><img src ="http://www.tkk7.com/pepsixp/aggbug/1685.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/pepsixp/" target="_blank">闃垮鏂.</a> 2005-03-11 11:00 <a href="http://www.tkk7.com/pepsixp/archive/2005/03/11/1685.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>J2EE涓殑鍒嗛〉(緲昏瘧)http://www.tkk7.com/pepsixp/archive/2005/02/22/1429.html闃垮鏂.闃垮鏂.Tue, 22 Feb 2005 14:33:00 GMThttp://www.tkk7.com/pepsixp/archive/2005/02/22/1429.htmlhttp://www.tkk7.com/pepsixp/comments/1429.htmlhttp://www.tkk7.com/pepsixp/archive/2005/02/22/1429.html#Feedback3http://www.tkk7.com/pepsixp/comments/commentRss/1429.htmlhttp://www.tkk7.com/pepsixp/services/trackbacks/1429.html闃呰鍏ㄦ枃

闃垮鏂. 2005-02-22 22:33 鍙戣〃璇勮
]]>
Tom灝忕尗錛岃鎴戠湅娓呬綘鐨勪簲鑴忓叚鑵戯紙涓夛級 http://www.tkk7.com/pepsixp/archive/2005/02/18/1305.html闃垮鏂.闃垮鏂.Fri, 18 Feb 2005 14:41:00 GMThttp://www.tkk7.com/pepsixp/archive/2005/02/18/1305.htmlhttp://www.tkk7.com/pepsixp/comments/1305.htmlhttp://www.tkk7.com/pepsixp/archive/2005/02/18/1305.html#Feedback0http://www.tkk7.com/pepsixp/comments/commentRss/1305.htmlhttp://www.tkk7.com/pepsixp/services/trackbacks/1305.htmlServlet榪囨護鍣?/STRONG>
鍦↗ava Servlet2.3涓畾涔夛紝鑳藉瀵筍ervlet瀹瑰櫒鐨勮姹傚拰鍝嶅簲瀵硅薄榪涜媯鏌ュ拰淇敼銆傛墍鏈夌殑榪囨護鍣ㄧ被閮藉繀欏誨疄鐜癹avax.servlet.Filter鎺ュ彛錛屽叾涓?STRONG>鏈変笁涓渶瑕佸疄鐜扮殑鏂規硶
錛?BR>init(FilterConfig)錛嶄竴涓垵濮嬪寲鏂規硶錛孲ervlet瀹瑰櫒鍒涘緩榪囨護鍣ㄧ被鍚庡皢璋冪敤榪欎釜鏂規硶錛屽湪姝ゆ柟娉曚腑鍙互璇誨彇web.xml鏂囦歡涓殑Servlet榪囨護鍣ㄧ殑鍒濆鍖栧弬鏁般?BR>doFilter(ServletRequest,ServletResponse,FilterChain)錛嶅疄闄呯殑榪囨護鎿嶄綔錛孎ilterChain鍙傛暟鐢ㄤ簬璁塊棶鍚庨潰鐨勮繃婊ゅ櫒銆?BR>destroy()錛嶇敤鏉ラ噴鏀炬煇浜汼ervlet榪囨護鍣ㄥ崰鐢ㄧ殑璧勬簮銆?/P>

涓嬮潰鏄竴涓В鍐充腑鏂囦貢鐮侀棶棰樺緢鏈夌敤鐨勪竴涓繃婊ゅ櫒錛?/P>

public class SetCharacterEncodingFilter implements Filter {
    
    
public void destroy() {}
  
    
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain)
       throws IOException, ServletException 
{

    request.setCharacterEncoding(
"GB2312");
    chain.doFilter(request, response);
    }


    
public void init(FilterConfig filterConfig) throws ServletException {}
}

鍙戝竷Servlet榪囨護鍣?/STRONG>錛嶅湪web.xml鍦ㄦ枃浠朵腑鍔犲叆<filter>鍏冪礌鍜?lt;filter-mapping>鍏冪礌

涓嬮潰鐨勪緥瀛愪腑Servlet榪囨護鍣ㄤ細榪囨護鎵鏈夌殑URL錛?/P>

<filter> 
<filter-name>Set Character Encoding</filter-name> 
<filter-class>SetCharacterEncodingFilter</filter-class> 
</filter> 
<filter-mapping> 
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern> 
</filter-mapping>

涓茶繛Servlet榪囨護鍣?/STRONG>
澶氫釜Servlet榪囨護鍣ㄥ彲浠ュ崗鍚屽伐浣滐紝Servlet瀹瑰櫒灝嗘牴鎹畠浠湪web.xml涓畾涔夌殑鍏堝悗欏哄簭錛屼緷嬈¤皟鐢ㄥ畠浠殑doFilter()鏂規硶銆?BR>宸ヤ綔嫻佺▼濡備笅錛?BR> Code1; // 琛ㄧず璋冪敤chain.doFilter()鍓嶉潰鐨勪唬鐮?BR> chain.doFilter();  // 琛ㄧず璋冪敤涓嬩竴涓繃婊ゅ櫒鐨刣oFilter()鏂規硶
 Code2; // 琛ㄧず璋冪敤chain.doFilter()鍚庨潰鐨勪唬鐮?/P>

鑷畾涔塉SP鏍囩搴?BR>姝ゆ妧鏈湪JSP 1.1鐗堟湰涓墠鍑虹幇錛岀敤鏉ラ噸鐢ㄦ煇浜涘鏉傜殑閫昏緫榪愮畻鍜屼簨鍔★紝鎴栧畾涔塉SP鐜嬬埛鐨勮緭鍑哄唴瀹瑰拰鏍煎紡銆傚埗浣滀竴涓畬鏁寸殑鑷畾涔夋爣絳劇▼搴忥紝鍖呭惈3涓楠わ細

1. 鍒涘緩鏍囩鐨勫鐞嗙被
姝ょ被蹇呴』鎵╁睍javax.servlet.jsp.TagSupport綾繪垨鑰卝avax.servlet.jsp.BodyTagSupport綾匯?BR>浠agSupport綾諱負渚嬶紝鍏堜簡瑙d竴涓嬭繖涓被鐨勪富瑕佹柟娉曪細
doStartTag()錛岼SP瀹瑰櫒閬囧埌鑷畾涔夋爣絳劇殑璧峰鏍囧織鏃惰皟鐢ㄨ鏂規硶錛?BR>doEndTag()錛岼SP瀹瑰櫒閬囧埌鑷畾涔夋爣絳劇殑緇撴潫鏍囧織鏃惰皟鐢ㄨ鏂規硶錛?BR>setValue(String k,Object o)錛嶅湪鏍囩澶勭悊綾諱腑璁劇疆key/value;
getValue(String k)錛嶅湪鏍囩澶勭悊綾諱腑鏍規嵁key榪斿洖鍖歸厤鐨剉alue;
removeValue(String k)錛嶅湪鏍囩澶勭悊綾諱腑鍒犻櫎key/value;
setPageContext(PageContext pc)錛嶈緗甈ageContext瀵硅薄錛岃鏂規硶鍦ㄨ皟鐢╠oStartTag()鍜宒oStartTag()鍓嶈皟鐢紱
setParent(Tag t)錛嶈緗祵濂楀綋鍓嶆爣絳劇殑涓婂眰鏍囩鐨勫鐞嗙被錛岃鏂規硶鍦ㄨ皟鐢╠oStartTag()鍜宒oStartTag()鍓嶈皟鐢紱
getParent()錛嶈繑鍥炲祵濂楀綋鍓嶆爣絳劇殑涓婂眰鏍囩鐨勫鐞嗙被銆?BR>
棣栧厛璋冪敤setPageContext(PageContext pc)鍜宻etParent(Tag t)錛岃緗甌agSupport綾葷殑涓や釜閲嶈灞炴у箋?BR>
濡傛灉閬囧埌璧峰鏍囧織錛岃皟鐢╠oStartTag()錛屾鏂規硶榪斿洖涓涓暣鏁板鹼紝瀹冩湁涓や釜鍙夊鹼細Tag.SKIP_BODY(鏍囩涔嬮棿鐨勫唴瀹硅蹇界暐)鍜孴ag.EVAL_BODY_INCLUDE(鏍囩涔嬮棿鐨勫唴瀹規甯告墽琛?銆?BR>渚嬪錛?lt;prefix:mytag>test</prefix:mytag>錛屽鏋滈亣涓奣ag.SKIP_BODY錛宼est瀛楃涓蹭笉浼氭樉紺哄湪欏甸潰涓婏紱濡傛灉閬囦笂Tag.EVAL_BODY_INCLUDE錛宼est瀛楃涓插皢浼氭樉紺哄湪欏甸潰涓娿?BR>
濡傛灉閬囧埌緇撴潫鏍囧織錛岃皟鐢╠oEndTag()錛屾鏂規硶涔熻繑鍥炰竴涓暣鏁板鹼紝瀹冩湁涓や釜鍙夊鹼細Tag.SKIP_PAGE(琛ㄧず绔嬪埢鍋滄鎵цJSP欏甸潰錛岀綉欏典笂鏈鐞嗙殑闈欐佸唴瀹瑰拰JSP紼嬪簭鍧囧埆蹇界暐錛屼換浣曞凡鏈夌殑杈撳嚭鍐呭绔嬪埢榪斿洖鍒板鎴風錛?鍜孴ag.EVAL_PAGE(琛ㄧず鎸夋甯告祦紼嬬戶緇墽琛孞SP欏甸潰)銆?BR>
濡傛灉鑷畾涔夋爣絳懼寘鍚嚜瀹氫箟鐨勫睘鎬э紝渚嬪錛?lt;prefix:mytag attribute1="value1">錛岄偅涔堝鐞嗙被涓簲璇ュ皢榪欎釜灞炴у仛涓烘垚鍛樺彉閲忥紝騫舵彁渚涗竴緇刧et鍜宻et鏂規硶錛?BR>private int attribute1;
public void setAttribute1(int value){
 this.attriubte1 = value;
}
public int getAttribute1(){
 return attribute1;
}

涓嬮潰鏄竴涓敤鏉ラ獙璇佺敤鎴風櫥闄嗙殑鏍囩澶勭悊綾諱緥瀛愶細

public class ValidateLoginTag extends TagSupport{
    
private String name;
    
private String password;
    
private Log log = LogFactory.getLog(ValidateLoginTag.class);

    
public int doEndTag() throws JspException{

       
if(name.equals("pepsixp"&& password.equals("888888")){
             
return(EVAL_PAGE);
          }

        
return (SKIP_PAGE);
    }


    
public String getName() {
        
return name;
    }


    
public void setName(String name) {
        
this.name = name;
    }


    
public String getPassword() {
        
return password;
    }


    
public void setPassword(String password) {
        
this.password = password;
    }

}

2.鍒涘緩TLD錛峊ag Library Descriptor(鏍囩搴撴弿榪版枃浠?
TLD鏂囦歡涓厓绱犲彲浠ュ垎涓轟笁綾伙細<tablib>銆?lt;tag>銆?lt;attribute>
<tablib>錛嶈瀹氭爣絳懼簱鐨勭浉鍏充俊鎭紝鍖呭惈鐨勫瓙鍏冪礌鏈塼libversion銆乯spversion銆乻hortname銆乽ri銆乮nfo銆乼ag銆?BR><tag>錛嶇敤鏉ュ畾涔変竴涓爣絳撅紝鍖呭惈鐨勫瓙鍏冪礌鏈塶ame銆乼agcalss銆乥odycontent銆乮nfo銆乤ttribute銆?BR>bodycontent鐨勮鏄庯細鏈変笁涓彲閫夊糴mpty銆丣SP銆乼agdependent錛宔mpty琛ㄧず鏍囩涓病鏈塨ody錛孞SP琛ㄧずbody涓彲浠ュ姞鍏SP紼嬪簭浠g爜錛宼agdependent琛ㄧずbody鐨勫唴瀹規湁鏍囩榪涜澶勭悊銆?BR><attribute>錛嶇敤鏉ュ畾涔夋爣絳劇殑灞炴э紝鍖呭惈鐨勫瓙鍏冪礌鏈塶ame銆乺equired銆乺texprvalue銆?BR>rtexprvalue鐨勮鏄庯細琛ㄧず鏄惁鍙互浣跨敤<%=...%>綾誨瀷鐨勮〃杈懼紡錛?BR>渚嬪錛?lt;prefix:mytaglib attribute1="<%=name%>">
涓嬮潰鏄竴涓畝鍗曠殑TLD鏂囦歡錛?/P>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">

<taglib>
    
<tlibversion>1.2</tlibversion>
    
<jspversion>1.1</jspversion>
    
<shortname>MY Tag Library</shortname>
    
<uri>http://www.tkk7.com/pepsixp/</uri>
    
<info></info>
    
<tag>
        
<name>ifLogin</name>
        
<tagclass>com.akazam.struts.taglib.ValidateLoginTag</tagclass>
        
<bodycontent>empty</bodycontent>
        
<info></info>
        
<attribute>
            
<name>name</name>
            
<required>true</required>
            
<rtexprvalue>true</rtexprvalue>
        
</attribute>
        
<attribute>
            
<name>password</name>
            
<required>true</required>
            
<rtexprvalue>true</rtexprvalue>
        
</attribute>
    
</tag>
</taglib>

瀹為檯涓殑浣跨敤錛?BR><%@ taglib uri="/tags/test" prefix="test" %>
<test:ifLogin name="pepsixp" password="888888"/>

3.鍦╳eb搴旂敤涓嬌鐢ㄦ爣絳?/STRONG>
鍏堣鍦╳eb.xml鏂囦歡鍔犲叆澹版槑寮曠敤鏍囩鎵鍦ㄧ殑鏍囩錛?BR>

<taglib>
        
<taglib-uri>/tags/test</taglib-uri>
        
<taglib-location>/WEB-INF/test.tld</taglib-location>
</taglib>


鍙傝冿細銆奣omcat涓嶫avaWeb寮鍙戞妧鏈瑙c?/FONT>



]]>
Tom灝忕尗錛岃鎴戠湅娓呬綘鐨勪簲鑴忓叚鑵戯紙浜岋級http://www.tkk7.com/pepsixp/archive/2005/02/16/1261.html闃垮鏂.闃垮鏂.Wed, 16 Feb 2005 15:29:00 GMThttp://www.tkk7.com/pepsixp/archive/2005/02/16/1261.htmlhttp://www.tkk7.com/pepsixp/comments/1261.htmlhttp://www.tkk7.com/pepsixp/archive/2005/02/16/1261.html#Feedback0http://www.tkk7.com/pepsixp/comments/commentRss/1261.htmlhttp://www.tkk7.com/pepsixp/services/trackbacks/1261.html

瀹夊叏鍩?/STRONG>
榪欐槸Tomcat鏈嶅姟鍣ㄧ敤鏉ヤ繚鎶eb搴旂敤璧勬簮鐨勪竴縐嶆満鍒躲備竴涓敤鎴峰彲浠ユ嫢鏈変竴涓垨澶氫釜瑙掕壊錛屾瘡涓鑹查檺瀹氫簡鍙闂殑Web璧勬簮錛岃繖鏍峰氨灝嗙敤鎴峰拰Web璧勬簮瀵瑰簲璧鋒潵浜嗐傚湪org.apache.catalina.Realm鎺ュ彛涓0鍚嶄簡灝嗙敤鎴峰悕銆佸彛浠ゅ拰瑙掕壊鐩哥鐞嗙殑鏂規硶錛孴omcat5鎻愪緵浜?涓疄鐜拌繖涓鎺ュ彛鐨勭被錛屽垎鍒負錛歁emoryRealm(XML鏂囦歡璇誨彇)銆丣DBCRealm(JDBC椹卞姩紼嬪簭璇誨彇)銆丏ataSourceRealm(JNDI鏁版嵁婧愯鍙?銆丣NDIRealm(JNDI provider璇誨彇LDAP鐨勭洰褰曟湇鍔″櫒淇℃伅)銆?/FONT>

Web璧勬簮鐨勮緗?BR>闇瑕佸湪web.xml鏂囦歡涓姞鍏?lt;security-constraint>銆?lt;login-config>銆?lt;security-role>鍏冪礌銆?BR>渚嬪鍦═omcat鐨刟dmin搴旂敤涓殑閰嶇疆錛?/FONT>

<security-constraint>
    <display-name>Tomcat Server Configuration Security Constraint</display-name>
    <web-resource-collection>
    <web-resource>Protected Area</web-resource>
        <url-pattern>*.htm</url-pattern>
        <url-pattern>*.jsp</url-pattern>
        <url-pattern>*.do</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>admin</role-name>
    </auth-constraint>
</security-constraint>

涓婇潰鐨勪唬鐮佽〃鏄庯細鍙湁admin瑙掕壊鎵嶈兘璁塊棶admin搴旂敤涓殑*.jsp銆?.do鍜?.html璧勬簮銆?BR>鍙︿竴涓緥瀛愭槸jsp-examples搴旂敤錛?BR>

<sercurity-constraint>
    <display-name>Tomcat Server Configuration Security Constraint</display-name>
    <web-resource-collection>
        <web-resource>Protected Area</web-resource>
        <url-pattern>/security/protected/*</url-pattern>
        <http-method>DELETE</http-method>
     
<http-method>GET</http-method>
     
<http-method>POST</http-method>
     
<http-method>PUT</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>tomcat</role-name>
     
<role-name>role1</role-name>
    
</auth-constraint>
</security-constraint>

涓婇潰鐨勪唬鐮佽〃鏄庯細鍙tomcat鍜宺ole1瑙掕壊鎵嶅彲浠ヤ互DELETE銆丟ET銆丳OST鍜孏ET鏂瑰紡璁塊棶jsp-exzmples搴旂敤URL涓?security/protected/涓嬬殑璧勬簮銆?BR>鍦╳eb.xml涓姞鍏?lt;login-config>鍏冪礌錛嶇郴緇熶細浠ュ璇濇鐨勬柟寮忚繘琛岀櫥闄?BR>

<login-config>
    <auth-method>FORM</auth-method>
 
<realm-name>Tomcat Configuration Form-Baseed Authenticaton Area</realm-name>
 
<from-login-config>
       
<from-login-page>/login/login.jsp</from-login-page>
    
<from-error-page>/error.jsp</from-error-page>
 
<from-login-config>
</login-config>

<auth-method>鏈変笁涓彲閫夐」錛欱ASIC銆丏IGEST銆丗ORM銆?BR>BASIC錛嶅熀鏈獙璇侊細璁塊棶鍙椾繚鎶よ祫婧愭椂錛屼細寮瑰嚭涓瀵硅瘽妗嗐傝姹傝緭鍏ョ敤鎴峰悕鍜屽瘑鐮侊紝濡傛灉榪炵畫3嬈″け璐ュ悗錛屼細鏄劇ず涓涓敊璇〉闈€傝繖涓柟娉曠殑緙虹偣鏄敤鎴峰悕鍜屽瘑鐮佺殑鏁版嵁浼犺緭閲囩敤鐨勬槸Base64緙栫爜(鍙鏂囨湰)錛屾槸闈炲父涓嶅畨鍏ㄧ殑銆?BR>DIGEST錛嶆憳瑕侀獙璇侊細鏁版嵁閲囩敤MD5瀵圭敤鎴峰悕鍜屽瘑鐮佽繘琛屽姞瀵嗭紝鐒跺悗鍐嶄紶杈擄紝鏄劇劧榪欑鏂規硶寰堝畨鍏ㄣ?BR>FORM錛嶈〃鍗曢獙璇侊細鍙互浣跨敤鑷畾涔夌殑鐧婚檰欏甸潰錛屼絾鐢ㄦ埛鍚嶅搴旂殑鏂囨湰妗嗗悕縐板繀欏繪槸j_username,瀵嗙爜涓簀_password錛屼笖琛ㄥ崟action鍊間負j_security_check銆?BR>鍦╳eb.xml涓姞鍏?lt;security-role>鍏冪礌錛嶆寚鏄庤繖涓猈eb搴旂敤搴旂敤鐨勬墍鏈夎鑹茬殑鍚嶅瓧

<security-role>
    <description>The role that is required to lon in to the Administration Application.</description>
 
<role-name>admin</role-name>
 
<role-name>friend</role-name>
</security-role>

浣犲彲浠ヨ皟鐢℉ttpRequeset鎺ュ彛鐨刧etRemoteUser()鏂規硶榪斿洖褰撳墠鐢ㄦ埛鐨勫悕瀛楋細<%=request.getRemoteUser()%>


鍐呭瓨鍩?/STRONG>錛嶇敱org.apache.catalina.realm.MemoryRelam綾誨疄鐜?BR>灝忕尗鍚姩鏃訛紝鑷姩璇誨彇<%CATALINA_HOME%>/conf/tomcat-users.xml鏂囦歡錛岃鍦╓eb搴旂敤涓嬌鐢紝鍙互鍦ㄥ搴旂殑<Context>鍏冪礌鍐呭姞鍏ュ涓嬪唴瀹癸細<Realm className="org.apache.catalina.realm.MemoryRelam"/>

JDBC鍩?/STRONG>錛嶉氳繃JDBC椹卞姩浠庢暟鎹簱涓洿鎺ヨ鍙栭獙璇佷俊鎭紝閫氳繃楠岃瘉鍚庯紝淇℃伅浼氬瓨鍌ㄥ湪session涓?BR>鍦╩ysql涓柊寤轟袱寮犺〃錛?/P>

create table users{user_name varchar(15not null primary key,user_pass varchar(15not null };
create table usr_roles{usr_name varchar(15not null,role_name varchar(15not null,
  primary key(user_name,role_name)};

鐒跺悗鍦╯erver.xml涓姞鍏ワ細

<Realm className="org.apache.catalina.realm.JDBCRealm" driverName="com.mysql.jdbc.Driver" 
             debug
="0" connectionURL="jdbc:mysql://localhost/tomcatusers" connectionName="roor" 
             connectonPassword
="" userTable="users" userNameCol="user_name" 
             userCredCol
="user_pass" userRoleTable="user_roles" roleNameCol="role_name">

DataSource鍩?/STRONG>錛嶅拰JDBC鍩熷緢綾諱技錛屽彧涓嶈繃璁塊棶鏁版嵁搴撶殑鏂瑰紡涓嶅悓錛岃繖涓槸浣跨敤JNDI DataSource鏉ヨ闂暟鎹簱鐨勩?BR>鍏堝湪web.xml涓姞鍏ュ畨鍏ㄧ害鏉燂紝鍦ㄥ拰JDBC鍩熶竴鏍鋒柊寤轟袱寮犺〃錛岀劧鍚庡湪server.xml鏂囦歡鐨?lt;GlobalNamingResources>鍏冪礌涓嬫坊鍔犲涓嬪唴瀹癸細

<Resource name="jdbc/tomcatusers" auth="Container" type="javx.sql.DataSource"/>
<ResourceParams name="jdbc/tomcatusers">
    <parameter>
    
<name>factory</name>
    
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
 
</parameter>
 
<parameter>
     
<name>maxActiove</name>
    
<value>100</value>
 
</parameter>
 
<parameter>
    
<name>maxIdle</name>
    
<value>30</value>
 
</parameter>
 
<parameter>
     
<name>maxWait</name>
    
<value>10000</value>
 
</parameter>
 
<parameter>
     
<name>username</name>
     
<value>root</value>
 
</parameter>
 
<parameter>
     
<name>password</name>
    
<value></value>
 
</parameter>
 
<parameter>
     
<name>driverClassName</name>
    
<value>com.mysql.jdbc.Driver</value>
 
</parameter>
 
<parameter>
     
<name>url</name>
    
<value>jdbc:mysql://localhost/tomcatusers?autoReconnect=true</value>
  
</parameter>
</ResourceParams>

娉ㄦ剰錛歍omcat鐨凧NDI璧勬簮蹇呴』閰嶇疆鍦?lt;GlobalNamingResources>鍏冪礌涓嬶紝鏈嶅姟鍣ㄦ墠鑳芥壘鍒幫紝鍚﹀垯浼氬嚭鐜癗ameNotFoundException錛涗綆浜嶵omcat5.0.12鐨勭増鏈紝鍗充嬌姝g‘閰嶇疆浜咲ataSourceRealm錛屼篃浼氬嚭鐜版壘涓嶅埌JNDI DataSource鐨勫紓甯革紝榪欎釜灝忕尗鐨勪竴涓猙ug錛涘湪web.xml涓槸涓嶉渶瑕侀厤緗?lt;resource-ref>鍏冪礌鐨勶紝鍥犱負Web搴旂敤騫朵笉浼氳闂繖涓狣ataSource銆?BR>褰撶劧server.xml榪橀渶瑕佹坊鍔犲拰JDBC鍩熷嚑涔庣浉鍚岀殑浠g爜錛?/P>

<Realm className="org.apache.catalina.realm.DataSourceRealm" 
             driverName
="com.mysql.jdbc.Driver" debug="0" 
             connectionURL
="jdbc:mysql://localhost/tomcatusers" connectionName="roor" 
             connectonPassword
="" userTable="users" userNameCol="user_name" 
             userCredCol
="user_pass" userRoleTable="user_roles" roleNameCol="role_name">

Tomcat闃
鐢眔rg.apache.Catalina.Value鎺ュ彛瀹氫箟錛岃兘澶熷Catalina瀹瑰櫒鎺ユ敹鐨凥TTP Request榪涜棰勫鐞嗭紝鏄皬鐚壒鏈夌殑鍔熻兘錛屽彲浠ュ姞鍏ュ埌3縐嶅鍣ㄤ腑(Engine銆丠ost銆丆ontext)銆?BR>
瀹㈡埛璁塊棶鏃ュ織闃(Access Log Value)錛?鑳藉灝嗗彲浠ョ殑Request淇℃伅鍐欏叆鍒版棩蹇椾腑銆傚彲浠ヨ褰曢〉闈㈣闂殑嬈℃暟銆佺敤鎴稴ession媧誨姩鍜岀敤鎴烽獙璇佷俊鎭瓑銆?BR>渚嬪錛?lt;Value className="org.apache.catalina.AccessLogValue" directory="logs" prifix="localhost_access_log" suffix=".txt" pattern="%h%l%u%t%s%r%s%b" resolveHost="true">
涓婇潰鐨刾attern鍊煎彲浠ョ敤common錛屼竴涓粯璁ょ殑鍊箋?BR>pattern灞炴ц瀹氭棩蹇楃殑鏍煎紡鍜屽唴瀹癸細%a錛嶈繙紼婭P鍦板潃錛?A錛嶆湰鍦癐P鍦板潃錛?b錛嶅彂閫佺殑瀛楄妭鏁幫紝涓嶅寘鎷琀TTP Header錛?h錛嶈繙紼嬩富鏈哄悕錛?H錛嶅鎴瘋姹傛墍鐢ㄧ殑鍗忚錛?l錛?-";%m錛嶈姹傜殑鏂規硶錛?p錛嶆帴鍙楄姹傜殑鏈湴鏈嶅姟鍣ㄦ柇寮錛?q錛嶆煡璇㈠瓧絎︿覆錛?r錛嶇敤鎴瘋姹傜殑絎竴琛屽唴瀹癸紱%s錛嶅搷搴擧TTP Request鐨勭姸鎬佺爜錛?S錛嶇敤鎴稴ession ID錛?t錛嶆椂闂達紱%u錛嶉獙璇佺殑鐢ㄦ埛鍚嶏紱%U錛嶈姹俇RL璺緞錛?v錛嶆湰鍦版湇鍔″櫒鍚嶃?BR>
榪滅▼鍦板潃榪囨護鍣?/STRONG>(Remote Address Filter)錛嶆牴鎹甀P鍦板潃鍐沖畾鏄惁鎺ュ彈瀹㈡埛鐨勮姹傘?BR>渚嬪錛?lt;Value className="org.apache.catalina.RemoteAddrValue" allow="127.0.0.1" deny="127.111.*"/>

榪滅▼涓繪満榪囨護鍣?/STRONG>(Remot Host Filter)錛嶆牴鎹富鏈哄悕鍐沖畾鏄惁鎺ュ彈璇鋒眰銆?BR><Value className="org.apache.catalina.RemoteHostValue" allow="localhost" deny="monster*"/>

瀹㈡埛璇鋒眰璁板綍鍣?/STRONG>(Request Dumper)錛嶆妸瀹㈡埛璇鋒眰鐨勮緇嗕俊鎭褰曞湪鏃ュ織鏂囦歡涓紝榪欓噷鐨勬棩蹇楁枃浠舵槸鎸?lt;Logger>鍏冪礌銆?BR>鍋囧畾鍦╯erver.xml涓璴ocalhost鐨?lt;Host>鍏冪礌涓嬪凡緇忛厤緗簡<Logger>鍏冪礌錛?BR>

<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhos_log." 
              suffix
=".txt" timestamp="true"/>

鐒跺悗鍐嶆坊鍔?lt;Value>鍏冪礌錛?/P>

<Value className="org.apache.catalina.RequestDumperValue"/>


鍙傝冿細銆奣omcat涓嶫avaWeb寮鍙戞妧鏈瑙c?/FONT>



]]>
主站蜘蛛池模板: 久久久久久久99精品免费 | 国产成人自产拍免费视频| 亚洲国产成人AV在线播放| 亚洲一卡二卡三卡四卡无卡麻豆 | 国产最新凸凹视频免费| 日本大片在线看黄a∨免费| 无人在线直播免费观看| 欧洲黑大粗无码免费| 国产精品视频永久免费播放| 日韩欧美一区二区三区免费观看 | 一级做a爱过程免费视| 72pao国产成视频永久免费| 亚洲免费日韩无码系列| baoyu122.永久免费视频| 免费精品久久天干天干| 无码精品国产一区二区三区免费| 久久国产乱子免费精品| 亚洲综合免费视频| 老司机在线免费视频| 成人男女网18免费视频| 国产成人免费福利网站| 亚洲区日韩区无码区| 亚洲精品字幕在线观看| 亚洲精品在线播放视频| 亚洲人成网站999久久久综合| 怡红院亚洲红怡院在线观看| 一级午夜免费视频| 久久成人免费播放网站| 91精品国产免费久久久久久青草| 在线免费观看a级片| 又粗又大又猛又爽免费视频 | 一个人免费高清在线观看| 免费高清在线影片一区| 亚洲国产成人影院播放| 香蕉视频在线观看亚洲| 亚洲香蕉久久一区二区三区四区| 国产亚洲情侣久久精品| 成全动漫视频在线观看免费高清版下载 | 人人狠狠综合久久亚洲婷婷| 亚洲欧洲视频在线观看| 国产成人亚洲午夜电影|