<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0"><channel><atom:link href="http://feed.tanggaowei.com" type="application/rss+xml" ref="self"></atom:link><fs:self_link href="http://feed.feedsky.com/tanggaowei" type="application/rss+xml"></fs:self_link><lastBuildDate>Sun, 27 Jul 2008 09:33:45 GMT</lastBuildDate><title>荷塘月色</title><description>曲曲折折的荷塘上面，弥望的是田田的叶子；叶子出水很高，像亭亭的舞女的裙...</description><link atom:type="text/html">http://blog.tanggaowei.com/</link><id xmlns="http://www.w3.org/2005/Atom">tag:blogger.com,1999:blog-4866208191593256515</id><link xmlns="http://www.w3.org/2005/Atom" rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/4866208191593256515/posts/default?start-index=26&amp;max-results=25"></link><link xmlns="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4866208191593256515/posts/default"></link><link xmlns="http://www.w3.org/2005/Atom" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.tanggaowei.com/atom.xml"></link><author xmlns="http://www.w3.org/2005/Atom"><name>传说一梦</name></author><generator xmlns="http://www.w3.org/2005/Atom" version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>143</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><pubDate>Sun, 13 Jan 2008 12:38:48 GMT</pubDate><managingEditor>传说一梦</managingEditor><dc:date>2008-01-13T12:38:48Z</dc:date><item><title>IMAGE_078</title><link atom:type="text/html">http://www.flickr.com/photos/tanggaowei/2706341212/</link><id xmlns="http://www.w3.org/2005/Atom">tag:flickr.com,2005:/photo/2706341212</id><dc:date.Taken>2008-07-27T17:33:45-08:00</dc:date.Taken><content xmlns="http://www.w3.org/2005/Atom" type="html">&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/people/tanggaowei/&quot;&gt;Neot.China&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/tanggaowei/2706341212/&quot; title=&quot;IMAGE_078&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3023/2706341212_bd5f76166e_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;IMAGE_078&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>Neot.China</name><uri>http://www.flickr.com/people/tanggaowei/</uri></author><content:encoded>&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/people/tanggaowei/&quot;&gt;Neot.China&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/tanggaowei/2706341212/&quot; title=&quot;IMAGE_078&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3023/2706341212_bd5f76166e_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;IMAGE_078&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky flare --&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/tanggaowei?a=a58bdbfb98d5240d71652b6c0f277a50&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/tanggaowei?i=a58bdbfb98d5240d71652b6c0f277a50&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/tanggaowei?a=83797574504d682798b49fa56881ef5a&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/tanggaowei?i=83797574504d682798b49fa56881ef5a&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/tanggaowei?a=def896138bde8ef35745c625703e7059&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/tanggaowei?i=def896138bde8ef35745c625703e7059&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/tanggaowei?a=ef5ca04bda4b7272480f9ce7f1a247a0&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/tanggaowei?i=ef5ca04bda4b7272480f9ce7f1a247a0&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;!-- /Feedsky flare --&gt;</content:encoded><enclosure url="http://farm4.static.flickr.com/3023/2706341212_2ef4ef0904_o.jpg" type="image/jpeg"></enclosure><pubDate>Sun, 27 Jul 2008 17:33:45 +0800</pubDate><guid isPermaLink="false">tag:flickr.com,2005:/photo/2706341212</guid><dc:creator>Neot.China</dc:creator><fs:srclink>http://www.flickr.com/photos/tanggaowei/2706341212/</fs:srclink><fs:srcfeed>http://api.flickr.com/services/feeds/photos_public.gne?id=16116257@N03&amp;amp;lang=en-us&amp;amp;format=atom</fs:srcfeed><fs:itemid>feedsky/tanggaowei/~6114555/98422014/1218758</fs:itemid><fs:burntype>photo</fs:burntype></item><item><title>WP-T-WAP 1.2 已支持通过手机发布文章</title><link atom:title="WP-T-WAP 1.2 已支持通过手机发布文章" atom:type="text/html">http://item.feedsky.com/~feedsky/tanggaowei/~6113480/73774775/1218758/1/item.html</link><id xmlns="http://www.w3.org/2005/Atom">tag:blogger.com,1999:blog-4866208191593256515.post-5307941093226225419</id><content xmlns="http://www.w3.org/2005/Atom" type="html">&lt;p&gt;&lt;a href=&quot;http://www.tanggaowei.com/2008/01/04/7.html&quot;&gt;WP-T-WAP 1.2&lt;/a&gt; 是 &lt;a href=&quot;http://www.tanggaowei.com/&quot;&gt;TangGaowei.com&lt;/a&gt; 开发的 WordPress 3.2.1 (其它版本未测试过) 插件。它能功能如下：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;通过手机浏览 WordPress 博客网站的文章和评论； &lt;/li&gt;    &lt;li&gt;通过手机发布 WordPress 博客网站的评论（Comment）； &lt;/li&gt;    &lt;li&gt;通过手机发布 WordPress 博客网站的文章（Post）。（&lt;font color=&quot;#ff0000&quot;&gt;推荐使用 &lt;/font&gt;&lt;a href=&quot;http://www.ucfly.com/&quot;&gt;&lt;font color=&quot;#ff0000&quot;&gt;UCWeb&lt;/font&gt;&lt;/a&gt;&lt;font color=&quot;#ff0000&quot;&gt; 发布文章，IE可能不支持&lt;/font&gt;） &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;使用方法：&lt;/strong&gt;直接解压到 plugins 目录，然后启动插件即可通过&amp;#8220;http://XXX/wap&amp;#8221; 或&amp;#8220;http://xxx/wap/index.php&amp;#8221;访问。后台的&amp;#8220;常规设置&amp;#8221;-&amp;gt;&amp;#8220;WAP 插件&amp;#8221;里可设置&amp;#8220;显示方式&amp;#8221;和&amp;#8220;版本信息&amp;#8221;。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;下载地址：&lt;/strong&gt;&lt;a title=&quot;http://www.tanggaowei.com/2008/01/04/7.html&quot; href=&quot;http://www.tanggaowei.com/2008/01/04/7.html&quot;&gt;http://www.tanggaowei.com/2008/01/04/7.html&lt;/a&gt;&lt;/p&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>传说一梦</name></author><content:encoded>&lt;p&gt;&lt;a href=&quot;http://www.tanggaowei.com/2008/01/04/7.html&quot;&gt;WP-T-WAP 1.2&lt;/a&gt; 是 &lt;a href=&quot;http://www.tanggaowei.com/&quot;&gt;TangGaowei.com&lt;/a&gt; 开发的 WordPress 3.2.1 (其它版本未测试过) 插件。它能功能如下：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;通过手机浏览 WordPress 博客网站的文章和评论； &lt;/li&gt;    &lt;li&gt;通过手机发布 WordPress 博客网站的评论（Comment）； &lt;/li&gt;    &lt;li&gt;通过手机发布 WordPress 博客网站的文章（Post）。（&lt;font color=&quot;#ff0000&quot;&gt;推荐使用 &lt;/font&gt;&lt;a href=&quot;http://www.ucfly.com/&quot;&gt;&lt;font color=&quot;#ff0000&quot;&gt;UCWeb&lt;/font&gt;&lt;/a&gt;&lt;font color=&quot;#ff0000&quot;&gt; 发布文章，IE可能不支持&lt;/font&gt;） &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;使用方法：&lt;/strong&gt;直接解压到 plugins 目录，然后启动插件即可通过&amp;#8220;http://XXX/wap&amp;#8221; 或&amp;#8220;http://xxx/wap/index.php&amp;#8221;访问。后台的&amp;#8220;常规设置&amp;#8221;-&amp;gt;&amp;#8220;WAP 插件&amp;#8221;里可设置&amp;#8220;显示方式&amp;#8221;和&amp;#8220;版本信息&amp;#8221;。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;下载地址：&lt;/strong&gt;&lt;a title=&quot;http://www.tanggaowei.com/2008/01/04/7.html&quot; href=&quot;http://www.tanggaowei.com/2008/01/04/7.html&quot;&gt;http://www.tanggaowei.com/2008/01/04/7.html&lt;/a&gt;&lt;/p&gt;</content:encoded><category domain="http://www.blogger.com/atom/ns#">软件开发</category><pubDate>Sun, 13 Jan 2008 20:38:48 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4866208191593256515.post-5307941093226225419</guid><dc:creator>传说一梦</dc:creator><fs:srclink>http://blog.tanggaowei.com/2008/01/wp-t-wap-12.html</fs:srclink><fs:srcfeed>http://blog.tanggaowei.com/atom.xml</fs:srcfeed><fs:itemid>feedsky/tanggaowei/~6113480/73774775/1218758</fs:itemid></item><item><title>WordPress 301 重定向（Redirect）</title><link atom:title="WordPress 301 重定向（Redirect）" atom:type="text/html">http://item.feedsky.com/~feedsky/tanggaowei/~6113480/73774776/1218758/1/item.html</link><id xmlns="http://www.w3.org/2005/Atom">tag:blogger.com,1999:blog-4866208191593256515.post-8142570045476091618</id><content xmlns="http://www.w3.org/2005/Atom" type="html">&lt;p&gt;研究了一天，&lt;a href=&quot;http://www.tanggaowei.com/&quot;&gt;TangGaowei&lt;/a&gt; 终于写出了以下适用于插件的 301 重定向代码：&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#0000ff&quot;&gt;add_action ('template_redirect', 'wap_check_404');     &lt;br /&gt;function wap_check_404 ()      &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if ( is_404() ) {      &lt;br /&gt;&lt;font color=&quot;#008000&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // 获取请求地址       &lt;br /&gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $requested_url&amp;#160; = '';      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $requested_url&amp;#160; = ( isset($_SERVER['HTTPS'] ) &amp;amp;&amp;amp; strtolower($_SERVER['HTTPS']) == 'on' ) ? '&lt;/font&gt;&lt;a href=&quot;https://'&quot;&gt;&lt;font color=&quot;#0000ff&quot;&gt;https://'&lt;/font&gt;&lt;/a&gt;&lt;font color=&quot;#0000ff&quot;&gt; : '&lt;/font&gt;&lt;a href=&quot;http://';&quot;&gt;&lt;font color=&quot;#0000ff&quot;&gt;http://';&lt;/font&gt;&lt;/a&gt;    &lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $requested_url .= $_SERVER['HTTP_HOST'];     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $requested_url .= $_SERVER['REQUEST_URI'];      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $requested_url&amp;#160; = strtolower($requested_url); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#0000ff&quot;&gt;&lt;font color=&quot;#008000&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // 设置要目的地址&lt;/font&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $redirect_url = strtolower(get_option(&amp;quot;siteurl&amp;quot;)) . '/wp-wap.php'; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#0000ff&quot;&gt;&lt;font color=&quot;#008000&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // 如果请求地址符合条件，则重定向到目的地址&lt;/font&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if( $requested_url == strtolower(get_option(&amp;quot;siteurl&amp;quot;)) . '/wap' ){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //wp_redirect($redirect_url, 301);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; wp_redirect($redirect_url, 301);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>传说一梦</name></author><content:encoded>&lt;p&gt;研究了一天，&lt;a href=&quot;http://www.tanggaowei.com/&quot;&gt;TangGaowei&lt;/a&gt; 终于写出了以下适用于插件的 301 重定向代码：&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#0000ff&quot;&gt;add_action ('template_redirect', 'wap_check_404');     &lt;br /&gt;function wap_check_404 ()      &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if ( is_404() ) {      &lt;br /&gt;&lt;font color=&quot;#008000&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // 获取请求地址       &lt;br /&gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $requested_url&amp;#160; = '';      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $requested_url&amp;#160; = ( isset($_SERVER['HTTPS'] ) &amp;amp;&amp;amp; strtolower($_SERVER['HTTPS']) == 'on' ) ? '&lt;/font&gt;&lt;a href=&quot;https://'&quot;&gt;&lt;font color=&quot;#0000ff&quot;&gt;https://'&lt;/font&gt;&lt;/a&gt;&lt;font color=&quot;#0000ff&quot;&gt; : '&lt;/font&gt;&lt;a href=&quot;http://';&quot;&gt;&lt;font color=&quot;#0000ff&quot;&gt;http://';&lt;/font&gt;&lt;/a&gt;    &lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $requested_url .= $_SERVER['HTTP_HOST'];     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $requested_url .= $_SERVER['REQUEST_URI'];      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $requested_url&amp;#160; = strtolower($requested_url); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#0000ff&quot;&gt;&lt;font color=&quot;#008000&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // 设置要目的地址&lt;/font&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $redirect_url = strtolower(get_option(&amp;quot;siteurl&amp;quot;)) . '/wp-wap.php'; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#0000ff&quot;&gt;&lt;font color=&quot;#008000&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // 如果请求地址符合条件，则重定向到目的地址&lt;/font&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if( $requested_url == strtolower(get_option(&amp;quot;siteurl&amp;quot;)) . '/wap' ){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //wp_redirect($redirect_url, 301);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; wp_redirect($redirect_url, 301);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;</content:encoded><category domain="http://www.blogger.com/atom/ns#">软件开发</category><pubDate>Fri, 04 Jan 2008 14:55:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4866208191593256515.post-8142570045476091618</guid><dc:creator>传说一梦</dc:creator><fs:srclink>http://blog.tanggaowei.com/2008/01/wordpress-301.html</fs:srclink><fs:srcfeed>http://blog.tanggaowei.com/atom.xml</fs:srcfeed><fs:itemid>feedsky/tanggaowei/~6113480/73774776/1218758</fs:itemid></item><item><title>在WordPress中用“/wap”地址替换“/wp-wap.php”地址访问</title><link atom:title="在WordPress中用“/wap”地址替换“/wp-wap.php”地址访问" atom:type="text/html">http://item.feedsky.com/~feedsky/tanggaowei/~6113480/73774777/1218758/1/item.html</link><id xmlns="http://www.w3.org/2005/Atom">tag:blogger.com,1999:blog-4866208191593256515.post-4645626651362624775</id><content xmlns="http://www.w3.org/2005/Atom" type="html">&lt;p&gt;&lt;strong&gt;插件中代码如下：&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#0000ff&quot;&gt;register_activation_hook(__FILE__,'test_flush_rules'); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#0000ff&quot;&gt;function test_flush_rules(){     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; global $wp_rewrite; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color=&quot;#008000&quot;&gt;// 注意'wap$'是以'$结尾，以防止循环定向（wap-&amp;gt;wp-wap.php-&amp;gt;wap-&amp;gt;wp-wap.php ...)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; // 不以'$'结尾可能出现&amp;quot;Internal Server Error&amp;quot;错误      &lt;br /&gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;&lt;font color=&quot;#ff0000&quot;&gt;$wp_rewrite-&amp;gt;non_wp_rules = array( 'wap$' =&amp;gt; 'wp-wap.php' ); &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;font color=&quot;#0000ff&quot;&gt;&amp;#160;&amp;#160; $wp_rewrite-&amp;gt;flush_rules();     &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;.htaccess文件被创建如下：&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#0000ff&quot;&gt;# BEGIN WordPress     &lt;br /&gt;&amp;lt;IfModule mod_rewrite.c&amp;gt;      &lt;br /&gt;RewriteEngine On      &lt;br /&gt;RewriteBase /www/      &lt;br /&gt;&lt;/font&gt;&lt;strong&gt;&lt;font color=&quot;#ff0000&quot;&gt;RewriteRule ^wap$ /www/wap.php [QSA,L]&lt;/font&gt;&lt;/strong&gt;    &lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;RewriteCond %{REQUEST_FILENAME} !-f     &lt;br /&gt;RewriteCond %{REQUEST_FILENAME} !-d      &lt;br /&gt;RewriteRule . /www/index.php [L]      &lt;br /&gt;&amp;lt;/IfModule&amp;gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#0000ff&quot;&gt;# END WordPress&lt;/font&gt;&lt;/p&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>传说一梦</name></author><content:encoded>&lt;p&gt;&lt;strong&gt;插件中代码如下：&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#0000ff&quot;&gt;register_activation_hook(__FILE__,'test_flush_rules'); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#0000ff&quot;&gt;function test_flush_rules(){     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; global $wp_rewrite; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color=&quot;#008000&quot;&gt;// 注意'wap$'是以'$结尾，以防止循环定向（wap-&amp;gt;wp-wap.php-&amp;gt;wap-&amp;gt;wp-wap.php ...)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; // 不以'$'结尾可能出现&amp;quot;Internal Server Error&amp;quot;错误      &lt;br /&gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;&lt;font color=&quot;#ff0000&quot;&gt;$wp_rewrite-&amp;gt;non_wp_rules = array( 'wap$' =&amp;gt; 'wp-wap.php' ); &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;font color=&quot;#0000ff&quot;&gt;&amp;#160;&amp;#160; $wp_rewrite-&amp;gt;flush_rules();     &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;.htaccess文件被创建如下：&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#0000ff&quot;&gt;# BEGIN WordPress     &lt;br /&gt;&amp;lt;IfModule mod_rewrite.c&amp;gt;      &lt;br /&gt;RewriteEngine On      &lt;br /&gt;RewriteBase /www/      &lt;br /&gt;&lt;/font&gt;&lt;strong&gt;&lt;font color=&quot;#ff0000&quot;&gt;RewriteRule ^wap$ /www/wap.php [QSA,L]&lt;/font&gt;&lt;/strong&gt;    &lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;RewriteCond %{REQUEST_FILENAME} !-f     &lt;br /&gt;RewriteCond %{REQUEST_FILENAME} !-d      &lt;br /&gt;RewriteRule . /www/index.php [L]      &lt;br /&gt;&amp;lt;/IfModule&amp;gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#0000ff&quot;&gt;# END WordPress&lt;/font&gt;&lt;/p&gt;</content:encoded><category domain="http://www.blogger.com/atom/ns#">软件开发</category><pubDate>Wed, 02 Jan 2008 18:43:53 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4866208191593256515.post-4645626651362624775</guid><dc:creator>传说一梦</dc:creator><fs:srclink>http://blog.tanggaowei.com/2008/01/wordpresswapwp-wapphp.html</fs:srclink><fs:srcfeed>http://blog.tanggaowei.com/atom.xml</fs:srcfeed><fs:itemid>feedsky/tanggaowei/~6113480/73774777/1218758</fs:itemid></item><item><title>Feed Directror 插件修正版</title><link atom:title="Feed Directror 插件修正版" atom:type="text/html">http://item.feedsky.com/~feedsky/tanggaowei/~6113480/73774778/1218758/1/item.html</link><id xmlns="http://www.w3.org/2005/Atom">tag:blogger.com,1999:blog-4866208191593256515.post-4187922309653740835</id><content xmlns="http://www.w3.org/2005/Atom" type="html">&lt;p&gt;&amp;lt;?php   &lt;br /&gt;/*    &lt;br /&gt;Plugin Name: Feed Director    &lt;br /&gt;Plugin URI: &lt;a href=&quot;http://boren.nu/&quot;&gt;http://boren.nu/&lt;/a&gt;    &lt;br /&gt;Description: Rewrites common feed URIs used by other blogging platforms into WP style feed URIs.    &lt;br /&gt;Version: 0.2    &lt;br /&gt;Author: Ryan Boren    &lt;br /&gt;Author URI: &lt;a href=&quot;http://boren.nu/&quot;&gt;http://boren.nu/&lt;/a&gt;    &lt;br /&gt;*/ &lt;/p&gt;  &lt;p&gt;add_action('generate_rewrite_rules', 'feed_dir_rewrite'); &lt;/p&gt;  &lt;p&gt;function feed_dir_rewrite($wp_rewrite) {   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $feed_rules = array(    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 'index.rdf' =&amp;gt; 'index.php?feed=rdf',    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 'index.xml' =&amp;gt; 'index.php?feed=rss2',    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; '(.+).xml' =&amp;gt; 'index.php?feed=' . $wp_rewrite-&amp;gt;preg_index(1)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $wp_rewrite-&amp;gt;rules = $feed_rules + $wp_rewrite-&amp;gt;rules;   &lt;br /&gt;} &lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#008000&quot;&gt;// 如果以上代码不足以正常运行，那添加以下代码     &lt;br /&gt;// 如果要一开始就加载ReWrite规则，则将下行改为&amp;#8220;&lt;code&gt;add_action('init','test_flush_rules');&lt;/code&gt;&amp;#8221;      &lt;br /&gt;&lt;/font&gt;&lt;strong&gt;register_activation_hook(__FILE__,'feed_rewrite_flush_rules'); &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;function feed_rewrite_flush_rules(){     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; global $wp_rewrite; &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160; $wp_rewrite-&amp;gt;flush_rules();     &lt;br /&gt;}      &lt;br /&gt;&lt;/strong&gt;?&amp;gt;&lt;/p&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>传说一梦</name></author><content:encoded>&lt;p&gt;&amp;lt;?php   &lt;br /&gt;/*    &lt;br /&gt;Plugin Name: Feed Director    &lt;br /&gt;Plugin URI: &lt;a href=&quot;http://boren.nu/&quot;&gt;http://boren.nu/&lt;/a&gt;    &lt;br /&gt;Description: Rewrites common feed URIs used by other blogging platforms into WP style feed URIs.    &lt;br /&gt;Version: 0.2    &lt;br /&gt;Author: Ryan Boren    &lt;br /&gt;Author URI: &lt;a href=&quot;http://boren.nu/&quot;&gt;http://boren.nu/&lt;/a&gt;    &lt;br /&gt;*/ &lt;/p&gt;  &lt;p&gt;add_action('generate_rewrite_rules', 'feed_dir_rewrite'); &lt;/p&gt;  &lt;p&gt;function feed_dir_rewrite($wp_rewrite) {   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $feed_rules = array(    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 'index.rdf' =&amp;gt; 'index.php?feed=rdf',    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 'index.xml' =&amp;gt; 'index.php?feed=rss2',    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; '(.+).xml' =&amp;gt; 'index.php?feed=' . $wp_rewrite-&amp;gt;preg_index(1)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $wp_rewrite-&amp;gt;rules = $feed_rules + $wp_rewrite-&amp;gt;rules;   &lt;br /&gt;} &lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#008000&quot;&gt;// 如果以上代码不足以正常运行，那添加以下代码     &lt;br /&gt;// 如果要一开始就加载ReWrite规则，则将下行改为&amp;#8220;&lt;code&gt;add_action('init','test_flush_rules');&lt;/code&gt;&amp;#8221;      &lt;br /&gt;&lt;/font&gt;&lt;strong&gt;register_activation_hook(__FILE__,'feed_rewrite_flush_rules'); &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;function feed_rewrite_flush_rules(){     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; global $wp_rewrite; &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160; $wp_rewrite-&amp;gt;flush_rules();     &lt;br /&gt;}      &lt;br /&gt;&lt;/strong&gt;?&amp;gt;&lt;/p&gt;</content:encoded><category domain="http://www.blogger.com/atom/ns#">软件开发</category><pubDate>Wed, 02 Jan 2008 13:53:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4866208191593256515.post-4187922309653740835</guid><dc:creator>传说一梦</dc:creator><fs:srclink>http://blog.tanggaowei.com/2008/01/feed-directror.html</fs:srclink><fs:srcfeed>http://blog.tanggaowei.com/atom.xml</fs:srcfeed><fs:itemid>feedsky/tanggaowei/~6113480/73774778/1218758</fs:itemid></item><item><title>建了一个网站，专门介绍移动工具的相关信息</title><link atom:title="建了一个网站，专门介绍移动工具的相关信息" atom:type="text/html">http://item.feedsky.com/~feedsky/tanggaowei/~6113480/73774779/1218758/1/item.html</link><id xmlns="http://www.w3.org/2005/Atom">tag:blogger.com,1999:blog-4866208191593256515.post-75379902322436954</id><content xmlns="http://www.w3.org/2005/Atom" type="html">&lt;p&gt;刚建了一个网站&amp;#8212;&amp;#8220;移动新世界&amp;#8221;，专门发布转动工具，如手机等相关信息。    &lt;br /&gt;    &lt;br /&gt;地址：&lt;a href=&quot;http://m.tanggaowei.com&quot;&gt;http://m.tanggaowei.com&lt;/a&gt; &lt;a href=&quot;http://fanfou.com/statuses/7-vEAIlK1pY&quot;&gt;&lt;/a&gt;&lt;/p&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>传说一梦</name></author><content:encoded>&lt;p&gt;刚建了一个网站&amp;#8212;&amp;#8220;移动新世界&amp;#8221;，专门发布转动工具，如手机等相关信息。    &lt;br /&gt;    &lt;br /&gt;地址：&lt;a href=&quot;http://m.tanggaowei.com&quot;&gt;http://m.tanggaowei.com&lt;/a&gt; &lt;a href=&quot;http://fanfou.com/statuses/7-vEAIlK1pY&quot;&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><category domain="http://www.blogger.com/atom/ns#">互联网</category><pubDate>Mon, 31 Dec 2007 14:45:55 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4866208191593256515.post-75379902322436954</guid><dc:creator>传说一梦</dc:creator><fs:srclink>http://blog.tanggaowei.com/2007/12/blog-post_31.html</fs:srclink><fs:srcfeed>http://blog.tanggaowei.com/atom.xml</fs:srcfeed><fs:itemid>feedsky/tanggaowei/~6113480/73774779/1218758</fs:itemid></item><item><title>刚做了一个wordpress插件：WP-PostExtend插件</title><link atom:title="刚做了一个wordpress插件：WP-PostExtend插件" atom:type="text/html">http://item.feedsky.com/~feedsky/tanggaowei/~6113480/73774780/1218758/1/item.html</link><id xmlns="http://www.w3.org/2005/Atom">tag:blogger.com,1999:blog-4866208191593256515.post-506787989171314084</id><content xmlns="http://www.w3.org/2005/Atom" type="html">&lt;p&gt;刚为WordPress 2.3.1制作了一个插件&lt;a href=&quot;http://www.tanggaowei.com/%E4%B8%8B%E8%BD%BD&quot;&gt;WP-PostExtend&lt;/a&gt;，用于为文章添加&amp;#8220;标签&amp;#8221;、&amp;#8220;固定链接&amp;#8221;等信息。    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;使用方法&lt;/strong&gt;：直接将插件解压到plugins目录下。启动后可以在设置里修改插件信息。    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;下载地址&lt;/strong&gt;：&lt;a href=&quot;http://www.tanggaowei.com/%E4%B8%8B%E8%BD%BD&quot;&gt;wp-postextend.1.0.zip&lt;/a&gt;&lt;/p&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>传说一梦</name></author><content:encoded>&lt;p&gt;刚为WordPress 2.3.1制作了一个插件&lt;a href=&quot;http://www.tanggaowei.com/%E4%B8%8B%E8%BD%BD&quot;&gt;WP-PostExtend&lt;/a&gt;，用于为文章添加&amp;#8220;标签&amp;#8221;、&amp;#8220;固定链接&amp;#8221;等信息。    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;使用方法&lt;/strong&gt;：直接将插件解压到plugins目录下。启动后可以在设置里修改插件信息。    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;下载地址&lt;/strong&gt;：&lt;a href=&quot;http://www.tanggaowei.com/%E4%B8%8B%E8%BD%BD&quot;&gt;wp-postextend.1.0.zip&lt;/a&gt;&lt;/p&gt;</content:encoded><category domain="http://www.blogger.com/atom/ns#">软件开发</category><category domain="http://www.blogger.com/atom/ns#">互联网</category><pubDate>Mon, 31 Dec 2007 14:19:25 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4866208191593256515.post-506787989171314084</guid><dc:creator>传说一梦</dc:creator><fs:srclink>http://blog.tanggaowei.com/2007/12/wordpresswp-postextend.html</fs:srclink><fs:srcfeed>http://blog.tanggaowei.com/atom.xml</fs:srcfeed><fs:itemid>feedsky/tanggaowei/~6113480/73774780/1218758</fs:itemid></item><item><title>WordPress文章里添加“标签”和“固定链接”</title><link atom:title="WordPress文章里添加“标签”和“固定链接”" atom:type="text/html">http://item.feedsky.com/~feedsky/tanggaowei/~6113480/73774781/1218758/1/item.html</link><id xmlns="http://www.w3.org/2005/Atom">tag:blogger.com,1999:blog-4866208191593256515.post-7322782520818761153</id><content xmlns="http://www.w3.org/2005/Atom" type="html">&lt;p&gt;&lt;strong&gt;代码如下：     &lt;br /&gt;&lt;/strong&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color=&quot;#008000&quot;&gt;&amp;lt;!-- 输出标签（用逗号隔开）--&amp;gt;     &lt;br /&gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color=&quot;#0000ff&quot;&gt;&amp;lt;?php     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $posttags = get_the_tags();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if ($posttags) {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $tag_i = 0;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach($posttags as $tag) {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if($tag_i &amp;gt; 0) { echo ', '; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo '&amp;lt;a href=&amp;quot;' . get_tag_link($tag-&amp;gt;term_id) . '&amp;quot;&amp;gt;' .$tag-&amp;gt;name . '&amp;lt;/a&amp;gt;';       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $tag_i++;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#0000ff&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; else {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo '无';      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ?&amp;gt;      &lt;br /&gt;&lt;/font&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color=&quot;#008000&quot;&gt;&amp;lt;!-- 输出固定链接 --&amp;gt;&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color=&quot;#0000ff&quot;&gt;&amp;lt;a href=&amp;quot;&amp;lt;?php the_permalink() ?&amp;gt;&amp;quot;&amp;gt;&amp;lt;?php the_permalink() ?&amp;gt;&amp;lt;/a&amp;gt;&lt;/font&gt;&lt;/p&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>传说一梦</name></author><content:encoded>&lt;p&gt;&lt;strong&gt;代码如下：     &lt;br /&gt;&lt;/strong&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color=&quot;#008000&quot;&gt;&amp;lt;!-- 输出标签（用逗号隔开）--&amp;gt;     &lt;br /&gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color=&quot;#0000ff&quot;&gt;&amp;lt;?php     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $posttags = get_the_tags();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if ($posttags) {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $tag_i = 0;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach($posttags as $tag) {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if($tag_i &amp;gt; 0) { echo ', '; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo '&amp;lt;a href=&amp;quot;' . get_tag_link($tag-&amp;gt;term_id) . '&amp;quot;&amp;gt;' .$tag-&amp;gt;name . '&amp;lt;/a&amp;gt;';       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $tag_i++;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#0000ff&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; else {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo '无';      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ?&amp;gt;      &lt;br /&gt;&lt;/font&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color=&quot;#008000&quot;&gt;&amp;lt;!-- 输出固定链接 --&amp;gt;&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color=&quot;#0000ff&quot;&gt;&amp;lt;a href=&amp;quot;&amp;lt;?php the_permalink() ?&amp;gt;&amp;quot;&amp;gt;&amp;lt;?php the_permalink() ?&amp;gt;&amp;lt;/a&amp;gt;&lt;/font&gt;&lt;/p&gt;</content:encoded><category domain="http://www.blogger.com/atom/ns#">软件开发</category><category domain="http://www.blogger.com/atom/ns#">互联网</category><pubDate>Fri, 28 Dec 2007 19:58:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4866208191593256515.post-7322782520818761153</guid><dc:creator>传说一梦</dc:creator><fs:srclink>http://blog.tanggaowei.com/2007/12/wordpress_28.html</fs:srclink><fs:srcfeed>http://blog.tanggaowei.com/atom.xml</fs:srcfeed><fs:itemid>feedsky/tanggaowei/~6113480/73774781/1218758</fs:itemid></item><item><title>小心 WordPress 的自动跳转功能</title><link atom:title="小心 WordPress 的自动跳转功能" atom:type="text/html">http://item.feedsky.com/~feedsky/tanggaowei/~6113480/73774782/1218758/1/item.html</link><id xmlns="http://www.w3.org/2005/Atom">tag:blogger.com,1999:blog-4866208191593256515.post-8583449684978685771</id><content xmlns="http://www.w3.org/2005/Atom" type="html">&lt;p&gt;&lt;strong&gt;在访问WordPress网站的主页时，WordPress会跳自动转到后台管理中&amp;#8220;设置&amp;#8221;-&amp;#8220;常规&amp;#8221;的&amp;#8220;Blog 地址&amp;#8221;对应的URL。      &lt;br /&gt;&lt;/strong&gt;    &lt;br /&gt;由于新设置的域名&amp;#8220;http://m.tanggaowei.com&amp;#8221;还没有生效，所以安装WordPress时使用的是空间提供商提供的&amp;#8220;http://tanggaowei.512j.com&amp;#8221;地址。    &lt;br /&gt;    &lt;br /&gt;第二天域名生效了，但每次访问&amp;#8220;http://m.tanggaowei.com&amp;#8221;都跳转到&amp;#8220;http://tanggaowei.512j.com&amp;#8221;。开始我以为是512j.com的域名绑定有问题。于是询问他们的&amp;#8220;在线客服&amp;#8221;。接待我的客服比较专业，他说是我的Blog自己跳转了。如果是Blog自动跳转了，那应该是在WordPress后台管理里的设置出了问题。    &lt;br /&gt;    &lt;br /&gt;我想起来，在后台管理中&amp;#8220;设置&amp;#8221;-&amp;#8220;常规&amp;#8221;里，我将&amp;#8220;WordPress 地址&amp;#8221;和&amp;#8220;Blog 地址&amp;#8221;都设置成了&amp;#8220;http://tanggaowei.512j.com&amp;#8221;。 于是我将&amp;#8220;WordPress 地址&amp;#8221;和&amp;#8220;Blog 地址&amp;#8221;都改为&amp;#8220;http://m.tanggaowei.com&amp;#8221;，终于能正常访问我的域名了。&lt;/p&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>传说一梦</name></author><content:encoded>&lt;p&gt;&lt;strong&gt;在访问WordPress网站的主页时，WordPress会跳自动转到后台管理中&amp;#8220;设置&amp;#8221;-&amp;#8220;常规&amp;#8221;的&amp;#8220;Blog 地址&amp;#8221;对应的URL。      &lt;br /&gt;&lt;/strong&gt;    &lt;br /&gt;由于新设置的域名&amp;#8220;http://m.tanggaowei.com&amp;#8221;还没有生效，所以安装WordPress时使用的是空间提供商提供的&amp;#8220;http://tanggaowei.512j.com&amp;#8221;地址。    &lt;br /&gt;    &lt;br /&gt;第二天域名生效了，但每次访问&amp;#8220;http://m.tanggaowei.com&amp;#8221;都跳转到&amp;#8220;http://tanggaowei.512j.com&amp;#8221;。开始我以为是512j.com的域名绑定有问题。于是询问他们的&amp;#8220;在线客服&amp;#8221;。接待我的客服比较专业，他说是我的Blog自己跳转了。如果是Blog自动跳转了，那应该是在WordPress后台管理里的设置出了问题。    &lt;br /&gt;    &lt;br /&gt;我想起来，在后台管理中&amp;#8220;设置&amp;#8221;-&amp;#8220;常规&amp;#8221;里，我将&amp;#8220;WordPress 地址&amp;#8221;和&amp;#8220;Blog 地址&amp;#8221;都设置成了&amp;#8220;http://tanggaowei.512j.com&amp;#8221;。 于是我将&amp;#8220;WordPress 地址&amp;#8221;和&amp;#8220;Blog 地址&amp;#8221;都改为&amp;#8220;http://m.tanggaowei.com&amp;#8221;，终于能正常访问我的域名了。&lt;/p&gt;</content:encoded><category domain="http://www.blogger.com/atom/ns#">互联网</category><pubDate>Thu, 27 Dec 2007 17:30:54 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4866208191593256515.post-8583449684978685771</guid><dc:creator>传说一梦</dc:creator><fs:srclink>http://blog.tanggaowei.com/2007/12/wordpress.html</fs:srclink><fs:srcfeed>http://blog.tanggaowei.com/atom.xml</fs:srcfeed><fs:itemid>feedsky/tanggaowei/~6113480/73774782/1218758</fs:itemid></item><item><title>Windows Live Writer 也不错！</title><link atom:title="Windows Live Writer 也不错！" atom:type="text/html">http://item.feedsky.com/~feedsky/tanggaowei/~6113480/73774783/1218758/1/item.html</link><id xmlns="http://www.w3.org/2005/Atom">tag:blogger.com,1999:blog-4866208191593256515.post-5162204053268331473</id><content xmlns="http://www.w3.org/2005/Atom" type="html">&lt;p&gt;&lt;strong&gt;&lt;font size=&quot;4&quot;&gt;WordPress：&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;标题：&lt;font color=&quot;#008000&quot;&gt;&lt;strong&gt;支持！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;内容：&lt;font color=&quot;#008000&quot;&gt;&lt;strong&gt;支持！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;分类：&lt;font color=&quot;#008000&quot;&gt;&lt;strong&gt;支持！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;标签：&lt;font color=&quot;#008000&quot;&gt;&lt;strong&gt;支持！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;修改：&lt;font color=&quot;#008000&quot;&gt;&lt;strong&gt;支持！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size=&quot;4&quot;&gt;Blogger.Com：&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;标题：&lt;font color=&quot;#008000&quot;&gt;&lt;strong&gt;支持！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;内容：&lt;font color=&quot;#008000&quot;&gt;&lt;strong&gt;支持！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;分类：&lt;font color=&quot;#008000&quot;&gt;&lt;strong&gt;支持！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;修改：&lt;font color=&quot;#008000&quot;&gt;&lt;strong&gt;支持！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>传说一梦</name></author><content:encoded>&lt;p&gt;&lt;strong&gt;&lt;font size=&quot;4&quot;&gt;WordPress：&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;标题：&lt;font color=&quot;#008000&quot;&gt;&lt;strong&gt;支持！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;内容：&lt;font color=&quot;#008000&quot;&gt;&lt;strong&gt;支持！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;分类：&lt;font color=&quot;#008000&quot;&gt;&lt;strong&gt;支持！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;标签：&lt;font color=&quot;#008000&quot;&gt;&lt;strong&gt;支持！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;修改：&lt;font color=&quot;#008000&quot;&gt;&lt;strong&gt;支持！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size=&quot;4&quot;&gt;Blogger.Com：&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;标题：&lt;font color=&quot;#008000&quot;&gt;&lt;strong&gt;支持！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;内容：&lt;font color=&quot;#008000&quot;&gt;&lt;strong&gt;支持！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;分类：&lt;font color=&quot;#008000&quot;&gt;&lt;strong&gt;支持！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;修改：&lt;font color=&quot;#008000&quot;&gt;&lt;strong&gt;支持！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;</content:encoded><pubDate>Tue, 25 Dec 2007 20:02:37 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4866208191593256515.post-5162204053268331473</guid><dc:creator>传说一梦</dc:creator><fs:srclink>http://blog.tanggaowei.com/2007/12/windows-live-writer_25.html</fs:srclink><fs:srcfeed>http://blog.tanggaowei.com/atom.xml</fs:srcfeed><fs:itemid>feedsky/tanggaowei/~6113480/73774783/1218758</fs:itemid></item><item><title>测试 Windows Live Writer</title><link atom:title="测试 Windows Live Writer" atom:type="text/html">http://item.feedsky.com/~feedsky/tanggaowei/~6113480/73774784/1218758/1/item.html</link><id xmlns="http://www.w3.org/2005/Atom">tag:blogger.com,1999:blog-4866208191593256515.post-4291774116105445668</id><content xmlns="http://www.w3.org/2005/Atom" type="html">&lt;p&gt;测试结果：    &lt;br /&gt;    &lt;br /&gt;标题：&lt;font color=&quot;#00ff00&quot;&gt;&lt;strong&gt;OK！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;分类：&lt;font color=&quot;#00ff00&quot;&gt;&lt;strong&gt;OK！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;内容：&lt;font color=&quot;#00ff00&quot;&gt;&lt;strong&gt;OK！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>传说一梦</name></author><content:encoded>&lt;p&gt;测试结果：    &lt;br /&gt;    &lt;br /&gt;标题：&lt;font color=&quot;#00ff00&quot;&gt;&lt;strong&gt;OK！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;分类：&lt;font color=&quot;#00ff00&quot;&gt;&lt;strong&gt;OK！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;内容：&lt;font color=&quot;#00ff00&quot;&gt;&lt;strong&gt;OK！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;</content:encoded><category domain="http://www.blogger.com/atom/ns#">生活</category><pubDate>Tue, 25 Dec 2007 19:52:39 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4866208191593256515.post-4291774116105445668</guid><dc:creator>传说一梦</dc:creator><fs:srclink>http://blog.tanggaowei.com/2007/12/windows-live-writer.html</fs:srclink><fs:srcfeed>http://blog.tanggaowei.com/atom.xml</fs:srcfeed><fs:itemid>feedsky/tanggaowei/~6113480/73774784/1218758</fs:itemid></item><item><title>《穷爸爸富爸爸》读书笔记</title><link atom:title="《穷爸爸富爸爸》读书笔记" atom:type="text/html">http://item.feedsky.com/~feedsky/tanggaowei/~6113480/73774785/1218758/1/item.html</link><id xmlns="http://www.w3.org/2005/Atom">tag:blogger.com,1999:blog-4866208191593256515.post-8284192047613521814</id><content xmlns="http://www.w3.org/2005/Atom" type="html">&lt;br /&gt;&lt;p&gt;（原来看《穷爸爸富爸爸》时做的笔记，贴出来作个记录）&lt;br/&gt;&lt;br/&gt;投资是执行计划的单调乏味的过程。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;找一个可以让你致富的方法，然后照着去做。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;当你背离你的简单计划，改变方向只追逐眼前的诱惑时，灾难就要发生了。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;赚钱不是一定需要高等教育、好工作或是本钱。你只要知道你的目标是什么，然后制订一个计划并坚持到底就足够了。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;所有投资方案都是从财务计划开始的。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;要根据当前的经济情况，来调整保险在你计划中的地位。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;要记住，在参与马拉松比赛的开始阶段，最好采取慢跑。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;要明白投资是一个团队活动。财商会告诉你什么时候该独自做事，什么时候该向别人寻求帮助。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;你的财务协作人员应该包括：&lt;br/&gt;&lt;/strong&gt;&lt;br/&gt;1、财务设计师&lt;br/&gt;2、银行家&lt;br/&gt;3、会计师&lt;br/&gt;4、律师&lt;br/&gt;5、经纪人&lt;br/&gt;6、簿记员&lt;br/&gt;7、保险经纪人&lt;br/&gt;8、成功的顾问&lt;/p&gt;&lt;br /&gt;&lt;p&gt;生活是一个残酷无情的教师。它通过惩罚的方式来给你上课。不管你喜欢与否，但它的确是一个学习的过程。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;富爸爸说，如果我有十项投资的话，只要三项动作良好，这三项就成为财富的主要来源。五项可能是形同虚设，另外两项就成为空难。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;制定两个计划：&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;1、安全计划或舒适计划&lt;br/&gt;2、富有计划&lt;/p&gt;&lt;br /&gt;&lt;p&gt;时间是有价格的。我们坐飞机，是在买时间，而不是节约时间。我们购物时节约金钱，很可能是在浪费时间。而时间比金钱更重要。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;穷人用金钱衡量价值，富人用时间衡量价值。时间比金钱更重要。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;实现安全和舒适的生活，只需要工作，然后把钱交给专业经纪人或机构去管理，由他们代为进行长期投资。但是如果想获得财富，就必须投资于比金钱更有价值的东西，那就是时间。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;要投资时间，制订一个计划，让钱为我们工作。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;一旦你的财务安全计划或财务舒适计划进入了轨道，并正常运行，那么你就能更好地分析思考你从朋友处听到的与投资有关的小道消息了。投资要用心去做。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;投资时，许多人不懂得控制，就像开车时不握住方向盘一样。投资计划就像路线图，你要控制好方向，按着这条路走就可以了。控制就是遵循一定的原则。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;第一是计划，第二是原则。&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;人们认为投资冒险的原因有三点：&lt;br/&gt;&lt;/strong&gt;&lt;br/&gt;1、没有接受过&quot;如何成为投资者&quot;的专门训练。&lt;br/&gt;2、多数投资都缺乏控制力。&lt;br/&gt;3、多数人是在外部投资，而不是从内部投资。买卖要在知悉对方内部情况的基础上成交。既要有外部投资，又进行内部投资。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在安全和舒适的水平上进行投资时，外部投资就是十分正确的。这就是为什么你会愿意把钱交给一个内行代替你去投资，因为他比你更接近内幕。可是如果你想获得更大财富，你就得比那些受人之托的投资专家们更加熟悉你所投资的公司的内幕实情。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;要想熟悉内幕实情，就要把时间花在研究投资对象上。&lt;/p&gt;&lt;br /&gt;&lt;br/&gt;&lt;p&gt;&lt;strong&gt;十项投资控制原则：&lt;br/&gt;&lt;/strong&gt;&lt;br/&gt;一、弄清你的工作所得的钱是属于哪种类型的收入。&lt;br/&gt;1.工资收入&lt;br/&gt;2.有价证券收入&lt;br/&gt;3.被动收入（多为不动产收入）&lt;br/&gt;&lt;br/&gt;二、尽可能有效地把你的工资收入变为证券收入和被动收入。这是最基本的。&lt;br/&gt;&lt;br/&gt;三、通过购买证券将工资收入留住，并将工资收入转为被动收入和证券收入。&lt;br/&gt;1.股票和不动产都是一种证券，但并不一定是资产。&lt;br/&gt;2.同一证券可以在资产与负债之间相互转化。比如12月我以每股20美元的价钱买进ABC公司的100股股票，到次年1月份，我以每股30美元的价钱卖出10股，于是这10股股票就成了资产，因为他们增加了我的收入。但到了3月份，我仅以每股10美元的价钱卖出了10股，此刻的10股变成了煞有负债，因为它使我产生亏损。&lt;br/&gt;&lt;br/&gt;四、投资者本身才是真正的资产或者负债。&lt;br/&gt;&lt;br/&gt;五、真正的投资者是能未雨绸缪，非投资者却总想猜测将来会发生什么、什么时间发生。&lt;br/&gt;&lt;br/&gt;六、如果你准备好了，也就是说，你学习了投资知识，有了投资经验，并且找到了一笔好的买卖，这时，钱就会自己找上门来，或者说，你就会找到钱。好买卖总是会引发人们的欲望。&lt;br/&gt;&lt;br/&gt;七、对风险和回报的评估能力。&lt;br/&gt;1.教育&lt;br/&gt;2.经验&lt;br/&gt;3.充足的资金&lt;br/&gt;&lt;br/&gt;。。。&lt;br/&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;损益表和资产负债表是两张最主要的财务报表，它能带你看到世界上任何一家公司，任何一项不动产和任何一个国家表面现象后面的东西。就好像潜水时戴上潜水眼罩，你就能看清潜藏在水下面的东西一样。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;要补上《投资学》、《会计学》&lt;/p&gt;&lt;br /&gt;&lt;p&gt;要想了解财务的全部情况，至少需要两份财务报表。因为你的资产正是别人的负责，或你的负责正是别人的资产。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;一个项目是否为资产并不是绝对的。不动产是资产，但它也可能成为你的负责。当它每个月给你带来现金流时它是资产，当它每个月所你的现金带走时，它就是你的负责。头脑可以把项目变成资产，头脑也可以把项目变成负责。所以，要考虑创造资产，而不是努力工作来购置资产。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;你的头脑是你最有用的资产，但如果使用不当，它会是你最大的负责。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;要努力创造资产，而不仅仅是购置资产。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;一个古老的格言--我听见了，我又忘记了；我看见了，我就记住了；我做了，我就明白了。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;智谋投资者定义为既精通理财知识又熟悉以下法律的投资者：&lt;br/&gt;&lt;/strong&gt;&lt;br/&gt;　1、税法&lt;br/&gt;　2、公司法&lt;br/&gt;　3、证券法&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;智谋型投资者掌握的投资控制工具：&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;　1、自我控制&lt;br/&gt;　2、控制两个比率，即收入/支出比率及资产/负债比率&lt;br/&gt;　3、控制税款&lt;br/&gt;　4、控制购买和售出的时间&lt;br/&gt;　5、控制经纪业务&lt;br/&gt;　6、控制E-T-C（实体、时机和收入特性）&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;收入特性：&lt;br/&gt;&lt;/strong&gt;&lt;br/&gt;　1、工资收入（交税）&lt;br/&gt;　2、被动收入（不交税）&lt;br/&gt;　3、证券组合收入（不交税）&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;智谋型投资者对下列概念了如指掌：&lt;br/&gt;&lt;/strong&gt;&lt;br/&gt;　1、好债与坏债（如用来获取每月都有现金流收入的可出租资产的债务是好债务）&lt;br/&gt;　2、好支出与坏支出（如用在税务、法律咨询方面的支出为好支出）&lt;br/&gt;　3、好亏损与坏亏损（如因不动产贬值而引起的亏损为好亏损）&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;词语代表的重要性排序：&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;1、富有 1、时间&lt;br/&gt;2、舒适 2、金钱&lt;br/&gt;3、安全&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br/&gt;&lt;strong&gt;扬长避短&lt;br/&gt;&lt;/strong&gt;&lt;br/&gt;不用害怕自己的短处，因为每个人都有短处，重要的是能扬长避短。成功是因为你发挥了你的长处，并不是因为你没有短处。正确的总结自己的失败可以将自己的短处转化为长处。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;人剑合一&lt;br/&gt;&lt;br/&gt;&lt;/strong&gt;掌握一种工具或技能要做到&quot;人剑合一&quot;，即让它成为自己的一部分，就像是天生的一样。比如学习骑自行车，当你学一定的熟练程度时，你可以一边骑车一边和别人说话或是看看路边的风景，就好像你骑自行车是你天生的技能一样。对每一项重要的技能都要努力做到&quot;人剑合一&quot;，这样你才能学习到无限多的技能。否则，你学到的技能就有可能成为你的负担，而阻碍你学习和发挥另外的技能。比如你学习的骑车技能如果没有学得足够好，那么你骑车的时候就很少能做其它的事情，而且在你运用这种技能的时候你还会带有或多或少的恐惧心理，从而给自己带来不好的感觉。一项技能不能做到&quot;人剑合一&quot;而且还会影响你对某些其它技能学习的信心。比如你自行车骑得不够好，那么从心理上你就可能觉得自己很难学会电动车。而电动车事实是更容易学的一种技能。自行车骑得好的人可能就觉得电动车学都不用学就会骑。而多半情况是他们真地不用学就能够骑。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;在对错误&lt;br/&gt;&lt;/strong&gt;&lt;br/&gt;不要说谎&lt;br/&gt;不要指责别人&lt;br/&gt;不要开脱责任&lt;br/&gt;不要半途而废&lt;br/&gt;不要说&quot;我再也不那样做了&quot;，而要努力从错误中吸取教训。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;丘吉尔：&quot;成功，是一种从一个失败到另一个失败，而能够始终不丧失信心的能力。&quot;&lt;/p&gt;&lt;br /&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>传说一梦</name></author><content:encoded>&lt;br /&gt;&lt;p&gt;（原来看《穷爸爸富爸爸》时做的笔记，贴出来作个记录）&lt;br/&gt;&lt;br/&gt;投资是执行计划的单调乏味的过程。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;找一个可以让你致富的方法，然后照着去做。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;当你背离你的简单计划，改变方向只追逐眼前的诱惑时，灾难就要发生了。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;赚钱不是一定需要高等教育、好工作或是本钱。你只要知道你的目标是什么，然后制订一个计划并坚持到底就足够了。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;所有投资方案都是从财务计划开始的。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;要根据当前的经济情况，来调整保险在你计划中的地位。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;要记住，在参与马拉松比赛的开始阶段，最好采取慢跑。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;要明白投资是一个团队活动。财商会告诉你什么时候该独自做事，什么时候该向别人寻求帮助。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;你的财务协作人员应该包括：&lt;br/&gt;&lt;/strong&gt;&lt;br/&gt;1、财务设计师&lt;br/&gt;2、银行家&lt;br/&gt;3、会计师&lt;br/&gt;4、律师&lt;br/&gt;5、经纪人&lt;br/&gt;6、簿记员&lt;br/&gt;7、保险经纪人&lt;br/&gt;8、成功的顾问&lt;/p&gt;&lt;br /&gt;&lt;p&gt;生活是一个残酷无情的教师。它通过惩罚的方式来给你上课。不管你喜欢与否，但它的确是一个学习的过程。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;富爸爸说，如果我有十项投资的话，只要三项动作良好，这三项就成为财富的主要来源。五项可能是形同虚设，另外两项就成为空难。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;制定两个计划：&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;1、安全计划或舒适计划&lt;br/&gt;2、富有计划&lt;/p&gt;&lt;br /&gt;&lt;p&gt;时间是有价格的。我们坐飞机，是在买时间，而不是节约时间。我们购物时节约金钱，很可能是在浪费时间。而时间比金钱更重要。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;穷人用金钱衡量价值，富人用时间衡量价值。时间比金钱更重要。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;实现安全和舒适的生活，只需要工作，然后把钱交给专业经纪人或机构去管理，由他们代为进行长期投资。但是如果想获得财富，就必须投资于比金钱更有价值的东西，那就是时间。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;要投资时间，制订一个计划，让钱为我们工作。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;一旦你的财务安全计划或财务舒适计划进入了轨道，并正常运行，那么你就能更好地分析思考你从朋友处听到的与投资有关的小道消息了。投资要用心去做。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;投资时，许多人不懂得控制，就像开车时不握住方向盘一样。投资计划就像路线图，你要控制好方向，按着这条路走就可以了。控制就是遵循一定的原则。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;第一是计划，第二是原则。&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;人们认为投资冒险的原因有三点：&lt;br/&gt;&lt;/strong&gt;&lt;br/&gt;1、没有接受过&quot;如何成为投资者&quot;的专门训练。&lt;br/&gt;2、多数投资都缺乏控制力。&lt;br/&gt;3、多数人是在外部投资，而不是从内部投资。买卖要在知悉对方内部情况的基础上成交。既要有外部投资，又进行内部投资。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在安全和舒适的水平上进行投资时，外部投资就是十分正确的。这就是为什么你会愿意把钱交给一个内行代替你去投资，因为他比你更接近内幕。可是如果你想获得更大财富，你就得比那些受人之托的投资专家们更加熟悉你所投资的公司的内幕实情。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;要想熟悉内幕实情，就要把时间花在研究投资对象上。&lt;/p&gt;&lt;br /&gt;&lt;br/&gt;&lt;p&gt;&lt;strong&gt;十项投资控制原则：&lt;br/&gt;&lt;/strong&gt;&lt;br/&gt;一、弄清你的工作所得的钱是属于哪种类型的收入。&lt;br/&gt;1.工资收入&lt;br/&gt;2.有价证券收入&lt;br/&gt;3.被动收入（多为不动产收入）&lt;br/&gt;&lt;br/&gt;二、尽可能有效地把你的工资收入变为证券收入和被动收入。这是最基本的。&lt;br/&gt;&lt;br/&gt;三、通过购买证券将工资收入留住，并将工资收入转为被动收入和证券收入。&lt;br/&gt;1.股票和不动产都是一种证券，但并不一定是资产。&lt;br/&gt;2.同一证券可以在资产与负债之间相互转化。比如12月我以每股20美元的价钱买进ABC公司的100股股票，到次年1月份，我以每股30美元的价钱卖出10股，于是这10股股票就成了资产，因为他们增加了我的收入。但到了3月份，我仅以每股10美元的价钱卖出了10股，此刻的10股变成了煞有负债，因为它使我产生亏损。&lt;br/&gt;&lt;br/&gt;四、投资者本身才是真正的资产或者负债。&lt;br/&gt;&lt;br/&gt;五、真正的投资者是能未雨绸缪，非投资者却总想猜测将来会发生什么、什么时间发生。&lt;br/&gt;&lt;br/&gt;六、如果你准备好了，也就是说，你学习了投资知识，有了投资经验，并且找到了一笔好的买卖，这时，钱就会自己找上门来，或者说，你就会找到钱。好买卖总是会引发人们的欲望。&lt;br/&gt;&lt;br/&gt;七、对风险和回报的评估能力。&lt;br/&gt;1.教育&lt;br/&gt;2.经验&lt;br/&gt;3.充足的资金&lt;br/&gt;&lt;br/&gt;。。。&lt;br/&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;损益表和资产负债表是两张最主要的财务报表，它能带你看到世界上任何一家公司，任何一项不动产和任何一个国家表面现象后面的东西。就好像潜水时戴上潜水眼罩，你就能看清潜藏在水下面的东西一样。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;要补上《投资学》、《会计学》&lt;/p&gt;&lt;br /&gt;&lt;p&gt;要想了解财务的全部情况，至少需要两份财务报表。因为你的资产正是别人的负责，或你的负责正是别人的资产。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;一个项目是否为资产并不是绝对的。不动产是资产，但它也可能成为你的负责。当它每个月给你带来现金流时它是资产，当它每个月所你的现金带走时，它就是你的负责。头脑可以把项目变成资产，头脑也可以把项目变成负责。所以，要考虑创造资产，而不是努力工作来购置资产。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;你的头脑是你最有用的资产，但如果使用不当，它会是你最大的负责。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;要努力创造资产，而不仅仅是购置资产。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;一个古老的格言--我听见了，我又忘记了；我看见了，我就记住了；我做了，我就明白了。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;智谋投资者定义为既精通理财知识又熟悉以下法律的投资者：&lt;br/&gt;&lt;/strong&gt;&lt;br/&gt;　1、税法&lt;br/&gt;　2、公司法&lt;br/&gt;　3、证券法&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;智谋型投资者掌握的投资控制工具：&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;　1、自我控制&lt;br/&gt;　2、控制两个比率，即收入/支出比率及资产/负债比率&lt;br/&gt;　3、控制税款&lt;br/&gt;　4、控制购买和售出的时间&lt;br/&gt;　5、控制经纪业务&lt;br/&gt;　6、控制E-T-C（实体、时机和收入特性）&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;收入特性：&lt;br/&gt;&lt;/strong&gt;&lt;br/&gt;　1、工资收入（交税）&lt;br/&gt;　2、被动收入（不交税）&lt;br/&gt;　3、证券组合收入（不交税）&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;智谋型投资者对下列概念了如指掌：&lt;br/&gt;&lt;/strong&gt;&lt;br/&gt;　1、好债与坏债（如用来获取每月都有现金流收入的可出租资产的债务是好债务）&lt;br/&gt;　2、好支出与坏支出（如用在税务、法律咨询方面的支出为好支出）&lt;br/&gt;　3、好亏损与坏亏损（如因不动产贬值而引起的亏损为好亏损）&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;词语代表的重要性排序：&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;1、富有 1、时间&lt;br/&gt;2、舒适 2、金钱&lt;br/&gt;3、安全&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br/&gt;&lt;strong&gt;扬长避短&lt;br/&gt;&lt;/strong&gt;&lt;br/&gt;不用害怕自己的短处，因为每个人都有短处，重要的是能扬长避短。成功是因为你发挥了你的长处，并不是因为你没有短处。正确的总结自己的失败可以将自己的短处转化为长处。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;人剑合一&lt;br/&gt;&lt;br/&gt;&lt;/strong&gt;掌握一种工具或技能要做到&quot;人剑合一&quot;，即让它成为自己的一部分，就像是天生的一样。比如学习骑自行车，当你学一定的熟练程度时，你可以一边骑车一边和别人说话或是看看路边的风景，就好像你骑自行车是你天生的技能一样。对每一项重要的技能都要努力做到&quot;人剑合一&quot;，这样你才能学习到无限多的技能。否则，你学到的技能就有可能成为你的负担，而阻碍你学习和发挥另外的技能。比如你学习的骑车技能如果没有学得足够好，那么你骑车的时候就很少能做其它的事情，而且在你运用这种技能的时候你还会带有或多或少的恐惧心理，从而给自己带来不好的感觉。一项技能不能做到&quot;人剑合一&quot;而且还会影响你对某些其它技能学习的信心。比如你自行车骑得不够好，那么从心理上你就可能觉得自己很难学会电动车。而电动车事实是更容易学的一种技能。自行车骑得好的人可能就觉得电动车学都不用学就会骑。而多半情况是他们真地不用学就能够骑。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;在对错误&lt;br/&gt;&lt;/strong&gt;&lt;br/&gt;不要说谎&lt;br/&gt;不要指责别人&lt;br/&gt;不要开脱责任&lt;br/&gt;不要半途而废&lt;br/&gt;不要说&quot;我再也不那样做了&quot;，而要努力从错误中吸取教训。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;丘吉尔：&quot;成功，是一种从一个失败到另一个失败，而能够始终不丧失信心的能力。&quot;&lt;/p&gt;&lt;br /&gt;</content:encoded><category domain="http://www.blogger.com/atom/ns#">生活</category><pubDate>Mon, 24 Dec 2007 18:17:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4866208191593256515.post-8284192047613521814</guid><dc:creator>传说一梦</dc:creator><fs:srclink>http://blog.tanggaowei.com/2007/12/blog-post.html</fs:srclink><fs:srcfeed>http://blog.tanggaowei.com/atom.xml</fs:srcfeed><fs:itemid>feedsky/tanggaowei/~6113480/73774785/1218758</fs:itemid></item><item><title>Zoundry 发布 blogger.com 很不错！</title><link atom:title="Zoundry 发布 blogger.com 很不错！" atom:type="text/html">http://item.feedsky.com/~feedsky/tanggaowei/~6113480/73774786/1218758/1/item.html</link><id xmlns="http://www.w3.org/2005/Atom">tag:blogger.com,1999:blog-4866208191593256515.post-3240304485963277414</id><content xmlns="http://www.w3.org/2005/Atom" type="html">&lt;br /&gt;&lt;p&gt;今天 Google Docs 打开又很慢。这迫使我想要找个新的发布 blogger 的工具。Google 了一下，看见&quot; &lt;a href=&quot;http://www.bbon.cn/post/117&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link to 10款免费Blog客户端发布软件&quot;&gt;10款免费Blog客户端发布软件&lt;/a&gt;&quot; 里介绍的 Zoundry 。试用了一下，感觉很不错！&lt;br/&gt;&lt;br/&gt;Google Docs 和 Blogger.Com 虽然同是 Google 的产品，但是 Google Docs 对 Blogger.Com 的支持却还没有其它软件好。比如 Google Docs 不支持发布文章的标题（荒谬），也不支持对文章的分类。而 &lt;strong&gt;Zoundry 就完全支持文章标题、文章分类等基本且常用的功能&lt;/strong&gt;。&lt;br/&gt;&lt;br/&gt;Zoundry 还能同时管理多个不同服务商的博客。当然，&lt;strong&gt;它也能同时管理一个 Blogger.Com 帐号下的多个博客&lt;/strong&gt;。&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Zoundry 不仅能发布新的文章，还能修改以前的文章&lt;/strong&gt;。&lt;br/&gt;&lt;br/&gt;在修改文章前，Zoundry 会将服务器上的原有文章下载到本地。&lt;strong&gt;这样相当于在本地作了一个数据备份，让博客更安全&lt;/strong&gt;。&lt;br/&gt;&lt;br/&gt;还有更多更好的功能慢慢摸索。&lt;br/&gt;&lt;br/&gt;还有，&lt;strong&gt;Zoundry 是免费的，且有简体中文版&lt;/strong&gt;。&lt;br/&gt;&lt;br/&gt;Zoundry 下载地址：&lt;a href=&quot;http://www.zoundry.com/download.html&quot;&gt;http://www.zoundry.com/download.html&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>传说一梦</name></author><content:encoded>&lt;br /&gt;&lt;p&gt;今天 Google Docs 打开又很慢。这迫使我想要找个新的发布 blogger 的工具。Google 了一下，看见&quot; &lt;a href=&quot;http://www.bbon.cn/post/117&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link to 10款免费Blog客户端发布软件&quot;&gt;10款免费Blog客户端发布软件&lt;/a&gt;&quot; 里介绍的 Zoundry 。试用了一下，感觉很不错！&lt;br/&gt;&lt;br/&gt;Google Docs 和 Blogger.Com 虽然同是 Google 的产品，但是 Google Docs 对 Blogger.Com 的支持却还没有其它软件好。比如 Google Docs 不支持发布文章的标题（荒谬），也不支持对文章的分类。而 &lt;strong&gt;Zoundry 就完全支持文章标题、文章分类等基本且常用的功能&lt;/strong&gt;。&lt;br/&gt;&lt;br/&gt;Zoundry 还能同时管理多个不同服务商的博客。当然，&lt;strong&gt;它也能同时管理一个 Blogger.Com 帐号下的多个博客&lt;/strong&gt;。&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Zoundry 不仅能发布新的文章，还能修改以前的文章&lt;/strong&gt;。&lt;br/&gt;&lt;br/&gt;在修改文章前，Zoundry 会将服务器上的原有文章下载到本地。&lt;strong&gt;这样相当于在本地作了一个数据备份，让博客更安全&lt;/strong&gt;。&lt;br/&gt;&lt;br/&gt;还有更多更好的功能慢慢摸索。&lt;br/&gt;&lt;br/&gt;还有，&lt;strong&gt;Zoundry 是免费的，且有简体中文版&lt;/strong&gt;。&lt;br/&gt;&lt;br/&gt;Zoundry 下载地址：&lt;a href=&quot;http://www.zoundry.com/download.html&quot;&gt;http://www.zoundry.com/download.html&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;</content:encoded><category domain="http://www.blogger.com/atom/ns#">生活</category><category domain="http://www.blogger.com/atom/ns#">网事</category><category domain="http://www.blogger.com/atom/ns#">互联网</category><pubDate>Mon, 24 Dec 2007 17:08:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4866208191593256515.post-3240304485963277414</guid><dc:creator>传说一梦</dc:creator><fs:srclink>http://blog.tanggaowei.com/2007/12/zoundry-bloggercom.html</fs:srclink><fs:srcfeed>http://blog.tanggaowei.com/atom.xml</fs:srcfeed><fs:itemid>feedsky/tanggaowei/~6113480/73774786/1218758</fs:itemid></item><item><title>Spring 让 Struts 更专注于控制业务流程</title><link atom:title="Spring 让 Struts 更专注于控制业务流程" atom:type="text/html">http://item.feedsky.com/~feedsky/tanggaowei/~6113480/73774787/1218758/1/item.html</link><id xmlns="http://www.w3.org/2005/Atom">tag:blogger.com,1999:blog-4866208191593256515.post-419056529102111020</id><content xmlns="http://www.w3.org/2005/Atom" type="html">&lt;br /&gt;&lt;p&gt;Struts 可实现 MVC（模型/视图/控制器） 模式，并且成功的将&quot;视图&quot;，即&quot;表示层&quot;分离出来。但它对&quot;模型&quot;，也就是&quot;业务逻辑层&quot;的分离还不够彻底。因为 Struts 直接在控制部分的 Action 里创建&quot;业务逻辑&quot;对象。这样做，不方便采用新的创建对象方法，而且，想替换原有的&quot;业务逻辑&quot;对象也必需修改 Action 的源代码才能实现。&lt;br/&gt;&lt;br/&gt;Spring 采用&quot;控制反转(IoC)&quot;的设计模式，将&quot;业务逻辑&quot;对象的创建过程从 Action 里分离出来；Spring 还采用了&quot;工厂模式&quot;，让对象的创建可控制，实现了&quot;业务逻辑&quot;对象的可替换性。通过 Spring 的配制文件（applicationContext.xml） 很容易将创建好的&quot;业务逻辑&quot;对象传递给 Action ，因此，很容易替换原有的&quot;业务逻辑&quot;对象。这样，Struts 就能更专注于业务流程的控制。&lt;br/&gt;&lt;br/&gt;Struts 用于控制业务流程，Spring 用于管理业务逻辑，这样分工明确，使系统的更好的实现松散耦合，提高了系统的灵活性和可扩展性。&lt;/p&gt;&lt;br /&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>传说一梦</name></author><content:encoded>&lt;br /&gt;&lt;p&gt;Struts 可实现 MVC（模型/视图/控制器） 模式，并且成功的将&quot;视图&quot;，即&quot;表示层&quot;分离出来。但它对&quot;模型&quot;，也就是&quot;业务逻辑层&quot;的分离还不够彻底。因为 Struts 直接在控制部分的 Action 里创建&quot;业务逻辑&quot;对象。这样做，不方便采用新的创建对象方法，而且，想替换原有的&quot;业务逻辑&quot;对象也必需修改 Action 的源代码才能实现。&lt;br/&gt;&lt;br/&gt;Spring 采用&quot;控制反转(IoC)&quot;的设计模式，将&quot;业务逻辑&quot;对象的创建过程从 Action 里分离出来；Spring 还采用了&quot;工厂模式&quot;，让对象的创建可控制，实现了&quot;业务逻辑&quot;对象的可替换性。通过 Spring 的配制文件（applicationContext.xml） 很容易将创建好的&quot;业务逻辑&quot;对象传递给 Action ，因此，很容易替换原有的&quot;业务逻辑&quot;对象。这样，Struts 就能更专注于业务流程的控制。&lt;br/&gt;&lt;br/&gt;Struts 用于控制业务流程，Spring 用于管理业务逻辑，这样分工明确，使系统的更好的实现松散耦合，提高了系统的灵活性和可扩展性。&lt;/p&gt;&lt;br /&gt;</content:encoded><category domain="http://www.blogger.com/atom/ns#">软件开发</category><category domain="http://www.blogger.com/atom/ns#">软件设计</category><pubDate>Mon, 24 Dec 2007 16:38:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4866208191593256515.post-419056529102111020</guid><dc:creator>传说一梦</dc:creator><fs:srclink>http://blog.tanggaowei.com/2007/12/spring-struts.html</fs:srclink><fs:srcfeed>http://blog.tanggaowei.com/atom.xml</fs:srcfeed><fs:itemid>feedsky/tanggaowei/~6113480/73774787/1218758</fs:itemid></item><item><title>MyEclipse开发SSH（Struts+Spring+Hibernate）入门</title><link atom:title="MyEclipse开发SSH（Struts+Spring+Hibernate）入门" atom:type="text/html">http://item.feedsky.com/~feedsky/tanggaowei/~6113480/73774788/1218758/1/item.html</link><id xmlns="http://www.w3.org/2005/Atom">tag:blogger.com,1999:blog-4866208191593256515.post-7523058474408063831</id><content xmlns="http://www.w3.org/2005/Atom" type="html">（本文参考自 oksonic 的“&lt;a id=&quot;viewpost1_TitleUrl&quot; href=&quot;http://www.blogjava.net/oksonic/archive/2005/11/06/18370.html&quot;&gt;Struts+Spring+Hibernate练习(完整)&lt;/a&gt;”）&lt;br&gt;&lt;br&gt;源码下载：&lt;a title=&quot;http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=2857703&quot; href=&quot;http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=2857703&quot; id=&quot;bon:&quot;&gt;http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=2857703&lt;/a&gt;&lt;br&gt;&lt;h3&gt;1. 准备&lt;br&gt;&lt;/h3&gt;&lt;p&gt;　　工具：&lt;a title=&quot;MyEclipse 6.0.1 GA&quot; target=&quot;_blank&quot; href=&quot;http://www.myeclipseide.com/&quot; id=&quot;z7iy&quot;&gt;MyEclipse 6.0.1 GA&lt;/a&gt;、&lt;a title=&quot;mysql-connector-java-5.0.4-bin.jar&quot; target=&quot;_blank&quot; href=&quot;http://drc-dev.ohiolink.edu/browser/fedora-core/tags/upstream/lib/mysql-connector-java-5.0.4-bin.jar?rev=636&quot; id=&quot;s2.:&quot;&gt;mysql-connector-java-5.0.4-bin.jar&lt;/a&gt;、&lt;a title=&quot;mysql-gui-tools&quot; target=&quot;_blank&quot; href=&quot;http://dev.mysql.com/downloads/gui-tools/5.0.html&quot; id=&quot;teuw&quot;&gt;MySql GUI Tools 5.0&lt;/a&gt;（便于管理MySql数据库，不是必须）&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;　　环境：&lt;a title=&quot;Tomcat5.5&quot; target=&quot;_blank&quot; href=&quot;http://tomcat.apache.org/&quot; id=&quot;i:oc&quot;&gt;Tomcat 5.5&lt;/a&gt;、&lt;a title=&quot;MySql 5.0&quot; target=&quot;_blank&quot; href=&quot;http://dev.mysql.com/downloads/mysql/5.0.html&quot; id=&quot;vh5u&quot;&gt;MySql 5.0&lt;/a&gt;&lt;a title=&quot;mysql-connector-java-5.0.4-bin.jar&quot; target=&quot;_blank&quot; href=&quot;http://drc-dev.ohiolink.edu/browser/fedora-core/tags/upstream/lib/mysql-connector-java-5.0.4-bin.jar?rev=636&quot; id=&quot;s2.:&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;1.1. 新建工程&lt;br&gt;&lt;br&gt;&lt;/b&gt;　　操作：[Menu] File/New/Web Project&lt;br&gt; &lt;br&gt; 　　工程名：login&lt;br&gt;&lt;div id=&quot;tf2p&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 525px; height: 500px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_319f9jgqjdg&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;h3&gt;2. Struts 部分&lt;/h3&gt;&lt;b&gt;&lt;br&gt;2.1. 添加 Struts 功能支持&lt;br&gt;&lt;/b&gt;&lt;br&gt;　　操作：[Menu] MyEclipse/Project Capabilities/Add Struts Capabilities&lt;br&gt;&lt;div id=&quot;nngm&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;div id=&quot;f3pw&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 557px; height: 468px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_335gprx9cdh&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;b&gt;2.2. 创建 ActionForm 类&lt;br&gt;&lt;br&gt;&lt;/b&gt;　　操作：[Ctrl+N] MyEclipse/Web-Struts/Struts 1.2 Form&lt;br&gt;&lt;br&gt;　　类名：LoginForm&lt;div id=&quot;vj.:&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 557px; height: 595px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_336dkdnvz5n&quot;&gt;&lt;br&gt;&lt;/div&gt;　　在 &quot;Form Properties&quot; 选项卡为 loginForm 新增两个属性：username、password；&lt;br&gt;&lt;br&gt;　　在 &quot;JSP&quot; 选项卡钩选 &quot;Create JSP form&quot; 选项，将新建路径改为 &quot;/login.jsp&quot;（login.jsp文件将被自动创建）。&lt;br&gt;&lt;br&gt;&lt;b&gt;2.3. 创建 Action 类&lt;br&gt;&lt;br&gt;&lt;/b&gt;　　操作：[Ctrl+N] MyEclipse/Web-Struts/Struts 1.2 Action&lt;br&gt;&lt;br&gt;　　类名：LoginAction&lt;br&gt;&lt;div id=&quot;bya_&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 557px; height: 606px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_334hq8m4jg6&quot;&gt;&lt;br&gt;&lt;/div&gt;　　在 &quot;Form&quot; 选项卡的 &quot;Name&quot; 项选择 &quot;loginForm&quot;，&quot;Input Source&quot; 项输入 &quot;/login.jsp&quot;。&lt;br&gt;&lt;br&gt;&lt;b&gt;2.4. 创建 index.jsp 文件&lt;br&gt;&lt;br&gt;&lt;/b&gt;　　如果没有，创建 index.jsp 文件，并添加一个指向 login.jsp 的链接：&lt;span style=&quot;color: rgb(51, 51, 255);&quot;&gt;&amp;lt;a href=&quot;login.jsp&quot;&amp;gt;Login&amp;lt;/a&amp;gt;&lt;/span&gt;。&lt;br&gt;&lt;br&gt;&lt;b&gt;2.5. 创建Forword类&lt;br&gt;&lt;br&gt;&lt;/b&gt;　　操作：[Ctrl+N] MyEclipse/Web-Struts/Struts 1.2 Forword&lt;br&gt;&lt;br&gt;　　类名：indexForword&lt;br&gt;&lt;div id=&quot;x0.w&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 558px; height: 500px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_3374rnpstc6&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;br&gt;　　&quot;Name&quot; 项输入 &quot;indexForword&quot; ，&quot;Path&quot; 项输入 &quot;/index.jsp&quot; 。&lt;br&gt;&lt;br&gt;&lt;b&gt;2.6. 修改 LoginAction.java 文件&lt;br&gt;&lt;br&gt;&lt;/b&gt;　　修改 LoginAction 类的 execute 方法：&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#3333ff&quot;&gt;public class LoginAction extends Action {&lt;br&gt;&lt;br&gt;    public ActionForward execute(ActionMapping mapping, ActionForm form,&lt;br&gt;            HttpServletRequest request, HttpServletResponse response) {&lt;br&gt;        LoginForm loginForm = (LoginForm) form;&lt;br&gt;        &lt;font color=&quot;#009900&quot;&gt;String username=loginForm.getUsername();&lt;br&gt;        String password=loginForm.getPassword();&lt;br&gt;        if(username.equals(&quot;test&quot;)||password.equals(&quot;test&quot;)){&lt;br&gt;            return mapping.findForward(&quot;indexForword&quot;);&lt;br&gt;        }else{&lt;br&gt;            return mapping.getInputForward();&lt;br&gt;        }&lt;br&gt;&lt;/font&gt;    }&lt;br&gt;}&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;2.7. 修改 login.jsp 文件&lt;br&gt;&lt;br&gt;&lt;/b&gt;　　修改 &amp;lt;html:form&amp;gt; 标签：&lt;font color=&quot;#3333ff&quot;&gt;&amp;lt;html:form action=&quot;/login&quot;&amp;gt;&lt;/font&gt;。&lt;br&gt;&lt;br&gt;&lt;b&gt;2.8. 测试&lt;br&gt;&lt;br&gt;&lt;/b&gt;　　操作：[Menu] Run/Run，选择 MyEclipse Server Application 方式运行&lt;br&gt;&lt;br&gt;（&lt;font color=&quot;#ff0000&quot;&gt;要正常执行Run操作，需先安装 Tomcat5.5 。&lt;/font&gt;）&lt;br&gt;&lt;div id=&quot;g0jz&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 636px; height: 530px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_338g2z4pcgz&quot;&gt;&lt;br&gt;&lt;/div&gt;　　点击 index.jsp 页面的 &quot;Login&quot; 链接，跳转到 login.jsp 页面。在 login.jsp 页面输入 &quot;test/test&quot;，应该会登录成功，然后跳转到 index.jsp 页面；输入 &quot;test/123&quot; ，应该保持在 login.jsp 页面。&lt;br&gt;&lt;br&gt;　　如果测试成功，证明 Structs 运行正常。&lt;br&gt;&lt;br&gt;&lt;h3&gt;3. Spring 部分&lt;/h3&gt;&lt;b&gt;&lt;br&gt;3.1. 添加 Spring 功能支持&lt;br&gt;&lt;br&gt;&lt;/b&gt;　　操作：[Menu] MyEclipse/Project Capabilities/Add Spring Capabilities&lt;br&gt;&lt;div id=&quot;fezm&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 531px; height: 561px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_323d5wz3kcg&quot;&gt;&lt;br&gt;&lt;/div&gt;　　Spring 版本（ Spring version ）选择 &quot;Spring 1&quot;；&lt;br&gt;&lt;br&gt;　　开发包（libraries）选择 &quot;Spring 1.2 AOP Libraries、Spring 1.2 Core Libraries、Spring 1.2 Persistence Core Libraries、Spring 1.2 Persistence JDBC Libraries&quot; 四项；&lt;br&gt;&lt;br&gt;　　JAR Library Installation 选择 &quot;copy checked...&quot; ，&quot;Library Folder&quot; 项选择 &quot;/WebRoot/WEB-INF/lib&quot;（这样的话所需的类库都将拷贝到项目目录，方便以后的布署）。&lt;br&gt;&lt;br&gt;　　点击 &quot;下一步(Next)&quot; 创建配置文件，修改文件路径（Folder）到 &quot;WebRoot/WEB-INF&quot; 目录（以便和Struts配置文件一起管理），文件名称为默认的&quot;applicationContext.xml&quot;。&lt;div id=&quot;ly45&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 471px; height: 308px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_324dxwmk8c7&quot;&gt;&lt;br&gt;&lt;/div&gt;　　点击 &quot;完成(Finish)&quot; 。&lt;br&gt;&lt;br&gt;&lt;b&gt;3.2. 配置 struts-config.xml 文件&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　添加 Spring 插件（在 &amp;lt;message-resources&amp;gt; 标签后面添加）：&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#3333ff&quot;&gt;  &amp;lt;plug-in className=&quot;org.springframework.web.struts.ContextLoaderPlugIn&quot;&amp;gt;&lt;br&gt;    &amp;lt;set-property property=&quot;contextConfigLocation&quot; value=&quot;/WEB-INF/applicationContext.xml&quot; /&amp;gt;&lt;br&gt;  &amp;lt;/plug-in&amp;gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;　　修改 LoginAction 的配置（只需修改 type 属性）：&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#3333ff&quot;&gt;  &amp;lt;action-mappings &amp;gt;&lt;br&gt;    &amp;lt;action&lt;br&gt;      attribute=&quot;loginForm&quot;&lt;br&gt;      input=&quot;/login.jsp&quot;&lt;br&gt;      name=&quot;loginForm&quot;&lt;br&gt;      path=&quot;/login&quot;&lt;br&gt;      scope=&quot;request&quot;&lt;br&gt;      type=&quot;&lt;font color=&quot;#009900&quot;&gt;org.springframework.web.struts.DelegatingActionProxy&lt;/font&gt;&quot; /&amp;gt;&lt;br&gt;&lt;br&gt;  &amp;lt;/action-mappings&amp;gt;&lt;br&gt;&lt;/font&gt;&lt;br&gt;　　绿色字体部份为被修改过的内容，这里将使用 spring 的代理器 DelegatingActionProxy 来对 Action 进行控制。&lt;br&gt;&lt;br&gt;&lt;b&gt;3.3. 修改 Spring 配置文件 applicationContext.xml&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#3333ff&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&lt;br&gt;&amp;lt;!DOCTYPE beans PUBLIC &quot;-//SPRING//DTD BEAN//EN&quot; &quot;http://www.springframework.org/dtd/spring-beans.dtd&quot;&amp;gt;&lt;br&gt;&lt;br&gt;&amp;lt;beans&amp;gt;&lt;br&gt;  &lt;font color=&quot;#009900&quot;&gt;&amp;lt;bean name=&quot;/login&quot; class=&quot;com.login.struts.action.LoginAction&quot; singleton=&quot;false&quot;&amp;gt;&amp;lt;/bean&amp;gt;&lt;/font&gt;&lt;br&gt;&amp;lt;/beans&amp;gt;&lt;br&gt;&lt;/font&gt;&lt;br&gt;　　绿色字体是关于接受和处理 Action 控制权的配置内容，&quot;com.login.struts.action.LoginAction&quot; 即为原 struts 里的配置。&lt;br&gt;&lt;br&gt;&lt;b&gt;3.4. 测试&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　同上一次测试。测试成功证明 Spring 运行正常。&lt;br&gt;&lt;br&gt;&lt;h3&gt;4. Hibernate 部分&lt;/h3&gt;　　下面开始 Hibernate 部分，将原例修改为使用数据库进行用户名/密码验证。&lt;br&gt;&lt;br&gt;&lt;b&gt;4.1. 创建 mysql 数据库和表&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　添加表的代码如下：&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#3333ff&quot;&gt;CREATE TABLE user_table(&lt;br&gt;  ID int NOT NULL auto_increment,&lt;br&gt;  USERNAME varchar(45) NOT NULL default '',&lt;br&gt;  PASSWORD varchar(45) NOT NULL default '',&lt;br&gt;  PRIMARY KEY (ID)&lt;br&gt;)&lt;br&gt;&lt;/font&gt;&lt;br&gt;　　再添加一条记录：&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#3333ff&quot;&gt;insert into user_table (USERNAME,PASSWORD) values ('test','test')&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;4.2. 创建 MyEclipse 数据库驱动（DB Driver）&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　操作：[Menu] MyEclipse/Prefrences/MyEclipse/Database Explorer/Database Driver/DB Brower&lt;div id=&quot;qj0v&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 475px; height: 570px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_325tpqzkkg5&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;br&gt;　　在 DB Brower 的菜单中选择 &quot;New&quot; ，&quot;Driver Name&quot; 项输入 &quot;login-conn&quot; ，&quot;Connection URL&quot; 项输入 &quot;jdbc:mysql://localhost:3306/test&quot; ，然后输入正确的用户名（User Name）和密码（Password）按实际情况输入；&lt;br&gt;&lt;br&gt;　　在 &quot;Driver JARs&quot; 项添加 &quot;mysql-connector-java-5.0.4-bin.jar&quot; (可从网上下载)，在 &quot;Driver classname&quot; 里选择 &quot;com.mysql.jdbc.Driver&quot; ，其它自选。&lt;br&gt;&lt;br&gt;　　点击 &quot;完成(Finish)&quot;。&lt;br&gt;&lt;br&gt;&lt;b&gt;4.3. 添加 Hibernate 功能支持&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　操作：[Menu] MyEclipse/Project Capabilities/Add Hibernate Capabilities&lt;br&gt;&lt;div id=&quot;pje4&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 516px; height: 519px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_326dg4b4pgq&quot;&gt;&lt;/div&gt;&lt;br&gt;　　Hibernate 版本（Hibernate Specification）选择 &quot;Hibernate 3.1&quot; ，开发包（libraries）选择 Hibernate 3.1 Core Libraries 一项；&lt;br&gt;&lt;br&gt;　　JAR Library Installation 选择 &quot;copy checked...&quot; ，&quot;Library Folder&quot; 选择 &quot;/WebRoot/WEB-INF/lib&quot; 。&lt;br&gt;&lt;br&gt;　　点击 &quot;下一步(Next)&quot; 设置配置文件，选择 &quot;Spring configuration file (applicationContext.xml)&quot; 。&lt;br&gt;&lt;div id=&quot;rrh9&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 516px; height: 519px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_327v5387zfg&quot;&gt;&lt;br&gt;&lt;/div&gt;　　&quot;下一步(Next)&quot; 设置 Spring-Hibernate，选择 &quot;Existing Spring configuration file&quot; ，&quot;SessionFactory ID&quot; 项输入 &quot;sessionFactory&quot; 。&lt;br&gt;&lt;div id=&quot;d7.s&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;div id=&quot;c5rq&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 516px; height: 519px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_329gj9xz8g4&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;　　&quot;下一步(Next)&quot; 创建数据源对象，在 Bean Id 中输入 dataSource，&quot;DataSource&quot; 项选择 &quot;Use JDBC Dirver&quot; ，DB Driver 项选择 &quot;login-conn&quot; ，其余项会自动填充；&lt;div id=&quot;gmtq&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 516px; height: 519px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_330tqtsbr8x&quot;&gt;&lt;/div&gt;&lt;br&gt;　　记得选中 &quot;Copy DB driver jar(s) to project and add  to buidpath&quot; 项，以便将数据连接的库文件复制到项目，方便以后的布署。&lt;br&gt;&lt;br&gt;　　&quot;下一步(Next)&quot; 创建 SessionFactory 类，&quot;Java package&quot; 项设置为 &quot;com.login.Hibernate&quot; (没有则点击&quot;New&quot;按钮添加)，&quot;Class name&quot; 项修改为&quot;SessionFactory&quot; ，Java Compliance Level选择和创建项目时选择的Java版本。（本例中并没有用到SessionFactory类，留作今后扩展）&lt;br&gt;&lt;div id=&quot;jt.1&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 516px; height: 519px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_331cpv7g6gx&quot;&gt;&lt;br&gt;&lt;/div&gt;　　点击 &quot;完成(Finish)&quot;。&lt;br&gt;&lt;br&gt;&lt;b&gt;4.4. 创建对象关系映射(ORM)的相关文件&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　操作：[Menu] Window/Open Perspective/MyEclipse Database Explorer&lt;br&gt;&lt;div id=&quot;uh95&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 574px; height: 660px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_332gxx7rhzt&quot;&gt;&lt;/div&gt;&lt;br&gt;　　选中 user_table 表，点击右键，在出现的菜单中选择 &quot;Hibernate Reverse Engnieering&quot; 。&lt;br&gt;&lt;div id=&quot;i0nj&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 549px; height: 588px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_333vwh5xphf&quot;&gt;&lt;br&gt;&lt;/div&gt;　　在弹出的窗口中保持 &quot;Java package&quot; 项为 &quot;com.login&quot; ；&lt;br&gt;&lt;br&gt;　　选中 &quot;Hibernate mapping file (*.hbm.xml) for each databases table&quot; ，并保持 &quot;Update hibernate...&quot; 项选中；&lt;br&gt;&lt;br&gt;　　选中 &quot;Java Data Object&quot; 项，并保持 &quot;Create abstract class&quot; 选中；&lt;br&gt;&lt;br&gt;　　&quot;Base persistent class&quot; 项留空；&lt;br&gt;&lt;br&gt;　　取消 &quot;Java Data Access Object...&quot; 项和 &quot;Use custom templates&quot; 项。&lt;br&gt;&lt;br&gt; 　　点击 &quot;下一步(Next)&quot; ，再点击 &quot;下一步(Next)&quot; ，在 &quot;Configure reverse engineering details&quot; 页选中 &quot;user_table&quot; 表，在右边出现的 &quot;Class Name&quot; 项中输入 &quot;com.login.User&quot;，其它不变。&lt;br&gt;&lt;br&gt;　　点击 &quot;完成(Finish)&quot;。&lt;br&gt;&lt;br&gt;　　完成此操作，会在 &quot;com.login&quot; 包下创建三个文件：AbstractUser.java、User.java、User.hbm.xml。&lt;br&gt;&lt;br&gt;&lt;b&gt;4.5. 创建 UserDAO.java 接口和 UserDAOImpl.java 类&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　UserDAO 和 UserDAOImpl 通过 Hibernate 访问数据库。&lt;br&gt;&lt;br&gt;　　UseDAO.java 内容如下：&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#3333ff&quot;&gt;package com.login;&lt;br&gt;&lt;br&gt;public interface UserDAO {&lt;br&gt;    public abstract boolean isValidUser(String username, String password);&lt;br&gt;}&lt;br&gt;&lt;/font&gt;&lt;br&gt;　　UserDAOImpl.java 内容如下：&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#3333ff&quot;&gt;package com.login;&lt;br&gt;&lt;br&gt;import java.util.List;&lt;br&gt;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;&lt;br&gt;&lt;br&gt;public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {&lt;br&gt;    private static String hql = &quot;from User u where u.username=? &quot;;&lt;br&gt;    &lt;br&gt;    public boolean isValidUser(String username, String password) {&lt;br&gt;        // 验证用户&lt;br&gt;        List userList = this.getHibernateTemplate().find(hql, username);&lt;br&gt;        if (userList.size() &amp;gt; 0) {&lt;br&gt;            return true;&lt;br&gt;        }&lt;br&gt;        return false;&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;b&gt;4.6. 修改 LoginAction.java 文件&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　使用 UseDAO 对象来验证：&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#3333ff&quot;&gt;package com.login.struts.action;&lt;br&gt;&lt;br&gt;import javax.servlet.http.HttpServletRequest;&lt;br&gt;import javax.servlet.http.HttpServletResponse;&lt;br&gt;import org.apache.struts.action.Action;&lt;br&gt;import org.apache.struts.action.ActionForm;&lt;br&gt;import org.apache.struts.action.ActionForward;&lt;br&gt;import org.apache.struts.action.ActionMapping;&lt;br&gt;import com.login.struts.form.LoginForm;&lt;br&gt;import com.login.UserDAO;&lt;br&gt;&lt;br&gt;public class LoginAction extends Action {&lt;br&gt;    &lt;font color=&quot;#009900&quot;&gt;private UserDAO userDAO;&lt;br&gt;    &lt;br&gt;    public UserDAO getUserDAO() {&lt;br&gt;        return userDAO;&lt;br&gt;    }&lt;br&gt;    &lt;br&gt;    public void setUserDAO(UserDAO userDAO) {&lt;br&gt;        this.userDAO = userDAO;&lt;br&gt;    }&lt;/font&gt;&lt;br&gt;    &lt;br&gt;    public ActionForward execute(ActionMapping mapping, ActionForm form,&lt;br&gt;            HttpServletRequest request, HttpServletResponse response) {&lt;br&gt;&lt;br&gt;        LoginForm loginForm = (LoginForm) form;&lt;br&gt;        String username=loginForm.getUsername();&lt;br&gt;        String password=loginForm.getPassword();&lt;br&gt;&lt;br&gt;        if(&lt;font color=&quot;#009900&quot;&gt; userDAO.isValidUser( username, password ) &lt;/font&gt;){&lt;br&gt;            return mapping.findForward( &quot;indexForword&quot; );&lt;br&gt;        }else{&lt;br&gt;            return mapping.getInputForward();&lt;br&gt;        }&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;/font&gt;　　绿色字体为修改部分。&lt;font color=&quot;#3333ff&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;b&gt;4.7. Spring 的&lt;/b&gt;&lt;b&gt;最终&lt;/b&gt;&lt;b&gt;配制文件 applicationContext.xml&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#3333ff&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&lt;br&gt;&amp;lt;!DOCTYPE beans PUBLIC &quot;-//SPRING//DTD BEAN//EN&quot; &quot;http://www.springframework.org/dtd/spring-beans.dtd&quot;&amp;gt;&lt;br&gt;&lt;br&gt;&amp;lt;beans&amp;gt;  &lt;br&gt;&lt;br&gt;  &amp;lt;bean id=&quot;dataSource&quot;&lt;br&gt;      class=&quot;org.apache.commons.dbcp.BasicDataSource&quot;&amp;gt;&lt;br&gt;      &amp;lt;property name=&quot;driverClassName&quot; value=&quot;com.mysql.jdbc.Driver&quot;&amp;gt;&amp;lt;/property&amp;gt;&lt;br&gt;      &amp;lt;property name=&quot;url&quot; value=&quot;jdbc:mysql://localhost:3306/test&quot;&amp;gt;&amp;lt;/property&amp;gt;&lt;br&gt;      &amp;lt;property name=&quot;username&quot; value=&quot;root&quot;&amp;gt;&amp;lt;/property&amp;gt;&lt;br&gt;      &amp;lt;property name=&quot;password&quot; value=&quot;root&quot;&amp;gt;&amp;lt;/property&amp;gt;&lt;br&gt;  &amp;lt;/bean&amp;gt;&lt;br&gt;&lt;br&gt;  &amp;lt;!-- 配置sessionFactory, 注意这里引入的包的不同  --&amp;gt;&lt;br&gt;  &amp;lt;bean id=&quot;sessionFactory&quot; class=&quot;org.springframework.orm.hibernate3.LocalSessionFactoryBean&quot;&amp;gt;&lt;br&gt;    &amp;lt;property name=&quot;dataSource&quot;&amp;gt;&lt;br&gt;      &amp;lt;ref local=&quot;dataSource&quot; /&amp;gt;&lt;br&gt;    &amp;lt;/property&amp;gt;&lt;br&gt;    &amp;lt;property name=&quot;mappingResources&quot;&amp;gt;&lt;br&gt;      &amp;lt;list&amp;gt;&lt;br&gt;        &amp;lt;value&amp;gt;com/login/User.hbm.xml&amp;lt;/value&amp;gt;&lt;br&gt;      &amp;lt;/list&amp;gt;&lt;br&gt;    &amp;lt;/property&amp;gt;&lt;br&gt;    &amp;lt;property name=&quot;hibernateProperties&quot;&amp;gt;&lt;br&gt;      &amp;lt;props&amp;gt;&lt;br&gt;        &amp;lt;prop key=&quot;hibernate.dialect&quot;&amp;gt;org.hibernate.dialect.MySQLDialect&amp;lt;/prop&amp;gt;&lt;br&gt;        &amp;lt;prop key=&quot;hibernate.show_sql&quot;&amp;gt;true&amp;lt;/prop&amp;gt;&lt;br&gt;      &amp;lt;/props&amp;gt;&lt;br&gt;    &amp;lt;/property&amp;gt;&lt;br&gt;  &amp;lt;/bean&amp;gt;&lt;br&gt;     &lt;br&gt;  &amp;lt;bean id=&quot;transactionManager&quot; class=&quot;org.springframework.orm.hibernate3.HibernateTransactionManager&quot;&amp;gt;&lt;br&gt;    &amp;lt;property name=&quot;sessionFactory&quot;&amp;gt;&lt;br&gt;      &amp;lt;ref local=&quot;sessionFactory&quot; /&amp;gt;&lt;br&gt;    &amp;lt;/property&amp;gt;&lt;br&gt;  &amp;lt;/bean&amp;gt;&lt;br&gt;     &lt;br&gt;  &amp;lt;bean id=&quot;userDAO&quot; class=&quot;com.login.UserDAOImpl&quot;&amp;gt;&lt;br&gt;    &amp;lt;property name=&quot;sessionFactory&quot;&amp;gt;&lt;br&gt;      &amp;lt;ref local=&quot;sessionFactory&quot; /&amp;gt;&lt;br&gt;    &amp;lt;/property&amp;gt;&lt;br&gt;  &amp;lt;/bean&amp;gt;&lt;br&gt;     &lt;br&gt;  &amp;lt;bean id=&quot;userDAOProxy&quot; class=&quot;org.springframework.transaction.interceptor.TransactionProxyFactoryBean&quot;&amp;gt;&lt;br&gt;    &amp;lt;property name=&quot;transactionManager&quot;&amp;gt;&lt;br&gt;      &amp;lt;ref bean=&quot;transactionManager&quot; /&amp;gt;&lt;br&gt;    &amp;lt;/property&amp;gt;&lt;br&gt;    &amp;lt;property name=&quot;target&quot;&amp;gt;&lt;br&gt;      &amp;lt;ref local=&quot;userDAO&quot; /&amp;gt;&lt;br&gt;    &amp;lt;/property&amp;gt;&lt;br&gt;    &amp;lt;property name=&quot;transactionAttributes&quot;&amp;gt;&lt;br&gt;      &amp;lt;props&amp;gt;&lt;br&gt;        &amp;lt;prop key=&quot;insert*&quot;&amp;gt;PROPAGATION_REQUIRED&amp;lt;/prop&amp;gt;&lt;br&gt;        &amp;lt;prop key=&quot;get*&quot;&amp;gt;PROPAGATION_REQUIRED,readOnly&amp;lt;/prop&amp;gt;&lt;br&gt;        &amp;lt;prop key=&quot;is*&quot;&amp;gt;PROPAGATION_REQUIRED,readOnly&amp;lt;/prop&amp;gt;&lt;br&gt;      &amp;lt;/props&amp;gt;&lt;br&gt;    &amp;lt;/property&amp;gt;&lt;br&gt;  &amp;lt;/bean&amp;gt;&lt;br&gt;    &lt;br&gt;  &amp;lt;bean name=&quot;/login&quot; class=&quot;com.login.struts.action.LoginAction&quot; singleton=&quot;false&quot;&amp;gt;&lt;br&gt;    &amp;lt;property name=&quot;userDAO&quot;&amp;gt;&lt;br&gt;      &amp;lt;ref bean=&quot;userDAOProxy&quot; /&amp;gt;&lt;br&gt;    &amp;lt;/property&amp;gt;&lt;br&gt;  &amp;lt;/bean&amp;gt;    &lt;br&gt;&lt;br&gt;&amp;lt;/beans&amp;gt; &lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;b&gt;4.8. 测试&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　同第一次测试。&lt;font color=&quot;#3333ff&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;[固定链接]&lt;a title=&quot;http://blog.tanggaowei.com/2007/12/myeclipse-6.html&quot; href=&quot;http://blog.tanggaowei.com/2007/12/myeclipse-6.html&quot; id=&quot;kt:v&quot;&gt;http://blog.tanggaowei.com/2007/12/myeclipse-6.html&lt;/a&gt;&lt;br&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>传说一梦</name></author><content:encoded>（本文参考自 oksonic 的“&lt;a id=&quot;viewpost1_TitleUrl&quot; href=&quot;http://www.blogjava.net/oksonic/archive/2005/11/06/18370.html&quot;&gt;Struts+Spring+Hibernate练习(完整)&lt;/a&gt;”）&lt;br&gt;&lt;br&gt;源码下载：&lt;a title=&quot;http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=2857703&quot; href=&quot;http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=2857703&quot; id=&quot;bon:&quot;&gt;http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=2857703&lt;/a&gt;&lt;br&gt;&lt;h3&gt;1. 准备&lt;br&gt;&lt;/h3&gt;&lt;p&gt;　　工具：&lt;a title=&quot;MyEclipse 6.0.1 GA&quot; target=&quot;_blank&quot; href=&quot;http://www.myeclipseide.com/&quot; id=&quot;z7iy&quot;&gt;MyEclipse 6.0.1 GA&lt;/a&gt;、&lt;a title=&quot;mysql-connector-java-5.0.4-bin.jar&quot; target=&quot;_blank&quot; href=&quot;http://drc-dev.ohiolink.edu/browser/fedora-core/tags/upstream/lib/mysql-connector-java-5.0.4-bin.jar?rev=636&quot; id=&quot;s2.:&quot;&gt;mysql-connector-java-5.0.4-bin.jar&lt;/a&gt;、&lt;a title=&quot;mysql-gui-tools&quot; target=&quot;_blank&quot; href=&quot;http://dev.mysql.com/downloads/gui-tools/5.0.html&quot; id=&quot;teuw&quot;&gt;MySql GUI Tools 5.0&lt;/a&gt;（便于管理MySql数据库，不是必须）&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;　　环境：&lt;a title=&quot;Tomcat5.5&quot; target=&quot;_blank&quot; href=&quot;http://tomcat.apache.org/&quot; id=&quot;i:oc&quot;&gt;Tomcat 5.5&lt;/a&gt;、&lt;a title=&quot;MySql 5.0&quot; target=&quot;_blank&quot; href=&quot;http://dev.mysql.com/downloads/mysql/5.0.html&quot; id=&quot;vh5u&quot;&gt;MySql 5.0&lt;/a&gt;&lt;a title=&quot;mysql-connector-java-5.0.4-bin.jar&quot; target=&quot;_blank&quot; href=&quot;http://drc-dev.ohiolink.edu/browser/fedora-core/tags/upstream/lib/mysql-connector-java-5.0.4-bin.jar?rev=636&quot; id=&quot;s2.:&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;1.1. 新建工程&lt;br&gt;&lt;br&gt;&lt;/b&gt;　　操作：[Menu] File/New/Web Project&lt;br&gt; &lt;br&gt; 　　工程名：login&lt;br&gt;&lt;div id=&quot;tf2p&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 525px; height: 500px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_319f9jgqjdg&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;h3&gt;2. Struts 部分&lt;/h3&gt;&lt;b&gt;&lt;br&gt;2.1. 添加 Struts 功能支持&lt;br&gt;&lt;/b&gt;&lt;br&gt;　　操作：[Menu] MyEclipse/Project Capabilities/Add Struts Capabilities&lt;br&gt;&lt;div id=&quot;nngm&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;div id=&quot;f3pw&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 557px; height: 468px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_335gprx9cdh&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;b&gt;2.2. 创建 ActionForm 类&lt;br&gt;&lt;br&gt;&lt;/b&gt;　　操作：[Ctrl+N] MyEclipse/Web-Struts/Struts 1.2 Form&lt;br&gt;&lt;br&gt;　　类名：LoginForm&lt;div id=&quot;vj.:&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 557px; height: 595px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_336dkdnvz5n&quot;&gt;&lt;br&gt;&lt;/div&gt;　　在 &quot;Form Properties&quot; 选项卡为 loginForm 新增两个属性：username、password；&lt;br&gt;&lt;br&gt;　　在 &quot;JSP&quot; 选项卡钩选 &quot;Create JSP form&quot; 选项，将新建路径改为 &quot;/login.jsp&quot;（login.jsp文件将被自动创建）。&lt;br&gt;&lt;br&gt;&lt;b&gt;2.3. 创建 Action 类&lt;br&gt;&lt;br&gt;&lt;/b&gt;　　操作：[Ctrl+N] MyEclipse/Web-Struts/Struts 1.2 Action&lt;br&gt;&lt;br&gt;　　类名：LoginAction&lt;br&gt;&lt;div id=&quot;bya_&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 557px; height: 606px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_334hq8m4jg6&quot;&gt;&lt;br&gt;&lt;/div&gt;　　在 &quot;Form&quot; 选项卡的 &quot;Name&quot; 项选择 &quot;loginForm&quot;，&quot;Input Source&quot; 项输入 &quot;/login.jsp&quot;。&lt;br&gt;&lt;br&gt;&lt;b&gt;2.4. 创建 index.jsp 文件&lt;br&gt;&lt;br&gt;&lt;/b&gt;　　如果没有，创建 index.jsp 文件，并添加一个指向 login.jsp 的链接：&lt;span style=&quot;color: rgb(51, 51, 255);&quot;&gt;&amp;lt;a href=&quot;login.jsp&quot;&amp;gt;Login&amp;lt;/a&amp;gt;&lt;/span&gt;。&lt;br&gt;&lt;br&gt;&lt;b&gt;2.5. 创建Forword类&lt;br&gt;&lt;br&gt;&lt;/b&gt;　　操作：[Ctrl+N] MyEclipse/Web-Struts/Struts 1.2 Forword&lt;br&gt;&lt;br&gt;　　类名：indexForword&lt;br&gt;&lt;div id=&quot;x0.w&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 558px; height: 500px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_3374rnpstc6&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;br&gt;　　&quot;Name&quot; 项输入 &quot;indexForword&quot; ，&quot;Path&quot; 项输入 &quot;/index.jsp&quot; 。&lt;br&gt;&lt;br&gt;&lt;b&gt;2.6. 修改 LoginAction.java 文件&lt;br&gt;&lt;br&gt;&lt;/b&gt;　　修改 LoginAction 类的 execute 方法：&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#3333ff&quot;&gt;public class LoginAction extends Action {&lt;br&gt;&lt;br&gt;    public ActionForward execute(ActionMapping mapping, ActionForm form,&lt;br&gt;            HttpServletRequest request, HttpServletResponse response) {&lt;br&gt;        LoginForm loginForm = (LoginForm) form;&lt;br&gt;        &lt;font color=&quot;#009900&quot;&gt;String username=loginForm.getUsername();&lt;br&gt;        String password=loginForm.getPassword();&lt;br&gt;        if(username.equals(&quot;test&quot;)||password.equals(&quot;test&quot;)){&lt;br&gt;            return mapping.findForward(&quot;indexForword&quot;);&lt;br&gt;        }else{&lt;br&gt;            return mapping.getInputForward();&lt;br&gt;        }&lt;br&gt;&lt;/font&gt;    }&lt;br&gt;}&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;2.7. 修改 login.jsp 文件&lt;br&gt;&lt;br&gt;&lt;/b&gt;　　修改 &amp;lt;html:form&amp;gt; 标签：&lt;font color=&quot;#3333ff&quot;&gt;&amp;lt;html:form action=&quot;/login&quot;&amp;gt;&lt;/font&gt;。&lt;br&gt;&lt;br&gt;&lt;b&gt;2.8. 测试&lt;br&gt;&lt;br&gt;&lt;/b&gt;　　操作：[Menu] Run/Run，选择 MyEclipse Server Application 方式运行&lt;br&gt;&lt;br&gt;（&lt;font color=&quot;#ff0000&quot;&gt;要正常执行Run操作，需先安装 Tomcat5.5 。&lt;/font&gt;）&lt;br&gt;&lt;div id=&quot;g0jz&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 636px; height: 530px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_338g2z4pcgz&quot;&gt;&lt;br&gt;&lt;/div&gt;　　点击 index.jsp 页面的 &quot;Login&quot; 链接，跳转到 login.jsp 页面。在 login.jsp 页面输入 &quot;test/test&quot;，应该会登录成功，然后跳转到 index.jsp 页面；输入 &quot;test/123&quot; ，应该保持在 login.jsp 页面。&lt;br&gt;&lt;br&gt;　　如果测试成功，证明 Structs 运行正常。&lt;br&gt;&lt;br&gt;&lt;h3&gt;3. Spring 部分&lt;/h3&gt;&lt;b&gt;&lt;br&gt;3.1. 添加 Spring 功能支持&lt;br&gt;&lt;br&gt;&lt;/b&gt;　　操作：[Menu] MyEclipse/Project Capabilities/Add Spring Capabilities&lt;br&gt;&lt;div id=&quot;fezm&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 531px; height: 561px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_323d5wz3kcg&quot;&gt;&lt;br&gt;&lt;/div&gt;　　Spring 版本（ Spring version ）选择 &quot;Spring 1&quot;；&lt;br&gt;&lt;br&gt;　　开发包（libraries）选择 &quot;Spring 1.2 AOP Libraries、Spring 1.2 Core Libraries、Spring 1.2 Persistence Core Libraries、Spring 1.2 Persistence JDBC Libraries&quot; 四项；&lt;br&gt;&lt;br&gt;　　JAR Library Installation 选择 &quot;copy checked...&quot; ，&quot;Library Folder&quot; 项选择 &quot;/WebRoot/WEB-INF/lib&quot;（这样的话所需的类库都将拷贝到项目目录，方便以后的布署）。&lt;br&gt;&lt;br&gt;　　点击 &quot;下一步(Next)&quot; 创建配置文件，修改文件路径（Folder）到 &quot;WebRoot/WEB-INF&quot; 目录（以便和Struts配置文件一起管理），文件名称为默认的&quot;applicationContext.xml&quot;。&lt;div id=&quot;ly45&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 471px; height: 308px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_324dxwmk8c7&quot;&gt;&lt;br&gt;&lt;/div&gt;　　点击 &quot;完成(Finish)&quot; 。&lt;br&gt;&lt;br&gt;&lt;b&gt;3.2. 配置 struts-config.xml 文件&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　添加 Spring 插件（在 &amp;lt;message-resources&amp;gt; 标签后面添加）：&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#3333ff&quot;&gt;  &amp;lt;plug-in className=&quot;org.springframework.web.struts.ContextLoaderPlugIn&quot;&amp;gt;&lt;br&gt;    &amp;lt;set-property property=&quot;contextConfigLocation&quot; value=&quot;/WEB-INF/applicationContext.xml&quot; /&amp;gt;&lt;br&gt;  &amp;lt;/plug-in&amp;gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;　　修改 LoginAction 的配置（只需修改 type 属性）：&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#3333ff&quot;&gt;  &amp;lt;action-mappings &amp;gt;&lt;br&gt;    &amp;lt;action&lt;br&gt;      attribute=&quot;loginForm&quot;&lt;br&gt;      input=&quot;/login.jsp&quot;&lt;br&gt;      name=&quot;loginForm&quot;&lt;br&gt;      path=&quot;/login&quot;&lt;br&gt;      scope=&quot;request&quot;&lt;br&gt;      type=&quot;&lt;font color=&quot;#009900&quot;&gt;org.springframework.web.struts.DelegatingActionProxy&lt;/font&gt;&quot; /&amp;gt;&lt;br&gt;&lt;br&gt;  &amp;lt;/action-mappings&amp;gt;&lt;br&gt;&lt;/font&gt;&lt;br&gt;　　绿色字体部份为被修改过的内容，这里将使用 spring 的代理器 DelegatingActionProxy 来对 Action 进行控制。&lt;br&gt;&lt;br&gt;&lt;b&gt;3.3. 修改 Spring 配置文件 applicationContext.xml&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#3333ff&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&lt;br&gt;&amp;lt;!DOCTYPE beans PUBLIC &quot;-//SPRING//DTD BEAN//EN&quot; &quot;http://www.springframework.org/dtd/spring-beans.dtd&quot;&amp;gt;&lt;br&gt;&lt;br&gt;&amp;lt;beans&amp;gt;&lt;br&gt;  &lt;font color=&quot;#009900&quot;&gt;&amp;lt;bean name=&quot;/login&quot; class=&quot;com.login.struts.action.LoginAction&quot; singleton=&quot;false&quot;&amp;gt;&amp;lt;/bean&amp;gt;&lt;/font&gt;&lt;br&gt;&amp;lt;/beans&amp;gt;&lt;br&gt;&lt;/font&gt;&lt;br&gt;　　绿色字体是关于接受和处理 Action 控制权的配置内容，&quot;com.login.struts.action.LoginAction&quot; 即为原 struts 里的配置。&lt;br&gt;&lt;br&gt;&lt;b&gt;3.4. 测试&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　同上一次测试。测试成功证明 Spring 运行正常。&lt;br&gt;&lt;br&gt;&lt;h3&gt;4. Hibernate 部分&lt;/h3&gt;　　下面开始 Hibernate 部分，将原例修改为使用数据库进行用户名/密码验证。&lt;br&gt;&lt;br&gt;&lt;b&gt;4.1. 创建 mysql 数据库和表&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　添加表的代码如下：&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#3333ff&quot;&gt;CREATE TABLE user_table(&lt;br&gt;  ID int NOT NULL auto_increment,&lt;br&gt;  USERNAME varchar(45) NOT NULL default '',&lt;br&gt;  PASSWORD varchar(45) NOT NULL default '',&lt;br&gt;  PRIMARY KEY (ID)&lt;br&gt;)&lt;br&gt;&lt;/font&gt;&lt;br&gt;　　再添加一条记录：&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#3333ff&quot;&gt;insert into user_table (USERNAME,PASSWORD) values ('test','test')&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;4.2. 创建 MyEclipse 数据库驱动（DB Driver）&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　操作：[Menu] MyEclipse/Prefrences/MyEclipse/Database Explorer/Database Driver/DB Brower&lt;div id=&quot;qj0v&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 475px; height: 570px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_325tpqzkkg5&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;br&gt;　　在 DB Brower 的菜单中选择 &quot;New&quot; ，&quot;Driver Name&quot; 项输入 &quot;login-conn&quot; ，&quot;Connection URL&quot; 项输入 &quot;jdbc:mysql://localhost:3306/test&quot; ，然后输入正确的用户名（User Name）和密码（Password）按实际情况输入；&lt;br&gt;&lt;br&gt;　　在 &quot;Driver JARs&quot; 项添加 &quot;mysql-connector-java-5.0.4-bin.jar&quot; (可从网上下载)，在 &quot;Driver classname&quot; 里选择 &quot;com.mysql.jdbc.Driver&quot; ，其它自选。&lt;br&gt;&lt;br&gt;　　点击 &quot;完成(Finish)&quot;。&lt;br&gt;&lt;br&gt;&lt;b&gt;4.3. 添加 Hibernate 功能支持&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　操作：[Menu] MyEclipse/Project Capabilities/Add Hibernate Capabilities&lt;br&gt;&lt;div id=&quot;pje4&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 516px; height: 519px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_326dg4b4pgq&quot;&gt;&lt;/div&gt;&lt;br&gt;　　Hibernate 版本（Hibernate Specification）选择 &quot;Hibernate 3.1&quot; ，开发包（libraries）选择 Hibernate 3.1 Core Libraries 一项；&lt;br&gt;&lt;br&gt;　　JAR Library Installation 选择 &quot;copy checked...&quot; ，&quot;Library Folder&quot; 选择 &quot;/WebRoot/WEB-INF/lib&quot; 。&lt;br&gt;&lt;br&gt;　　点击 &quot;下一步(Next)&quot; 设置配置文件，选择 &quot;Spring configuration file (applicationContext.xml)&quot; 。&lt;br&gt;&lt;div id=&quot;rrh9&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 516px; height: 519px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_327v5387zfg&quot;&gt;&lt;br&gt;&lt;/div&gt;　　&quot;下一步(Next)&quot; 设置 Spring-Hibernate，选择 &quot;Existing Spring configuration file&quot; ，&quot;SessionFactory ID&quot; 项输入 &quot;sessionFactory&quot; 。&lt;br&gt;&lt;div id=&quot;d7.s&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;div id=&quot;c5rq&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 516px; height: 519px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_329gj9xz8g4&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;　　&quot;下一步(Next)&quot; 创建数据源对象，在 Bean Id 中输入 dataSource，&quot;DataSource&quot; 项选择 &quot;Use JDBC Dirver&quot; ，DB Driver 项选择 &quot;login-conn&quot; ，其余项会自动填充；&lt;div id=&quot;gmtq&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 516px; height: 519px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_330tqtsbr8x&quot;&gt;&lt;/div&gt;&lt;br&gt;　　记得选中 &quot;Copy DB driver jar(s) to project and add  to buidpath&quot; 项，以便将数据连接的库文件复制到项目，方便以后的布署。&lt;br&gt;&lt;br&gt;　　&quot;下一步(Next)&quot; 创建 SessionFactory 类，&quot;Java package&quot; 项设置为 &quot;com.login.Hibernate&quot; (没有则点击&quot;New&quot;按钮添加)，&quot;Class name&quot; 项修改为&quot;SessionFactory&quot; ，Java Compliance Level选择和创建项目时选择的Java版本。（本例中并没有用到SessionFactory类，留作今后扩展）&lt;br&gt;&lt;div id=&quot;jt.1&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 516px; height: 519px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_331cpv7g6gx&quot;&gt;&lt;br&gt;&lt;/div&gt;　　点击 &quot;完成(Finish)&quot;。&lt;br&gt;&lt;br&gt;&lt;b&gt;4.4. 创建对象关系映射(ORM)的相关文件&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　操作：[Menu] Window/Open Perspective/MyEclipse Database Explorer&lt;br&gt;&lt;div id=&quot;uh95&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 574px; height: 660px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_332gxx7rhzt&quot;&gt;&lt;/div&gt;&lt;br&gt;　　选中 user_table 表，点击右键，在出现的菜单中选择 &quot;Hibernate Reverse Engnieering&quot; 。&lt;br&gt;&lt;div id=&quot;i0nj&quot; style=&quot;padding: 1em 0pt; text-align: left;&quot;&gt;&lt;img style=&quot;width: 549px; height: 588px;&quot; src=&quot;http://docs.google.com/File?id=ajjn4tkm8t6q_333vwh5xphf&quot;&gt;&lt;br&gt;&lt;/div&gt;　　在弹出的窗口中保持 &quot;Java package&quot; 项为 &quot;com.login&quot; ；&lt;br&gt;&lt;br&gt;　　选中 &quot;Hibernate mapping file (*.hbm.xml) for each databases table&quot; ，并保持 &quot;Update hibernate...&quot; 项选中；&lt;br&gt;&lt;br&gt;　　选中 &quot;Java Data Object&quot; 项，并保持 &quot;Create abstract class&quot; 选中；&lt;br&gt;&lt;br&gt;　　&quot;Base persistent class&quot; 项留空；&lt;br&gt;&lt;br&gt;　　取消 &quot;Java Data Access Object...&quot; 项和 &quot;Use custom templates&quot; 项。&lt;br&gt;&lt;br&gt; 　　点击 &quot;下一步(Next)&quot; ，再点击 &quot;下一步(Next)&quot; ，在 &quot;Configure reverse engineering details&quot; 页选中 &quot;user_table&quot; 表，在右边出现的 &quot;Class Name&quot; 项中输入 &quot;com.login.User&quot;，其它不变。&lt;br&gt;&lt;br&gt;　　点击 &quot;完成(Finish)&quot;。&lt;br&gt;&lt;br&gt;　　完成此操作，会在 &quot;com.login&quot; 包下创建三个文件：AbstractUser.java、User.java、User.hbm.xml。&lt;br&gt;&lt;br&gt;&lt;b&gt;4.5. 创建 UserDAO.java 接口和 UserDAOImpl.java 类&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　UserDAO 和 UserDAOImpl 通过 Hibernate 访问数据库。&lt;br&gt;&lt;br&gt;　　UseDAO.java 内容如下：&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#3333ff&quot;&gt;package com.login;&lt;br&gt;&lt;br&gt;public interface UserDAO {&lt;br&gt;    public abstract boolean isValidUser(String username, String password);&lt;br&gt;}&lt;br&gt;&lt;/font&gt;&lt;br&gt;　　UserDAOImpl.java 内容如下：&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#3333ff&quot;&gt;package com.login;&lt;br&gt;&lt;br&gt;import java.util.List;&lt;br&gt;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;&lt;br&gt;&lt;br&gt;public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {&lt;br&gt;    private static String hql = &quot;from User u where u.username=? &quot;;&lt;br&gt;    &lt;br&gt;    public boolean isValidUser(String username, String password) {&lt;br&gt;        // 验证用户&lt;br&gt;        List userList = this.getHibernateTemplate().find(hql, username);&lt;br&gt;        if (userList.size() &amp;gt; 0) {&lt;br&gt;            return true;&lt;br&gt;        }&lt;br&gt;        return false;&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;b&gt;4.6. 修改 LoginAction.java 文件&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　使用 UseDAO 对象来验证：&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#3333ff&quot;&gt;package com.login.struts.action;&lt;br&gt;&lt;br&gt;import javax.servlet.http.HttpServletRequest;&lt;br&gt;import javax.servlet.http.HttpServletResponse;&lt;br&gt;import org.apache.struts.action.Action;&lt;br&gt;import org.apache.struts.action.ActionForm;&lt;br&gt;import org.apache.struts.action.ActionForward;&lt;br&gt;import org.apache.struts.action.ActionMapping;&lt;br&gt;import com.login.struts.form.LoginForm;&lt;br&gt;import com.login.UserDAO;&lt;br&gt;&lt;br&gt;public class LoginAction extends Action {&lt;br&gt;    &lt;font color=&quot;#009900&quot;&gt;private UserDAO userDAO;&lt;br&gt;    &lt;br&gt;    public UserDAO getUserDAO() {&lt;br&gt;        return userDAO;&lt;br&gt;    }&lt;br&gt;    &lt;br&gt;    public void setUserDAO(UserDAO userDAO) {&lt;br&gt;        this.userDAO = userDAO;&lt;br&gt;    }&lt;/font&gt;&lt;br&gt;    &lt;br&gt;    public ActionForward execute(ActionMapping mapping, ActionForm form,&lt;br&gt;            HttpServletRequest request, HttpServletResponse response) {&lt;br&gt;&lt;br&gt;        LoginForm loginForm = (LoginForm) form;&lt;br&gt;        String username=loginForm.getUsername();&lt;br&gt;        String password=loginForm.getPassword();&lt;br&gt;&lt;br&gt;        if(&lt;font color=&quot;#009900&quot;&gt; userDAO.isValidUser( username, password ) &lt;/font&gt;){&lt;br&gt;            return mapping.findForward( &quot;indexForword&quot; );&lt;br&gt;        }else{&lt;br&gt;            return mapping.getInputForward();&lt;br&gt;        }&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;/font&gt;　　绿色字体为修改部分。&lt;font color=&quot;#3333ff&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;b&gt;4.7. Spring 的&lt;/b&gt;&lt;b&gt;最终&lt;/b&gt;&lt;b&gt;配制文件 applicationContext.xml&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#3333ff&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&lt;br&gt;&amp;lt;!DOCTYPE beans PUBLIC &quot;-//SPRING//DTD BEAN//EN&quot; &quot;http://www.springframework.org/dtd/spring-beans.dtd&quot;&amp;gt;&lt;br&gt;&lt;br&gt;&amp;lt;beans&amp;gt;  &lt;br&gt;&lt;br&gt;  &amp;lt;bean id=&quot;dataSource&quot;&lt;br&gt;      class=&quot;org.apache.commons.dbcp.BasicDataSource&quot;&amp;gt;&lt;br&gt;      &amp;lt;property name=&quot;driverClassName&quot; value=&quot;com.mysql.jdbc.Driver&quot;&amp;gt;&amp;lt;/property&amp;gt;&lt;br&gt;      &amp;lt;property name=&quot;url&quot; value=&quot;jdbc:mysql://localhost:3306/test&quot;&amp;gt;&amp;lt;/property&amp;gt;&lt;br&gt;      &amp;lt;property name=&quot;username&quot; value=&quot;root&quot;&amp;gt;&amp;lt;/property&amp;gt;&lt;br&gt;      &amp;lt;property name=&quot;password&quot; value=&quot;root&quot;&amp;gt;&amp;lt;/property&amp;gt;&lt;br&gt;  &amp;lt;/bean&amp;gt;&lt;br&gt;&lt;br&gt;  &amp;lt;!-- 配置sessionFactory, 注意这里引入的包的不同  --&amp;gt;&lt;br&gt;  &amp;lt;bean id=&quot;sessionFactory&quot; class=&quot;org.springframework.orm.hibernate3.LocalSessionFactoryBean&quot;&amp;gt;&lt;br&gt;    &amp;lt;property name=&quot;dataSource&quot;&amp;gt;&lt;br&gt;      &amp;lt;ref local=&quot;dataSource&quot; /&amp;gt;&lt;br&gt;    &amp;lt;/property&amp;gt;&lt;br&gt;    &amp;lt;property name=&quot;mappingResources&quot;&amp;gt;&lt;br&gt;      &amp;lt;list&amp;gt;&lt;br&gt;        &amp;lt;value&amp;gt;com/login/User.hbm.xml&amp;lt;/value&amp;gt;&lt;br&gt;      &amp;lt;/list&amp;gt;&lt;br&gt;    &amp;lt;/property&amp;gt;&lt;br&gt;    &amp;lt;property name=&quot;hibernateProperties&quot;&amp;gt;&lt;br&gt;      &amp;lt;props&amp;gt;&lt;br&gt;        &amp;lt;prop key=&quot;hibernate.dialect&quot;&amp;gt;org.hibernate.dialect.MySQLDialect&amp;lt;/prop&amp;gt;&lt;br&gt;        &amp;lt;prop key=&quot;hibernate.show_sql&quot;&amp;gt;true&amp;lt;/prop&amp;gt;&lt;br&gt;      &amp;lt;/props&amp;gt;&lt;br&gt;    &amp;lt;/property&amp;gt;&lt;br&gt;  &amp;lt;/bean&amp;gt;&lt;br&gt;     &lt;br&gt;  &amp;lt;bean id=&quot;transactionManager&quot; class=&quot;org.springframework.orm.hibernate3.HibernateTransactionManager&quot;&amp;gt;&lt;br&gt;    &amp;lt;property name=&quot;sessionFactory&quot;&amp;gt;&lt;br&gt;      &amp;lt;ref local=&quot;sessionFactory&quot; /&amp;gt;&lt;br&gt;    &amp;lt;/property&amp;gt;&lt;br&gt;  &amp;lt;/bean&amp;gt;&lt;br&gt;     &lt;br&gt;  &amp;lt;bean id=&quot;userDAO&quot; class=&quot;com.login.UserDAOImpl&quot;&amp;gt;&lt;br&gt;    &amp;lt;property name=&quot;sessionFactory&quot;&amp;gt;&lt;br&gt;      &amp;lt;ref local=&quot;sessionFactory&quot; /&amp;gt;&lt;br&gt;    &amp;lt;/property&amp;gt;&lt;br&gt;  &amp;lt;/bean&amp;gt;&lt;br&gt;     &lt;br&gt;  &amp;lt;bean id=&quot;userDAOProxy&quot; class=&quot;org.springframework.transaction.interceptor.TransactionProxyFactoryBean&quot;&amp;gt;&lt;br&gt;    &amp;lt;property name=&quot;transactionManager&quot;&amp;gt;&lt;br&gt;      &amp;lt;ref bean=&quot;transactionManager&quot; /&amp;gt;&lt;br&gt;    &amp;lt;/property&amp;gt;&lt;br&gt;    &amp;lt;property name=&quot;target&quot;&amp;gt;&lt;br&gt;      &amp;lt;ref local=&quot;userDAO&quot; /&amp;gt;&lt;br&gt;    &amp;lt;/property&amp;gt;&lt;br&gt;    &amp;lt;property name=&quot;transactionAttributes&quot;&amp;gt;&lt;br&gt;      &amp;lt;props&amp;gt;&lt;br&gt;        &amp;lt;prop key=&quot;insert*&quot;&amp;gt;PROPAGATION_REQUIRED&amp;lt;/prop&amp;gt;&lt;br&gt;        &amp;lt;prop key=&quot;get*&quot;&amp;gt;PROPAGATION_REQUIRED,readOnly&amp;lt;/prop&amp;gt;&lt;br&gt;        &amp;lt;prop key=&quot;is*&quot;&amp;gt;PROPAGATION_REQUIRED,readOnly&amp;lt;/prop&amp;gt;&lt;br&gt;      &amp;lt;/props&amp;gt;&lt;br&gt;    &amp;lt;/property&amp;gt;&lt;br&gt;  &amp;lt;/bean&amp;gt;&lt;br&gt;    &lt;br&gt;  &amp;lt;bean name=&quot;/login&quot; class=&quot;com.login.struts.action.LoginAction&quot; singleton=&quot;false&quot;&amp;gt;&lt;br&gt;    &amp;lt;property name=&quot;userDAO&quot;&amp;gt;&lt;br&gt;      &amp;lt;ref bean=&quot;userDAOProxy&quot; /&amp;gt;&lt;br&gt;    &amp;lt;/property&amp;gt;&lt;br&gt;  &amp;lt;/bean&amp;gt;    &lt;br&gt;&lt;br&gt;&amp;lt;/beans&amp;gt; &lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;b&gt;4.8. 测试&lt;/b&gt;&lt;br&gt;&lt;br&gt;　　同第一次测试。&lt;font color=&quot;#3333ff&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;[固定链接]&lt;a title=&quot;http://blog.tanggaowei.com/2007/12/myeclipse-6.html&quot; href=&quot;http://blog.tanggaowei.com/2007/12/myeclipse-6.html&quot; id=&quot;kt:v&quot;&gt;http://blog.tanggaowei.com/2007/12/myeclipse-6.html&lt;/a&gt;&lt;br&gt;</content:encoded><category domain="http://www.blogger.com/atom/ns#">软件开发</category><pubDate>Sat, 22 Dec 2007 12:09:32 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4866208191593256515.post-7523058474408063831</guid><dc:creator>传说一梦</dc:creator><fs:srclink>http://blog.tanggaowei.com/2007/12/myeclipse-6.html</fs:srclink><fs:srcfeed>http://blog.tanggaowei.com/atom.xml</fs:srcfeed><fs:itemid>feedsky/tanggaowei/~6113480/73774788/1218758</fs:itemid></item><item><title>网络应用的4个层次</title><link atom:title="网络应用的4个层次" atom:type="text/html">http://item.feedsky.com/~feedsky/tanggaowei/~6113480/73774789/1218758/1/item.html</link><id xmlns="http://www.w3.org/2005/Atom">tag:blogger.com,1999:blog-4866208191593256515.post-5589516806659234024</id><content xmlns="http://www.w3.org/2005/Atom" type="html">&lt;br&gt;&lt;div&gt; &lt;table id=&quot;c.j6&quot; style=&quot;width: 152px; height: 123px;&quot; border=&quot;3&quot; bordercolor=&quot;#000000&quot; cellpadding=&quot;3&quot; cellspacing=&quot;0&quot; width=&quot;152&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=&quot;100%&quot;&gt; &lt;p align=&quot;left&quot;&gt;第4层：&lt;b&gt;社会关系应用&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width=&quot;100%&quot;&gt; &lt;p align=&quot;left&quot;&gt;第3层：&lt;b&gt;文档关系应用&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width=&quot;100%&quot;&gt; &lt;p align=&quot;left&quot;&gt;第2层：&lt;b&gt;文档应用&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width=&quot;100%&quot;&gt; &lt;p align=&quot;left&quot;&gt;第1层：&lt;b&gt;计