﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-毛里求斯的化石博物馆-文章分类-portal相关</title><link>http://www.blogjava.net/dudubird/category/15008.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 03:32:06 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 03:32:06 GMT</pubDate><ttl>60</ttl><item><title>Liferay Portal学习笔记之（五）：开发主题风格theme （转载）</title><link>http://www.blogjava.net/dudubird/articles/68721.html</link><dc:creator>毛里求斯的化石</dc:creator><author>毛里求斯的化石</author><pubDate>Sat, 09 Sep 2006 08:36:00 GMT</pubDate><guid>http://www.blogjava.net/dudubird/articles/68721.html</guid><wfw:comment>http://www.blogjava.net/dudubird/comments/68721.html</wfw:comment><comments>http://www.blogjava.net/dudubird/articles/68721.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dudubird/comments/commentRss/68721.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dudubird/services/trackbacks/68721.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Liferay Portal为我们提供了非常灵活的主题风格定制功能，自身带了四种风格的theme，在官方网站上提供了很多风格theme的下载，这无疑大大增强了主题风格定制的功能。但是，我们完全可以开发具有自己风格的theme，这里，我们将讨论怎样来开发个性的theme。第一步：我们将以现有风格classic为模板文件创建新的theme，我们将新theme命名为coldtear1、将liferay/...&nbsp;&nbsp;<a href='http://www.blogjava.net/dudubird/articles/68721.html'>阅读全文</a><img src ="http://www.blogjava.net/dudubird/aggbug/68721.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dudubird/" target="_blank">毛里求斯的化石</a> 2006-09-09 16:36 <a href="http://www.blogjava.net/dudubird/articles/68721.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Liferay Portal学习笔记（四）：搭建开发环境 （转载）</title><link>http://www.blogjava.net/dudubird/articles/68720.html</link><dc:creator>毛里求斯的化石</dc:creator><author>毛里求斯的化石</author><pubDate>Sat, 09 Sep 2006 08:35:00 GMT</pubDate><guid>http://www.blogjava.net/dudubird/articles/68720.html</guid><wfw:comment>http://www.blogjava.net/dudubird/comments/68720.html</wfw:comment><comments>http://www.blogjava.net/dudubird/articles/68720.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dudubird/comments/commentRss/68720.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dudubird/services/trackbacks/68720.html</trackback:ping><description><![CDATA[
		<div class="postText">
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">当我们再对</span>
						<span lang="EN-US">liferay</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">源代码进行研究或者对某个类进行修改的时候很不方便，所以我们需要搭建一个开发环境，这样在修改</span>
						<span lang="EN-US">liferay</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">源代码的时候就更加方便。下面我们会一步步搭建</span>
						<span lang="EN-US">liferay</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的开发环境。</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
								<o:p> </o:p>
						</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo1; tab-stops: list 21.0pt">
						<span lang="EN-US" style="mso-bidi-font-family: 宋体">
								<span style="mso-list: Ignore">一、</span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">准备工作</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">1</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、下载下列文件，下载步骤这里省略：</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">      jdk-1_5_0_06-windows-i586-p.exe</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">      liferay-portal-tomcat-jdk5-<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /?><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">4.0.0</st1:chsdate>.zip</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">      liferay-portal-src-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">4.0.0</st1:chsdate>.zip</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">      liferay-portal-sql-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">4.0.0</st1:chsdate>.zip</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">2</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、安装</span>
						<span lang="EN-US">JDK</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，具体的安装及配置过程这里省略。</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">3</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、我们假定</span>
						<span lang="EN-US">Eclipse</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">及</span>
						<span lang="EN-US">Tomcat</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">插件都已安装，若还没有安装，请参考相关文档准备好开发工具，这里省略该步骤。</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">4</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、如果对</span>
						<span lang="EN-US">liferay</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">安装过程有疑问，可参考作者的另一篇文章。</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-outline-level: 1">
						<span lang="EN-US">      <a href="/coldtear/archive/2006/08/03/61454.html" target="_blank"><font color="#444444">Liferay Portal<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><span lang="EN-US">学习笔记（一）：安装</span></span></font></a></span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo1; tab-stops: list 21.0pt">
						<span lang="EN-US" style="mso-bidi-font-family: 宋体">
								<span style="mso-list: Ignore">二、</span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">搭建开发环境</span>
				</p>
				<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
						<span style="mso-list: Ignore">
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt">
										<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
												<span style="mso-list: Ignore">1、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
										</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</span>
										<span lang="EN-US">Eclipse</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中新建项目</span>
										<span lang="EN-US">liferayPortal</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，并设置源文件夹为</span>
										<span lang="EN-US">src</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，输入文件夹名为</span>
										<span lang="EN-US">liferay/WEB-INF/classes</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt">
										<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
												<span style="mso-list: Ignore">2、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
										</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将</span>
										<span lang="EN-US">liferay-portal-tomcat-jdk5-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">4.0.0</st1:chsdate>.zip</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">解压缩后并拷贝到项目</span>
										<span lang="EN-US">liferayPortal</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">根目录下，然后改名为</span>
										<span lang="EN-US">tomcat</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt">
										<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
												<span style="mso-list: Ignore">3、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
										</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将</span>
										<span lang="EN-US">liferayPortal/tomcat</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下的</span>
										<span lang="EN-US">liferay</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录剪切到项目</span>
										<span lang="EN-US">liferayPortal</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">根目录下覆盖原目录。</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt">
										<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
												<span style="mso-list: Ignore">4、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
										</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将</span>
										<span lang="EN-US">liferay-portal-src-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">4.0.0</st1:chsdate>.zip</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">解压缩，然后将</span>
										<span lang="EN-US">liferay-4.0.0-src/portal-ejb/src</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下的</span>
										<span lang="EN-US">com</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件夹拷贝到项目</span>
										<span lang="EN-US">liferayPortal/src</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下。</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt">
										<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
												<span style="mso-list: Ignore">5、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
										</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将</span>
										<span lang="EN-US">liferay-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">4.0.0</st1:chsdate>-src/util-jsf/src/com/liferay</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下的</span>
										<span lang="EN-US">util</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件夹拷贝到项目</span>
										<span lang="EN-US">liferayPortal/src/com/liferay/</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下。</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt">
										<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
												<span style="mso-list: Ignore">6、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
										</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">拷贝</span>
										<span lang="EN-US">liferay-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">4.0.0</st1:chsdate>-src/portal-ejb/classes</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下除</span>
										<span lang="EN-US">com</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件夹外其他全部的文件夹及文件到项目</span>
										<span lang="EN-US">liferayPortal/src</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下。</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt">
										<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
												<span style="mso-list: Ignore">7、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
										</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">拷贝</span>
										<span lang="EN-US">liferay-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">4.0.0</st1:chsdate>-src/portal-ejb/classes/com/liferay/portal</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下的</span>
										<span lang="EN-US">definitions</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件夹到项目</span>
										<span lang="EN-US">liferayPortal/src/com/liferay/portal</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下。</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt">
										<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
												<span style="mso-list: Ignore">8、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
										</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">修改</span>
										<span lang="EN-US">liferayPortal/tomcat/conf/Catalina/localhost</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下的</span>
										<span lang="EN-US">ROOT.xml</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件中的</span>
										<span lang="EN-US">docBase</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">路径，指向</span>
										<span lang="EN-US">liferayPortal/liferay</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录。</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt">
										<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
												<span style="mso-list: Ignore">9、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
										</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将</span>
										<span lang="EN-US">liferay-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">4.0.0</st1:chsdate>-src/lib</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下的所有</span>
										<span lang="EN-US">jar</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包全部添加到项目</span>
										<span lang="EN-US">liferayPortal</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中。</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt">
										<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
												<span style="mso-list: Ignore">10、<span style="FONT: 7pt 'Times New Roman'"></span></span>
										</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将</span>
										<span lang="EN-US">liferayPortal/liferay/WEB-INF/lib</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下的</span>
										<span lang="EN-US">compression-filter.jar</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
										<span lang="EN-US">counter-ejb.jar</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
										<span lang="EN-US">documentlibrary-ejb.jar</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
										<span lang="EN-US">ext-ejb.jar</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
										<span lang="EN-US">lock-ejb.jar</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
										<span lang="EN-US">mail-ejb.jar</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
										<span lang="EN-US">secure-  filter.jar</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
										<span lang="EN-US">strip-filter.jar</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
										<span lang="EN-US">util-java.jar</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
										<span lang="EN-US">util-taglib.jar</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
										<span lang="EN-US">util-wsrp.jar</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">共</span>
										<span lang="EN-US">11</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个包加到项目中。</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt">
										<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
												<span style="mso-list: Ignore">11、</span>
										</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将</span>
										<span lang="EN-US">liferayPortal/tomcat/common/lib/ext</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下的</span>
										<span lang="EN-US">portal-shared.jar</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包加到项目中。</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt">
										<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
												<span style="mso-list: Ignore">12、</span>
										</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</span>
										<span lang="EN-US">liferayPortal/src</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下新建文件</span>
										<span lang="EN-US">portal-ext.properties</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，内容为：</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0">
										<span lang="EN-US">portal.release=professional</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt">
										<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
												<span style="mso-list: Ignore">13、</span>
										</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在“首选项－</span>
										<span lang="EN-US">&gt;Java</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">—</span>
										<span lang="EN-US">&gt;</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">已安装的</span>
										<span lang="EN-US">JRE</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">”里选择之前安装的</span>
										<span lang="EN-US">jre<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">1.5.0</st1:chsdate>_06</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。<br /></span>
										<img height="637" alt="1.JPG" src="http://www.blogjava.net/images/blogjava_net/coldtear/development/1.JPG" width="815" border="0" /> </p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
										<span lang="EN-US">
										</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt">
										<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
												<span style="mso-list: Ignore">14、<span style="FONT: 7pt 'Times New Roman'"></span></span>
										</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在“首选项－</span>
										<span lang="EN-US">&gt;Tomcat</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">”项中指定</span>
										<span lang="EN-US">tomcat</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的版本为</span>
										<span lang="EN-US">Version 5.x</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，并且指定“</span>
										<span lang="EN-US">Tomcat home</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">”路径为项目</span>
										<span lang="EN-US">liferayPortal/tomcat</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录。</span>
										<br />
										<img height="639" alt="2.JPG" src="http://www.blogjava.net/images/blogjava_net/coldtear/development/2.JPG" width="816" border="0" />
										<br />
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
										<span lang="EN-US">
										</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt">
										<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
												<span style="mso-list: Ignore">15、<span style="FONT: 7pt 'Times New Roman'"></span></span>
										</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在“首选项－</span>
										<span lang="EN-US">&gt;Tomcat</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">－</span>
										<span lang="EN-US">&gt;JVM Settings</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">”项，设定</span>
										<span lang="EN-US">JRE</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的版本为“</span>
										<span lang="EN-US">jre<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">1.5.0</st1:chsdate>_<st1:chmetcnv w:st="on" unitname="”" sourcevalue="6" hasspace="False" negative="False" numbertype="1" tcsc="0">06<span lang="EN-US" style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><span lang="EN-US">”</span></span></st1:chmetcnv><span lang="EN-US" style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，并且添加如下几个</span>JVM Parameters</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
										<span lang="EN-US">         -Xms<st1:chmetcnv w:st="on" unitname="m" sourcevalue="128" hasspace="False" negative="False" numbertype="1" tcsc="0">128m</st1:chmetcnv></span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
										<span lang="EN-US">         -Xmx<st1:chmetcnv w:st="on" unitname="m" sourcevalue="512" hasspace="False" negative="False" numbertype="1" tcsc="0">512m</st1:chmetcnv></span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
										<span lang="EN-US">         -Dfile.encoding=UTF8</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
										<span lang="EN-US">         -Duser.timezone=GMT+08</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
										<span lang="EN-US">         -Djava.security.auth.login.config=D:\devtool\eclipse\workspace\liferayPortal\tomcat\conf\jaas.config</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">    这里最后一个参数一定要指明</span>
										<span lang="EN-US">jaas.config</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件的路径<br /></span>     <img height="640" alt="3.JPG" src="http://www.blogjava.net/images/blogjava_net/coldtear/development/3.JPG" width="967" border="0" /><br /><span lang="EN-US" style="mso-bidi-font-family: 宋体"><span style="mso-list: Ignore">三、</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">创建数据库</span></p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
										<span lang="EN-US">1</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、本例中我们已</span>
										<span lang="EN-US">SQL Server</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数据库为例，介绍怎样连接数据库。</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
										<span lang="EN-US">2</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、解压缩</span>
										<span lang="EN-US">liferay-portal-sql-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">4.0.0</st1:chsdate>.zip</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件后，导入目录</span>
										<span lang="EN-US">liferay-portal-sql-4.0.0/create</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下的</span>
										<span lang="EN-US">create-sql-server.sql</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件即可建立</span>
										<span lang="EN-US">liferay</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">应用在</span>
										<span lang="EN-US">SQL Server</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上的数据库，数据库名为</span>
										<span lang="EN-US">lportal</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（导入</span>
										<span lang="EN-US">sql</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件命令参见</span>
										<span lang="EN-US">C:\Program Files\Microsoft SQL Server\80\Tools\Binn\osql.exe</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 5.25pt; TEXT-INDENT: -5.25pt; mso-char-indent-count: -.5">
										<span lang="EN-US">3</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、修改</span>
										<span lang="EN-US">liferayPortal/tomcat/conf/Catalina/localhost</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下的</span>
										<span lang="EN-US">ROOT.xml</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件，指定连接</span>
										<span lang="EN-US">SQLServer</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的驱动类名称、数据库</span>
										<span lang="EN-US">URL</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">及用户和密码，修改结果如下：</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt">
								</p>
								<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #e0e0e0; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
										<tbody>
												<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
														<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
																<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
																		<span lang="EN-US">&lt;Resource</span>
																</p>
																<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
																		<span lang="EN-US">
																				<span style="mso-tab-count: 1">       </span>name="jdbc/LiferayPool"</span>
																</p>
																<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
																		<span lang="EN-US">
																				<span style="mso-tab-count: 1">       </span>auth="Container"</span>
																</p>
																<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
																		<span lang="EN-US">
																				<span style="mso-tab-count: 1">       </span>type="javax.sql.DataSource"</span>
																</p>
																<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
																		<span lang="EN-US">
																				<span style="mso-tab-count: 1">       </span>driverClassName="net.sourceforge.jtds.jdbc.Driver"</span>
																</p>
																<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
																		<span lang="EN-US">
																				<span style="mso-tab-count: 1">       </span>url="jdbc:jtds:sqlserver://localhost:1433;DatabaseName=lportal"</span>
																</p>
																<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
																		<span lang="EN-US">
																				<span style="mso-tab-count: 1">       </span>username="sa"</span>
																</p>
																<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
																		<span lang="EN-US">
																				<span style="mso-spacerun: yes">    </span>password="sa"</span>
																</p>
																<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
																		<span lang="EN-US">
																				<span style="mso-spacerun: yes">    </span>maxActive="100"</span>
																</p>
																<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
																		<span lang="EN-US">/&gt;</span>
																</p>
														</td>
												</tr>
										</tbody>
								</table>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
										<span lang="EN-US">4</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、拷贝</span>
										<span lang="EN-US">liferay-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">4.0.0</st1:chsdate>-src/lib</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下的</span>
										<span lang="EN-US">jtds.jar</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包到</span>
										<span lang="EN-US">liferayPortal/tomcat/common/lib/ext</span>
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下。</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">四、启动服务器</span>
								</p>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</span>
												<span lang="EN-US">
														<font face="Times New Roman">Eclipse</font>
												</span>
												<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中启动</span>
												<span lang="EN-US">
														<font face="Times New Roman">Tomcat</font>
												</span>
												<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，当出现如下画面时，表示</span>
												<span lang="EN-US">
														<font face="Times New Roman">Tomcat</font>
												</span>
												<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">启动成功。<br /><img height="345" alt="4.JPG" src="http://www.blogjava.net/images/blogjava_net/coldtear/development/4.JPG" width="1267" border="0" /><br /></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
										</p>
								</span>
								<font face="Verdana"> </font>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在浏览器中访问：</span>
								<span lang="EN-US">
										<a href="http://localhost:8080/">
												<font face="Verdana" color="#444444">http://localhost:8080</font>
										</a>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">即可出现</span>
								<span lang="EN-US">
										<font face="Verdana">liferay</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">界面。</span>
								<font face="Verdana">
								</font>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">到此，我们的开发环境已经搭建完成。</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt">
								</p>
						</span>
				</span>
		</div>
<img src ="http://www.blogjava.net/dudubird/aggbug/68720.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dudubird/" target="_blank">毛里求斯的化石</a> 2006-09-09 16:35 <a href="http://www.blogjava.net/dudubird/articles/68720.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Liferay Portal学习笔记（三）：自定义页面布局Template （转载）</title><link>http://www.blogjava.net/dudubird/articles/68719.html</link><dc:creator>毛里求斯的化石</dc:creator><author>毛里求斯的化石</author><pubDate>Sat, 09 Sep 2006 08:33:00 GMT</pubDate><guid>http://www.blogjava.net/dudubird/articles/68719.html</guid><wfw:comment>http://www.blogjava.net/dudubird/comments/68719.html</wfw:comment><comments>http://www.blogjava.net/dudubird/articles/68719.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dudubird/comments/commentRss/68719.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dudubird/services/trackbacks/68719.html</trackback:ping><description><![CDATA[ Liferay Portal 4.0 <span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">为我们提供了几种不同的页面布局，我们可以通过</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Add Content</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">中的</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Template</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">参数来指定不同的页面布局，但是，但我们利用</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">CMS</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">来定制文章内容的时候，仅有的几种页面布局并不能满足我们的需求，所以我们需要开发能够满足特定需求的页面布局。<br /><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">    我们将开发一个具有下图风格的页面布局，该布局中我们指定了</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">7</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">个区域来分别装配</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">portlet</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">实现独特的页面风格。<br /><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><img height="488" alt="1.JPG" src="http://www.blogjava.net/images/blogjava_net/coldtear/template/1.JPG" width="601" border="0" /><br />一、编写模板文件<br /><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">    我们将该页面风格名称定义为</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">1_2_3_2 Columns</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">，在</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Liferay/html/layouttpl/custom</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">目录下新建</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">1_2_3_2_columns.tpl</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">文件，内容如下：<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">div id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">layout-content-outer-decoration</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">div id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">layout-content-inner-decoration</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">div id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">layout-content-container</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />      </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">table border</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> cellpadding</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> cellspacing</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> width</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">100%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />          </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td colspan</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> valign</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">top</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            $processor.processColumn(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">column-1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />          </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />          </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td width</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">79%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> valign</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">top</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">table border</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> cellpadding</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> cellspacing</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> width</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">100%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td width</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">26%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> valign</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">top</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                  $processor.processColumn(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">column-2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">layout-column-spacer</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> width</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                    </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">div</span><span style="COLOR: #000000">&gt;&amp;</span><span style="COLOR: #000000">nbsp;</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">div</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                  </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td width</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">26%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> valign</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">top</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                  $processor.processColumn(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">column-3</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">layout-column-spacer</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> width</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                    </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">div</span><span style="COLOR: #000000">&gt;&amp;</span><span style="COLOR: #000000">nbsp;</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">div</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                  </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td width</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">26%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> valign</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">top</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                  $processor.processColumn(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">column-4</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">table</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />          </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">layout-column-spacer</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> width</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">div</span><span style="COLOR: #000000">&gt;&amp;</span><span style="COLOR: #000000">nbsp;</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">div</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />          </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />          </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td width</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">20%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> rowspan</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> valign</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">top</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            $processor.processColumn(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">column-5</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />          </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />          </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td colspan</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">table border</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> cellpadding</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> cellspacing</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> width</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">100%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td width</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">50%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> valign</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">top</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                  $processor.processColumn(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">column-6</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">td width</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">50%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> valign</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">top</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                  $processor.processColumn(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">column-7</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">table</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">td</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">tr</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />      </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">table</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">div</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">div</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">div</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div></span></span></span></span><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">    文件中前三行定义的</span><span lang="EN-US">&lt;div&gt;</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和最后三行</span><span lang="EN-US">&lt;/div&gt;</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是固定的模板格式，从第四行开始就是我们需要定制的页面风格的</span><span lang="EN-US">HTML</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">格式，我们需要将输出</span><span lang="EN-US">portlet</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">区域的</span><span lang="EN-US">HTML</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">语句用</span><span lang="EN-US">$processor.processColumn("column-1")</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来替换，“</span><span lang="EN-US">column-1</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">”是该区域的名称，并且每个区域的名字不能重复，这样系统在生成模板的时候会自动生成不同的区域来存放我们指定的</span><span lang="EN-US">portlet</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。<br /><br />二、编写属性文件<br /></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">    我们需要在</span><span lang="EN-US"><font face="Times New Roman">liferay-layout-templates.xml</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件中配置我们自定义的页面布局文件</span><span lang="EN-US"><font face="Times New Roman">1_2_3_2_columns.tpl</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，为了和系统自带的布局文件区分开，我们创建扩展文件</span><span lang="EN-US"><font face="Times New Roman">liferay-layout-templates-ext.xml</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，在该文件中指定我们的页面布局文件，当然也可以在</span><span lang="EN-US"><font face="Times New Roman">liferay-layout-templates.xml</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件直接增加定义。</span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p><font face="Times New Roman"> </font></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman">liferay-layout-templates-ext.xml</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">&lt;?</span><span style="COLOR: #000000">xml version</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1.0</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">?&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;!</span><span style="COLOR: #000000">DOCTYPE layout</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">templates PUBLIC </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">-//Liferay//DTD Layout Templates 4.0.0//EN</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">http://www.liferay.com/dtd/liferay-layout-templates_4_0_0.dtd</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">layout</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">templates</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">custom</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">layout</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">template id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1_2_3_2_columns</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1-2-3-2 Columns</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">template</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">path</span><span style="COLOR: #000000">&gt;/</span><span style="COLOR: #000000">html</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">layouttpl</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">custom</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">1_2_3_2_columns.tpl</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">template</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">path</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">layout</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">template</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">custom</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">layout</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">templates</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">参数</span><span lang="EN-US"><font face="Times New Roman">id</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">定义该</span><span lang="EN-US"><font face="Times New Roman">template</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span><span lang="EN-US"><font face="Times New Roman">ID</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">号，</span><span lang="EN-US"><font face="Times New Roman">name</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">定义该</span><span lang="EN-US"><font face="Times New Roman">template</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</span><span lang="EN-US"><font face="Times New Roman">Add Content</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中显示的名称，</span><span lang="EN-US"><font face="Times New Roman">template-path</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">定义该</span><span lang="EN-US"><font face="Times New Roman">template</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的路径名。</span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><br />三、定制页面<br /><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">    定制好页面风格后，需要重新启动</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">TOMCAT</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">，登陆系统，进入</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">GUEST</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">频道，点击</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Add Content </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">，在</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Template</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">中将会显示我们自定义的页面布局名称</span><?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /?><st1:chsdate isrocdate="False" islunardate="False" day="3" month="2" year="2001" w:st="on"><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">1-2-3</span></st1:chsdate><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">-2 Columns</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">，选择该</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Template</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">，然后在页面中添加</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Journal Content</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">，按照我们自定义的布局将</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">portlet</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">拖拉到合适的位置，再为每个</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Journal Content</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">指定</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Article</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">，最后就完成了各种风格页面的定制过程。使用这个的方法，我们可以定制各种满足不同需求的页面。</span><br /></p><img src ="http://www.blogjava.net/dudubird/aggbug/68719.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dudubird/" target="_blank">毛里求斯的化石</a> 2006-09-09 16:33 <a href="http://www.blogjava.net/dudubird/articles/68719.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Liferay Portal学习笔记（二）：使用CMS （转载）</title><link>http://www.blogjava.net/dudubird/articles/68718.html</link><dc:creator>毛里求斯的化石</dc:creator><author>毛里求斯的化石</author><pubDate>Sat, 09 Sep 2006 08:32:00 GMT</pubDate><guid>http://www.blogjava.net/dudubird/articles/68718.html</guid><wfw:comment>http://www.blogjava.net/dudubird/comments/68718.html</wfw:comment><comments>http://www.blogjava.net/dudubird/articles/68718.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dudubird/comments/commentRss/68718.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dudubird/services/trackbacks/68718.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Liferay Portal 的CMS（Content Manage System）提供了两大功能：文档管理和文章发布。文档管理包括文档库和图片集两个portlets，能够提供对Microsoft Office文档、PDFs、文本文件和图片的管理；文章发布功能依靠Liferay Portal中的Journal portlet完成，它的特性是能够将数据（data entry）和版面设计（Layout...&nbsp;&nbsp;<a href='http://www.blogjava.net/dudubird/articles/68718.html'>阅读全文</a><img src ="http://www.blogjava.net/dudubird/aggbug/68718.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dudubird/" target="_blank">毛里求斯的化石</a> 2006-09-09 16:32 <a href="http://www.blogjava.net/dudubird/articles/68718.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Liferay Portal学习笔记（一）：安装 （转载）</title><link>http://www.blogjava.net/dudubird/articles/68572.html</link><dc:creator>毛里求斯的化石</dc:creator><author>毛里求斯的化石</author><pubDate>Fri, 08 Sep 2006 10:05:00 GMT</pubDate><guid>http://www.blogjava.net/dudubird/articles/68572.html</guid><wfw:comment>http://www.blogjava.net/dudubird/comments/68572.html</wfw:comment><comments>http://www.blogjava.net/dudubird/articles/68572.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dudubird/comments/commentRss/68572.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dudubird/services/trackbacks/68572.html</trackback:ping><description><![CDATA[
		<div class="postText">
				<h4 style="MARGIN: 14pt 0cm 14.5pt">
						<font color="#000000">
								<span lang="EN-US">
										<font face="Arial">一、</font>
								</span>
								<span style="FONT-FAMILY: 黑体; mso-ascii-font-family: Arial">
										<font style="BACKGROUND-COLOR: #ffffff">简单安装</font>
								</span>
						</font>
				</h4>
				<h5 style="MARGIN: 14pt 0cm 14.5pt">
						<font style="BACKGROUND-COLOR: #ffffff">
								<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
										<font face="Times New Roman">1）</font>下载并安装</span>
								<span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%">JDK1.5<font style="BACKGROUND-COLOR: #ffffff"></font><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p></o:p></span>
						</font>
				</h5>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo1; tab-stops: list 18.0pt">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">1、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下载并安装</span>
						<span lang="EN-US">Windows Platform J2SE(TM) Development Kit 5.0 Update</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，下载网址</span>
						<span lang="EN-US">
								<a href="http://java.sun.com/j2se/1.5.0/download.jsp">
										<font color="#444444">http://java.sun.com/j2se/1.5.0/download.jsp</font>
								</a>
						</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo1; tab-stops: list 18.0pt">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">2、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在控制面板</span>
						<span lang="EN-US">--&gt;</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">系统</span>
						<span lang="EN-US">--&gt;</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">高级选项</span>
						<span lang="EN-US">--&gt;</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">环境变量，新增一个用户变量</span>
						<span lang="EN-US">JAVA_HOME</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">并指向</span>
						<span lang="EN-US">JDK</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的安装目录</span>
				</p>
				<h5 style="MARGIN: 14pt 0cm 14.5pt">
						<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /?>
						<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">
								<span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%">2）</span>
						</st1:chsdate>
						<span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%"> </span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下载并安装</span>
						<span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%">Liferay Portal<o:p></o:p></span>
				</h5>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo2; tab-stops: list 21.0pt">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">1.<span style="FONT: 7pt 'Times New Roman'">         </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下载并安装</span>
						<span lang="EN-US">Liferay Portal Professional <st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">4.0.0</st1:chsdate> (Bundled with Tomcat and JDK 5.0),</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下载网址</span>
						<span lang="EN-US">
								<a href="http://www.liferay.com/web/guest/download">
										<font color="#444444">http://www.liferay.com/web/guest/download</font>
								</a>
						</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo2; tab-stops: list 21.0pt">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">2.<span style="FONT: 7pt 'Times New Roman'">         </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">解压缩到一个目录，并确保硬盘上有足够的空间，我们称这个目录为</span>
						<span lang="EN-US">TOMCAT_HOME</span>
				</p>
				<h5 style="MARGIN: 14pt 0cm 14.5pt">
						<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">
								<span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%">3）</span>
						</st1:chsdate>
						<span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%"> </span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">启动</span>
						<span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%">TOMCAT<o:p></o:p></span>
				</h5>
				<p class="MsoNormalIndent" style="MARGIN: 0cm 0cm 0pt">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">到</span>
						<span lang="EN-US">TOMCAT/bin</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下，运行</span>
						<span lang="EN-US">startup.bat</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
				</p>
				<p class="MsoNormalIndent" style="MARGIN: 0cm 0cm 0pt">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">你的</span>
						<span lang="EN-US">Apache Tomcat server</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">能够编译并运行</span>
						<span lang="EN-US">Liferay Portal</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。默认情况下，</span>
						<span lang="EN-US">portal</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用自带的</span>
						<span lang="EN-US">HSQL</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数据库。在浏览器中输入</span>
						<span lang="EN-US">http://localhost:8080</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，将会看见</span>
						<span lang="EN-US">portal</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">首页。</span>
				</p>
				<h4 style="MARGIN: 14pt 0cm 14.5pt">
						<span lang="EN-US">
								<font face="Arial">二、 </font>
						</span>
						<span style="FONT-FAMILY: 黑体; mso-ascii-font-family: Arial">专业安装</span>
				</h4>
				<h5 style="MARGIN: 14pt 0cm 14.5pt">
						<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">
								<span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%">1）</span>
						</st1:chsdate>
						<span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%"> </span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下载并安装</span>
						<span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%">JDK1.5<o:p></o:p></span>
				</h5>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo3; tab-stops: list 18.0pt">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">1、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下载并安装</span>
						<span lang="EN-US">Windows Platform J2SE(TM) Development Kit 5.0 Update</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，下载网址</span>
						<span lang="EN-US">
								<a href="http://java.sun.com/j2se/1.5.0/download.jsp">
										<font color="#444444">http://java.sun.com/j2se/1.5.0/download.jsp</font>
								</a>
						</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo3; tab-stops: list 18.0pt">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">2、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在控制面板</span>
						<span lang="EN-US">--&gt;</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">系统</span>
						<span lang="EN-US">--&gt;</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">高级选项</span>
						<span lang="EN-US">--&gt;</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">环境变量，新增一个用户变量</span>
						<span lang="EN-US">JAVA_HOME</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">并指向</span>
						<span lang="EN-US">JDK</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的安装目录</span>
				</p>
				<h5 style="MARGIN: 14pt 0cm 14.5pt">
						<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">
								<span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%">2）</span>
						</st1:chsdate>
						<span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%"> </span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下载并安装</span>
						<span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%">TOMCAT<o:p></o:p></span>
				</h5>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo4; tab-stops: list 18.0pt">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">1、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下载</span>
						<span lang="EN-US">apache-tomcat-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">5.5.17</st1:chsdate>.zip</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">并解压缩到一个目录，我们称这个目录为</span>
						<span lang="EN-US">TOMCAT</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
				</p>
				<h5 style="MARGIN: 14pt 0cm 14.5pt">
						<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">
								<span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%">3）</span>
						</st1:chsdate>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下载并安装</span>
						<span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%">Liferay Portal <o:p></o:p></span>
				</h5>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l4 level1 lfo5; tab-stops: list 18.0pt">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">1、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下载</span>
						<span lang="EN-US">liferay-portal-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">4.0.0</st1:chsdate>.war,</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下载网址</span>
						<span lang="EN-US">
								<a href="http://www.liferay.com/web/guest/download">
										<font color="#444444">http://www.liferay.com/web/guest/download</font>
								</a>
						</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l4 level1 lfo5; tab-stops: list 18.0pt">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">2、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">解压缩</span>
						<span lang="EN-US">liferay-portal-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">4.0.0</st1:chsdate>.war</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">到</span>
						<span lang="EN-US">TOMCAT</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下并改名为</span>
						<span lang="EN-US">liferay</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，然后将</span>
						<span lang="EN-US">liferay/WEB-INF/lib</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下除</span>
						<span lang="EN-US">util-taglib.jar</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">外的其他</span>
						<span lang="EN-US">jar</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包剪切到</span>
						<span lang="EN-US">TOMCAT/common/lib/ext</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l4 level1 lfo5; tab-stops: list 18.0pt">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">3、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</span>
						<span lang="EN-US">TOMCAT/conf/Catalina/localhost</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下，删除该目录下已有的文件，然后新建</span>
						<span lang="EN-US">ROOT.xml</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件（这里的</span>
						<span lang="EN-US">ROOT</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">必须是大写）</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">ROOT.xml</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span>
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">
								</span>
						</span>
				</p>
				<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<span style="COLOR: #000000">&lt;</span>
						<span style="COLOR: #000000">Context path</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">""</span>
						<span style="COLOR: #000000"> docBase</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">../liferay</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000"> debug</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">0</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000"> reloadable</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">true</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000"> crossContext</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">true</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">&gt;</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />       </span>
						<span style="COLOR: #000000">&lt;</span>
						<span style="COLOR: #000000">Resource<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              name</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">jdbc/LiferayPool</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              auth</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">Container</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              type</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">javax.sql.DataSource</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              driverClassName</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">org.hsqldb.jdbcDriver</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              url</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">jdbc:hsqldb:test</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              username</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">sa</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              password</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">""</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              maxActive</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">20</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />       </span>
						<span style="COLOR: #000000">/&gt;</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />       </span>
						<span style="COLOR: #000000">&lt;</span>
						<span style="COLOR: #000000">Resource<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              name</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">mail/MailSession</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              auth</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">Container</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              type</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">javax.mail.Session</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              mail.transport.protocol</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">smtp</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              mail.smtp.host</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">localhost</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />       </span>
						<span style="COLOR: #000000">/&gt;</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />       </span>
						<span style="COLOR: #000000">&lt;</span>
						<span style="COLOR: #000000">Realm <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              className</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">org.apache.catalina.realm.JAASRealm</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              appName</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">PortalRealm</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              userClassNames</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">com.liferay.portal.security.jaas.PortalPrincipal</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              roleClassNames</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">com.liferay.portal.security.jaas.PortalRole</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              debug</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">99</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />              useContextClassLoader</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">false</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />       </span>
						<span style="COLOR: #000000">/&gt;</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						</span>
						<span style="COLOR: #000000">&lt;/</span>
						<span style="COLOR: #000000">Context</span>
						<span style="COLOR: #000000">&gt;</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						</span>
				</div>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">4、<span style="FONT: 7pt 'Times New Roman'">  </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</span><span lang="EN-US">TOMCAT/conf</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下，新建</span><span lang="EN-US">jaas.config</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件</span></p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">jaas.config</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">PortalRealm {</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<span style="mso-spacerun: yes">  </span>com.liferay.portal.security.jaas.PortalLoginModule required;</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">};</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l4 level1 lfo5; tab-stops: list 18.0pt">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">5、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">修改</span>
						<span lang="EN-US">TOMCAT/conf</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下</span>
						<span lang="EN-US">catalina.properties</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件中的下面一段：</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">common.loader=${catalina.home}/common/classes,${catalina.home}/common/i18n/*.jar,${catalina.home}/common/endorsed/*.jar,${catalina.home}/common/lib/*.jar,${catalina.home}/common/lib/ext/*.jar</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l4 level1 lfo5; tab-stops: list 18.0pt">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">6、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">修改</span>
						<span lang="EN-US">TOMCAT/bin</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下</span>
						<span lang="EN-US">catalina.bat</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件，增加下面内容：</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">rem ----- Execute The Requested Command ---------------------------------------</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<o:p> </o:p>
						</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">set JAVA_OPTS=-Xms<st1:chmetcnv w:st="on" unitname="m" sourcevalue="128" hasspace="False" negative="False" numbertype="1" tcsc="0">128m</st1:chmetcnv> -Xmx<st1:chmetcnv w:st="on" unitname="m" sourcevalue="512" hasspace="False" negative="False" numbertype="1" tcsc="0">512m</st1:chmetcnv> -Dfile.encoding=UTF8 -Duser.timezone=GMT+08 -Djava.security.auth.login.config=%CATALINA_HOME%/conf/jaas.config</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l4 level1 lfo5; tab-stops: list 18.0pt">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">7、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">到</span>
						<span lang="EN-US">TOMCAT/bin</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下，运行</span>
						<span lang="EN-US">startup.bat</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。在浏览器中输入</span>
						<span lang="EN-US">http://localhost:8080</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，将会看见</span>
						<span lang="EN-US">portal</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">首页。</span>
				</p>
				<h4 style="MARGIN: 14pt 0cm 14.5pt">
						<span lang="EN-US">
								<font face="Arial">三、 </font>
						</span>
						<span style="FONT-FAMILY: 黑体; mso-ascii-font-family: Arial">连接数据库</span>
				</h4>
				<h5 style="MARGIN: 14pt 0cm 14.5pt">
						<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">
								<span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%">1）</span>
						</st1:chsdate>
						<span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%">
						</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">连接</span>
						<span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%">HSQLDB<o:p></o:p></span>
				</h5>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">修改</span>
						<span lang="EN-US">TOMCAT/conf/Catalina/localhost/ROOT.xml</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件并将</span>
						<span lang="EN-US">SQL SERVER</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">驱动包</span>
						<span lang="EN-US">hsql.jar</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">拷贝到</span>
						<span lang="EN-US">TOMCAT/common/lib/ext</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<span style="mso-tab-count: 1">       </span>&lt;Resource</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<span style="mso-tab-count: 2">              </span>name="jdbc/LiferayPool"</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<span style="mso-tab-count: 2">              </span>auth="Container"</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<span style="mso-tab-count: 2">              </span>type="javax.sql.DataSource"</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<span style="mso-tab-count: 2">              </span>driverClassName="org.hsqldb.jdbcDriver"</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<span style="mso-tab-count: 2">              </span>url="jdbc:hsqldb:test"</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<span style="mso-tab-count: 2">              </span>username="sa"</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<span style="mso-tab-count: 2">              </span>password=""</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<span style="mso-tab-count: 2">              </span>maxActive="20"</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<span style="mso-tab-count: 1">       </span>/&gt;</span>
				</p>
				<h5 style="MARGIN: 14pt 0cm 14.5pt">
						<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">
								<span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%">2）</span>
						</st1:chsdate>
						<span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%"> </span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">连接</span>
						<span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 156%">SQL SERVER<o:p></o:p></span>
				</h5>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">修改</span>
						<span lang="EN-US">TOMCAT/conf/Catalina/localhost/ROOT.xml</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件并将</span>
						<span lang="EN-US">SQL SERVER</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">驱动包</span>
						<span lang="EN-US">jtds-1.2.jar</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">拷贝到</span>
						<span lang="EN-US">TOMCAT/common/lib/ext</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<span style="mso-tab-count: 1">       </span>&lt;Resource</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<span style="mso-tab-count: 2">              </span>name="jdbc/LiferayPool"</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<span style="mso-tab-count: 2">              </span>auth="Container"</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<span style="mso-tab-count: 2">              </span>type="javax.sql.DataSource"</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<span style="mso-tab-count: 2">              </span>driverClassName="net.sourceforge.jtds.jdbc.Driver"</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<span style="mso-tab-count: 2">              </span>url="jdbc:jtds:sqlserver://localhost:1433;DatabaseName=lportal4"</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<span style="mso-tab-count: 2">              </span>username="sa"</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<span style="mso-spacerun: yes">    </span>
								<span style="mso-spacerun: yes">    </span>password="sa"</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<span style="mso-spacerun: yes">    </span>
								<span style="mso-spacerun: yes">    </span>maxActive="100"</span>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<span style="mso-tab-count: 1">       </span>/&gt;</span>
				</p>
		</div>
<img src ="http://www.blogjava.net/dudubird/aggbug/68572.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dudubird/" target="_blank">毛里求斯的化石</a> 2006-09-08 18:05 <a href="http://www.blogjava.net/dudubird/articles/68572.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hello World，一个简单的JSR 168 portlet（转载）from smoking_boy</title><link>http://www.blogjava.net/dudubird/articles/62938.html</link><dc:creator>毛里求斯的化石</dc:creator><author>毛里求斯的化石</author><pubDate>Fri, 11 Aug 2006 03:23:00 GMT</pubDate><guid>http://www.blogjava.net/dudubird/articles/62938.html</guid><wfw:comment>http://www.blogjava.net/dudubird/comments/62938.html</wfw:comment><comments>http://www.blogjava.net/dudubird/articles/62938.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dudubird/comments/commentRss/62938.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dudubird/services/trackbacks/62938.html</trackback:ping><description><![CDATA[
		<blockquote>本文以Hello World为例，介绍如何使用JSR 168 API编写portlet，打包成portlet应用，部署portlet应用到portlet容器上。最后给出JSR 168的参考实现－Apache pluto的安装配置。</blockquote>
		<p>在过去三年中，企业面临着信息、流程的整合问题，"企业门户"和"企业应用集成"一时间成了IT业内热门的课题。国内外IT厂商和开源组织顺时而动，开发了各种企业门户服务器。单是Java阵营，IBM公司发布了WebSphere Portal Server 1.2/2.1/4.x/5.x, Apache Software Foundation推出了JetSpeed、BEA、Oracle、SAP、Sun也推出了各自的Portal服务器。这些Portal服务器各自提供不同的Java API给应用系统开发商开发Portlet，应用系统开发人员不得不为不同的Portal服务器使用互不通用的API开发功能相同的Portlet。人们翘首以待，希望有一天能象编写Java Servlet那样，使用一种API编写能运行在大多数Portal服务器上的Portlet应用。</p>
		<p>经过近两年时间的漫长等待，2003年10月7日，Java Community Process(JCP)发布了JSR168: Portlet Specification 1.0的最终版本。该规范包含如下内容(参见 参考3) <br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />定义了portlet运行环境 - portlet容器 <br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />定义了portlet容器和portlet之间的API <br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />提供了portlet存储持久性和非持久性数据的机制 <br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />提供了portlet包含servlet和JSP的机制 <br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />定义了portlet打包，方便部署 <br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />保证了portlet在JSR 168门户中的二进制移植 <br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />能够以WSRP协议把JSR 168 portlet作为远程portlet运行。 </p>
		<p>JSR 168规范获得了业内的广泛支持，JSR 168专家组包括主要的Portal厂商，包括Apache、BEA、 IBM、 Oracle、 Sun等公司和组织。IBM在Apache以开放源码项目的方式提供了该规范的参考实现pluto，并在WebSphere Portal Server 5.0.2中提供了JSR 168的支持。</p>
		<p>本文以Hello World为例，介绍如何使用JSR 168 API编写portlet，打包成portlet应用 <a href="http://www-128.ibm.com/developerworks/cn/websphere/library/techarticles/yangjiang/0402_jsr168/jsr168portlet.html#download" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/">源码包下载</a>，部署portlet应用到portlet容器上。最后给出JSR 168的参考实现－Apache pluto的安装配置。 </p>
		<p>现在让我们开始吧。</p>
		<p>
				<a name="1">
						<span class="atitle2">一、 创建项目的目录结构</span>
				</a>
				<br />
		</p>
		<p>portlet项目的最基本的几个目录是： <br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />HelloWorld\JavaSource 放置Java源代码 <br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />HelloWorld\WebContent\Web-INF\classes 放置Java Class文件 <br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />HelloWorld\WebContent\Web-INF\lib放置jar文件，比如jstl.jar 、standard.jar (JSTL - JSP Standard Tag Library及Apache的JSTL的实现) <br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />HelloWorld\WebContent\Web-INF\tld 放置taglib定义文件，比如portlet.tld或者portlet.tld(portlet JSP tag)这些目录下面的jar文件和tld文件可以从安装好的pluto中找到。 </p>
		<p>
				<a name="2">
						<span class="atitle2">二、创建Portlet Java代码</span>
				</a>
				<br />
		</p>
		<p>下面是HelloWorldPortlet.java的代码。相关连的另外两个Java源文件，在本文末尾有 <a href="http://www-128.ibm.com/developerworks/cn/websphere/library/techarticles/yangjiang/0402_jsr168/jsr168portlet.html#download" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/">源码包下载</a>的链接。 </p>
		<p>注意：</p>
		<p>1.import语句，这里使用的全部是java或者javax标准类库，说明这个portlet代码应该是可以运行在支持相应标准的服务器上面。</p>
		<p>2.对于一些常量，使用了public static final修饰符。有助于提供java代码的性能。</p>
		<p>3.processAction方法是Portlet的核心方法之一，例子代码在这里处理jsp中FORM表单提交的数据，并把得到的数据放到一个Java Bean中，该Java Bean又被放到PortletSession中供jsp文件调用。 <br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />proccessAction处理完毕后，portlet引擎会运行portlet的doView方法。doView方法根据逻辑、输入数据或者配置，调用不同的jsp文件进行数据展示。 </p>
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#cccccc" border="1">
				<tbody>
						<tr>
								<td>
										<pre>
												<code>

package com.ibm.spc;

import java.io.*;

import javax.portlet.*;

/**
 *
 * A sample portlet based on GenericPortlet
 * 
 */
public class HelloWorldPortlet extends GenericPortlet {

 public static final String JSP_FOLDER    = "/com_ibm_spc/jsp/";    // JSP folder name
 public static final String VIEW_JSP      = "HelloWorldPortletView";         // JSP file name to be rendered on the view mode
 public static final String VIEW_BEAN     = "HelloWorldPortletBean";     // Bean name for the view mode request
 public static final String SAY_HELLO_ACTION   = "Say_Hellow_Action";   // Action name for submit form
 public static final String YOUR_NAME     = "YourName";     // Parameter name for the text input

 /**
  * Serve up the &lt;code&gt;view&lt;/code&gt; mode.
  * 
  * @see javax.portlet.GenericPortlet#doView(javax.portlet.RenderRequest, javax.portlet.RenderResponse)
  */
 public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
  // Set the MIME type for the render response
  response.setContentType(request.getResponseContentType());

  // Invoke the JSP to render
  PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(getJspFilePath(request, VIEW_JSP));
  rd.include(request,response);
 }

 /**
  * Process an action request.
  * 
  * @see javax.portlet.Portlet#processAction(javax.portlet.ActionRequest, javax.portlet.ActionResponse)
  */
 public void processAction(ActionRequest request, ActionResponse response) throws PortletException, java.io.IOException {
  if( request.getParameter(SAY_HELLO_ACTION) != null ) {
   // Make a session bean
   PortletSession session = request.getPortletSession();
   HelloWorldPortletBean viewBean = new HelloWorldPortletBean();
   session.setAttribute(VIEW_BEAN, viewBean);
   
   System.out.println("debug HelloWorld " + request.getParameter(YOUR_NAME));
   
   // Set form text in the view bean
   viewBean.setFormText(request.getParameter(YOUR_NAME));
  }
 }

 /**
  * Returns JSP file path.
  * 
  * @param request Render request
  * @param jspFile JSP file name
  * @return JSP file path
  */
 private static String getJspFilePath(RenderRequest request, String jspFile) {
  String markup = request.getProperty("wps.markup");
  if( markup == null )
   markup = getMarkup(request.getResponseContentType());
  return JSP_FOLDER+markup+"/"+jspFile+"."+getJspExtension(markup);
 }
 
 /**
  * Convert MIME type to markup name.
  * 
  * @param contentType MIME type
  * @return Markup name
  */
 private static String getMarkup(String contentType) {
  if( "text/vnd.wap.wml".equals(contentType) )
   return "wml";
  return "html";
 }

 /**
  * Returns the file extension for the JSP file
  * 
  * @param markupName Markup name
  * @return JSP extension
  */
 private static String getJspExtension(String markupName) {
  return "jsp";
 }

}

    </code>
										</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<a name="3">
						<span class="atitle2">三、创建JSP</span>
				</a>
				<br />
		</p>
		<p>jsp文件中首先声明它不需要创建新的HTTP Session，返回页面的内容是html页面。然后import声明需要引用标准java类库java.util，javax.portlet，以及我们自己的类库com.ibm.spc。接着声明使用portlet标记库。&lt;portlet:defineObjects/&gt;使用portlet标记库的标记defineObjects，定义了jsp中要使用3个变量：</p>
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#cccccc" border="1">
				<tbody>
						<tr>
								<td>
										<pre>
												<code>

RenderRequest renderRequest
RenderResponse renderResponse
PortletConfig portletConfig

    </code>
										</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#cccccc" border="1">
				<tbody>
						<tr>
								<td>
										<pre>
												<code>

&lt;%@ page session="false" import="java.util.*,javax.portlet.*,com.ibm.spc.*" %&gt;
&lt;%@taglib uri="http://java.sun.com/portlet" prefix="portlet" %&gt;
&lt;portlet:defineObjects/&gt;

    </code>
										</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>接下来，从&lt;portlet:defineObjects/&gt;语句定义的变量renderRequest当中获取PortletSession，进而得到session当中保存的数据并显示在JSP页面上。</p>
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#cccccc" border="1">
				<tbody>
						<tr>
								<td>
										<pre>
												<code>

 &lt;%
 PortletSession session = renderRequest.getPortletSession();
 HelloWorldPortletBean bean = (HelloWorldPortletBean)session.getAttribute(HelloWorldPortlet.VIEW_BEAN);
%&gt;
 if (bean != null) {
  String formText = bean.getFormText();
  if( formText.length()&gt;0 ) {
%&gt;
  Hello &lt;%=formText%&gt;.
 &lt;%
  }
 }
 %&gt;
 
    </code>
										</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>最后部分是使用portlet标记库的另一个标记actionURL产生一个URL指向当前页面中的这个portlet，生成的URL能够触发当前portlet的action请求，或者说这个URL能够触发当前portlet的processAction方法。</p>
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#cccccc" border="1">
				<tbody>
						<tr>
								<td>
										<pre>
												<code>

  &lt;FORM method="POST" action="&lt;portlet:actionURL/&gt;"&gt;
  &lt;LABEL  for="&lt;%=HelloWorldPortlet.YOUR_NAME%&gt;"&gt;Please input your name here, &lt;/LABEL&gt;&lt;BR&gt;
  &lt;INPUT name="&lt;%=HelloWorldPortlet.YOUR_NAME%&gt;" type="text"/&gt;
  &lt;INPUT name="&lt;%=HelloWorldPortlet.SAY_HELLO_ACTION%&gt;" type="submit" value="Submit"/&gt;
 &lt;/FORM&gt;
 
    </code>
										</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<a name="4">
						<span class="atitle2">四、编译portlet</span>
				</a>
				<br />
		</p>
		<p>编写好portlet的java代码，现在我们可以把它编译成二进制class文件。</p>
		<p>下面的脚本中使用JAVA_HOME环境变量指向WebSphere Application Server 5.0.2中的IBM JDK 1.3.1。</p>
		<p>脚本中使用CP变量指向Tomcat 4.1中带的Servlet 2.3类库，以及pluto的JSR 168 portlet类库。脚本最后的动作是编译HelloWorld portlet，并把编译好的class文件放到WebContent\WEB-INF\classes目录。</p>
		<p>注意：</p>
		<p>WebSphere Portal Server 5.0.2中使用的WebSphere Application Server 企业版5.0.2；Tomcat 4.1使用的JDK 1.3.1。</p>
		<p>WebSphere Application Server 5.1中的JDK是1.4.1版本。</p>
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#cccccc" border="1">
				<tbody>
						<tr>
								<td>
										<pre>
												<code>

set JAVA_HOME=C:\WebSphere\AppServer\java
set PATH=%JAVA_HOME%\bin
set tomcat.home.pluto=e:\ApacheSoftwareFoundation\Tomcat4.1
set CP=.
rem Servlet 2.3 API jar file
set CP=%CP%;%tomcat.home.pluto%\common\lib\servlet.jar
rem JSR 168 API jar file
set CP=%CP%;%tomcat.home.pluto%\shared\lib\portlet-api.jar
rem Specify where to place generated class files
set target_path=..\WebContent\WEB-INF\classes
cd JavaSource
javac -classpath %CP% -d %target_path% com\ibm\spc\*.java

    </code>
										</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<a name="5">
						<span class="atitle2">五、 创建Web应用的部署描述文件</span>
				</a>
				<br />
		</p>
		<p>Portlet应用也是一个J2EE Web应用，拥有一个Web应用部署描述文件web.xml。web.xml文件中taglib标记部分是关于Portlet Tag Library的定义，在Portlet 应用的jsp文件中可以使用这种Tag Lib。</p>
		<p>下面代码片断声明使用uri是 <a href="http://java.sun.com/portlet" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/">http://java.sun.com/portlet</a>的tag lib，tag lib的前缀是portlet。关于Portlet Tag Library请参考Java Portlet Specification。 </p>
		<p>注意：2004年2月的pluto中portlet部署程序中不能分析处理web.xml文件中welcome-file的标记，相信Apache会在后继的版本中修正这个问题。解决办法是，或者从web.xml文件中去除有关的tag；或者修改pluto代码，为servletdefinitionmapping.xml文件添加welcome-file标记，为org.apache.pluto.portalImpl.om.servlet.impl. WebApplicationDefinitionImpl java类添加一个字段来解决这个问题。</p>
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#cccccc" border="1">
				<tbody>
						<tr>
								<td>
										<pre>
												<code>

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"&gt;
&lt;web-app id="WebApp"&gt;
 &lt;display-name&gt;HelloWorld Web Application&lt;/display-name&gt;
 &lt;taglib id="PortletTLD"&gt;
  &lt;taglib-uri&gt;http://java.sun.com/portlet&lt;/taglib-uri&gt;
  &lt;taglib-location&gt;/WEB-INF/tld/portlet.tld&lt;/taglib-location&gt;
 &lt;/taglib&gt;
&lt;/web-app&gt;

    </code>
										</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<a name="6">
						<span class="atitle2">六、 创建Portlet部署描述文件</span>
				</a>
				<br />
		</p>
		<p>每个Portlet应用除了Web应用部署描述文件web.xml外，还有一个Portlet部署描述文件 - portlet.xml。该文件中包括该Portlet Application中一个或者多个portlet的定义。</p>
		<p>下面的portlet.xml文件中首先是&lt;portlet-app/&gt;，其中引用了sun公司的关于portlet描述文件的名字空间的定义文件portlet-app_1_0.xsd。然后是各个&lt;portlet/&gt;定义，包括名字和描述信息，国际化的名字和描述信息，portlet的class类名，portlet的初始化参数、国际化用户界面中使用的资源文件。HelloWorld Portlet有一个初始化参数wps.markup，在我们的portlet代码中使用renderRequest.getProperty("wps.markup")获得这个初始化参数的值。</p>
		<p>
				<a name="7">
						<span class="atitle2">七、 创建war文件</span>
				</a>
				<br />
		</p>
		<p>我们使用JDK的命令jar把class文件、jsp文件、jar包、JSP标记库、web部署描述文件web.xml、portlet部署描述文件portlet.xml等打包成web archive文件。</p>
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#cccccc" border="1">
				<tbody>
						<tr>
								<td>
										<pre>
												<code>

set JAVA_HOME=C:\WebSphere\AppServer\java
set PATH=%JAVA_HOME%\bin
cd WebContent
jar cf ..\build\HelloWorld.war .

    </code>
										</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<a name="8">
						<span class="atitle2">八、 在pluto上面部署portlet应用</span>
				</a>
				<br />
		</p>
		<p>pluto提供了部署打包成war格式portlet应用的命令行工具。名叫Deploy的部署工具会做两件事情：</p>
		<p>1. 分析portlet应用war文件中的web.xml文件和portlet.xml文件，修改web.xml以添加和pluto运行环境相关的servlet定义和servlet运行参数</p>
		<p>2. 把portlet作为Web应用部署到Tomcat服务器上面</p>
		<p>在我们的例子中，Deploy工具修改web.xml文件，添加一个名叫HelloWorldPortlet的servlet定义，并为这个servlet添加了portlet-guid的参数，参数值HelloWorld.HelloWorldPortlet。其中&lt;servlet-name&gt;值来源于portlet.xml文件中&lt;portlet-name&gt;标记，portlet-guid参数的值是war文件的前面部分和portlet.xml文件中&lt;portlet-name&gt;标记的值的组合。</p>
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#cccccc" border="1">
				<tbody>
						<tr>
								<td>
										<pre>
												<code>

        &lt;servlet&gt;
        &lt;servlet-name&gt;HelloWorldPortlet&lt;/servlet-name&gt;
        &lt;display-name&gt;HelloWorldPortlet Wrapper&lt;/display-name&gt;
        &lt;description&gt;Automated generated Portlet Wrapper&lt;/description&gt;
        &lt;servlet-class&gt;org.apache.pluto.core.PortletServlet&lt;/servlet-class&gt;
        &lt;init-param&gt;
            &lt;param-name&gt;portlet-guid&lt;/param-name&gt;
            &lt;param-value&gt;HelloWorld.HelloWorldPortlet&lt;/param-value&gt;
        &lt;/init-param&gt;
        &lt;init-param&gt;
            &lt;param-name&gt;portlet-class&lt;/param-name&gt;
            &lt;param-value&gt;com.ibm.spc.HelloWorldPortlet&lt;/param-value&gt;
        &lt;/init-param&gt;
    &lt;/servlet&gt;
    &lt;servlet-mapping&gt;
        &lt;servlet-name&gt;HelloWorldPortlet&lt;/servlet-name&gt;
        &lt;url-pattern&gt;/HelloWorldPortlet/*&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;
    
    </code>
										</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>Deploy的语法是：</p>
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#cccccc" border="1">
				<tbody>
						<tr>
								<td>
										<pre>
												<code>

deploy &lt;TOMCAT-webapps-directory&gt; &lt;TOMCAT-pluto-webmodule-name&gt; &lt;web-archive&gt;
        
        <br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" /> &lt;build-container-dir&gt; [-debug] [-addToEntityReg &lt;app-id&gt; [&lt;portlet-id&gt;:&lt;portlet-name&gt;]+]

    
      
      </code>
										</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>下面的例子脚本中，Tomcat所有Web应用都部署在TOMCAT-webapps-directory目录下面，比如%tomcat.home%/webapps；&lt;TOMCAT-pluto-webmodule-name&gt;参数是pluto web应用的名称，比如 pluto；web-archive参数是我们要部署的portlet应用打包文件， D:/workspace/JSR168Portlet/HelloWorld/build/HelloWorld.war；&lt;build-container-dir&gt;是portlet部署工具的工作路径，比如当前路径，Deploy工具会在相对于工作路径的路径下面找寻相关文件。</p>
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#cccccc" border="1">
				<tbody>
						<tr>
								<td>
										<pre>
												<code>

set JAVA_HOME=C:\WebSphere\AppServer\java
set PATH=%JAVA_HOME%\bin
set tomcat.home.pluto=e:\ApacheSoftwareFoundation\Tomcat4.1
set CP=.
set CP=%CP%;%tomcat.home.pluto%\common\lib\servlet.jar
set CP=%CP%;%tomcat.home.pluto%\shared\lib\portlet-api.jar
set CP=%CP%;%tomcat.home.pluto%\common\endorsed\xercesImpl.jar
set CP=%CP%;%tomcat.home.pluto%\webapps\pluto\WEB-INF\lib\castor-0.9.5.jar;
set CP=%CP%;%tomcat.home.pluto%\common\endorsed\xmlParserAPIs.jar
set CP=%CP%;%tomcat.home.pluto%\shared\lib\pluto-1.0.jar
cd %tomcat.home.pluto%\webapps\pluto\WEB-INF\classes
set tomcat.home=e:/ApacheSoftwareFoundation/Tomcat4.1

java -classpath %CP% org.apache.pluto.portalImpl.Deploy %tomcat.home%/webapps pluto
        
        <br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" /> D:/workspace/JSR168Portlet/HelloWorld/build/HelloWorld.war . -debug

    
      
      </code>
										</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>注意：2004年2月份的pluto部署以后，可能缺少一个文件，具体路径和文件名称是tomcat.home\webapps\pluto\WEB-INF\portal\src\webapp\WEB-INF\tld\portlet.tld。</p>
		<p>
				<a name="9">
						<span class="atitle2">九、 注册portlet到pluto容器中</span>
				</a>
				<br />
		</p>
		<p>修改%tomcat.home.pluto%\webapps\pluto\WEB-INF\data\portletentityregistry.xml文件，加入我们的portlet的注册信息。其中application属性&lt;definition-id&gt;指向HelloWorld应用的war文件名称的前半部分，portlet属性definition-id指向HelloWorld应用的web.xml文件中portlet-guid的值。这样，portlet容器pluto就能够根据这个注册文件找到相应web应用的servlet了。</p>
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#cccccc" border="1">
				<tbody>
						<tr>
								<td>
										<pre>
												<code>

        &lt;application id="5"&gt;
        &lt;definition-id&gt;HelloWorld&lt;/definition-id&gt;
        &lt;portlet id="1"&gt;
            &lt;definition-id&gt;HelloWorld.HelloWorldPortlet&lt;/definition-id&gt;
            &lt;preferences&gt;
                &lt;pref-name&gt;TestName4&lt;/pref-name&gt;
                &lt;pref-value&gt;TestValue4&lt;/pref-value&gt;
                &lt;read-only&gt;true&lt;/read-only&gt;
            &lt;/preferences&gt;
        &lt;/portlet&gt;
    &lt;/application&gt;
    
    </code>
										</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<a name="10">
						<span class="atitle2">十、 把portlet放到我们的测试页面中</span>
				</a>
				<br />
		</p>
		<p>修改%tomcat.home.pluto%\webapps\pluto\WEB-INF\data\ pageregistry.xml文件，添加一段fragment，把我们的portlet注册到页面上。其中名为portlet的参数的值是portletentityregistry.xml文件中注册的portlet的应用id和portlet id的组合。</p>
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#cccccc" border="1">
				<tbody>
						<tr>
								<td>
										<pre>
												<code>

                        &lt;fragment name="col1" type="column"&gt;
                &lt;fragment name="p3" type="portlet"&gt;
                    &lt;property name="portlet" value="5.1"/&gt;
                &lt;/fragment&gt;
            &lt;/fragment&gt;
            
    </code>
										</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>现在重新启动Tomcat，我们终于看到盼望已久的JSR 168 portlet了。</p>
		<p>
				<img height="250" alt="" src="http://www.360doc.com/DownloadImg/677/9428_1.png" width="265" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />
				<br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />
		</p>
		<p>在页面中输入IBM Innovation Center，你将看到</p>
		<p>
				<img height="370" alt="" src="http://www.360doc.com/DownloadImg/677/9428_2.png" width="238" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />
				<br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />
		</p>
		<p>
				<a name="11">
						<span class="atitle2">十一、 pluto的安装</span>
				</a>
				<br />
		</p>
		<p>根据JSR 168 Request，IBM在Apache以开放源码的方式提供了JSR 168的参考实现。</p>
		<p>安装Apache pluto，我们需要 <br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />1)Maven 1.0-beta-10或者更高版本，下载网址 <a href="http://maven.apache.org/start/download.html" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/">http://maven.apache.org/start/download.html</a><br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />2)JDK 1.3或者更高 <br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />3)Servlet 2.3引擎 <br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />Tomcat 4.1.18-LE w/JDK 1.4 <br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />或者 <br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />Tomcat 4.1.24 w/ JDK 1.3 <br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />4)CVS Client for windows <br xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dw="http://www.ibm.com/developerworks/" />本人使用的测试环境是IBM JDK 1.3.1， jakarta-tomcat-4.1.29， v. 1.0-rc1-SNAPSHOT。 </p>
		<p>我们需要使用cvs客户端以匿名方式下载pluto代码。注意：cvs客户端不能使用代理，必须用直接的internet连接。</p>
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#cccccc" border="1">
				<tbody>
						<tr>
								<td>
										<pre>
												<code>

cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login
password: anoncvs
cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic checkout jakarta-pluto

    </code>
										</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>安装好JDK、maven、Tomcat以后，进入pluto源码目录，拷贝build.properties.sample 文件为build.properties文件。在build.properties文件中指定tomcat安装路径，注意windows平台上面或者使用/或者是\\作为路径的分割符。如果你在公司防火墙的后面或者其他原因必须通过代理服务器访问internet的话，那么需要指定代理服务器参数maven.proxy.host和maven.proxy.port。</p>
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#cccccc" border="1">
				<tbody>
						<tr>
								<td>
										<pre>
												<code>

tomcat.home.pluto=e:\\ApacheSoftwareFoundation\\Tomcat4.1
maven.proxy.host = proxyhostname
maven.proxy.port = 8080

    </code>
										</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>现在，我们执行maven命令就可以开始pluto的安装了。Maven将安装pluto到Tomcat服务器上面，安装名为testsuite的测试用portlet应用到Tomcat上，配置pluto以运行testsuite中的例子portlet。</p>
		<p>启动tomcat以后，通过http://localhost:8080/pluto/portal/就可以访问到pluto的演示页面了。</p>
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#cccccc" border="1">
				<tbody>
						<tr>
								<td>
										<pre>
												<code>

MAVEN_HOME=E:\ApacheSoftwareFoundation\Maven1.0-rc1
Set PATH=%MAVEN_HOME%\bin;%path%
maven fullDeployment

    </code>
										</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<a name="12">
						<span class="atitle2">后记</span>
				</a>
				<br />
		</p>
		<p>相信JSR 168标准会象Servlet标准那样得到应用服务器厂商和广大应用开发商的大力支持。上面的HelloWorld portlet现在可以运行在Apache pluto上面和IBM WebSphere Portal Server 5.0.2上面，相信也能运行在其他支持该标准的Portal服务器上。</p>
<img src ="http://www.blogjava.net/dudubird/aggbug/62938.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dudubird/" target="_blank">毛里求斯的化石</a> 2006-08-11 11:23 <a href="http://www.blogjava.net/dudubird/articles/62938.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Portlet应用开发 (JSR168)（四）</title><link>http://www.blogjava.net/dudubird/articles/62853.html</link><dc:creator>毛里求斯的化石</dc:creator><author>毛里求斯的化石</author><pubDate>Thu, 10 Aug 2006 12:50:00 GMT</pubDate><guid>http://www.blogjava.net/dudubird/articles/62853.html</guid><wfw:comment>http://www.blogjava.net/dudubird/comments/62853.html</wfw:comment><comments>http://www.blogjava.net/dudubird/articles/62853.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dudubird/comments/commentRss/62853.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dudubird/services/trackbacks/62853.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: By Terry.li																										SpiritSeekerS@sqatester.com																																						 																																 														...&nbsp;&nbsp;<a href='http://www.blogjava.net/dudubird/articles/62853.html'>阅读全文</a><img src ="http://www.blogjava.net/dudubird/aggbug/62853.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dudubird/" target="_blank">毛里求斯的化石</a> 2006-08-10 20:50 <a href="http://www.blogjava.net/dudubird/articles/62853.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Portlet应用开发 (JSR168)（三）</title><link>http://www.blogjava.net/dudubird/articles/62846.html</link><dc:creator>毛里求斯的化石</dc:creator><author>毛里求斯的化石</author><pubDate>Thu, 10 Aug 2006 12:26:00 GMT</pubDate><guid>http://www.blogjava.net/dudubird/articles/62846.html</guid><wfw:comment>http://www.blogjava.net/dudubird/comments/62846.html</wfw:comment><comments>http://www.blogjava.net/dudubird/articles/62846.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dudubird/comments/commentRss/62846.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dudubird/services/trackbacks/62846.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: By Terry.lee 																										SpiritSeekerS@sqatester.com																								 																		 																		         								本部份将讲述...&nbsp;&nbsp;<a href='http://www.blogjava.net/dudubird/articles/62846.html'>阅读全文</a><img src ="http://www.blogjava.net/dudubird/aggbug/62846.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dudubird/" target="_blank">毛里求斯的化石</a> 2006-08-10 20:26 <a href="http://www.blogjava.net/dudubird/articles/62846.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Portlet应用开发 (JSR168)（二）</title><link>http://www.blogjava.net/dudubird/articles/62843.html</link><dc:creator>毛里求斯的化石</dc:creator><author>毛里求斯的化石</author><pubDate>Thu, 10 Aug 2006 12:22:00 GMT</pubDate><guid>http://www.blogjava.net/dudubird/articles/62843.html</guid><wfw:comment>http://www.blogjava.net/dudubird/comments/62843.html</wfw:comment><comments>http://www.blogjava.net/dudubird/articles/62843.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dudubird/comments/commentRss/62843.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dudubird/services/trackbacks/62843.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: By Terry.lee 																										SpiritSeekerS@sqatester.com																																 																																 																		...&nbsp;&nbsp;<a href='http://www.blogjava.net/dudubird/articles/62843.html'>阅读全文</a><img src ="http://www.blogjava.net/dudubird/aggbug/62843.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dudubird/" target="_blank">毛里求斯的化石</a> 2006-08-10 20:22 <a href="http://www.blogjava.net/dudubird/articles/62843.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Portlet应用开发 (JSR168)（一）</title><link>http://www.blogjava.net/dudubird/articles/62842.html</link><dc:creator>毛里求斯的化石</dc:creator><author>毛里求斯的化石</author><pubDate>Thu, 10 Aug 2006 12:19:00 GMT</pubDate><guid>http://www.blogjava.net/dudubird/articles/62842.html</guid><wfw:comment>http://www.blogjava.net/dudubird/comments/62842.html</wfw:comment><comments>http://www.blogjava.net/dudubird/articles/62842.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dudubird/comments/commentRss/62842.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dudubird/services/trackbacks/62842.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: By						Terry. Lee																		SpiritSeekerS@sqatester.com																														 												本系列将介绍如何开发基于				Portlet Specification v1.0 (JSR168)				...&nbsp;&nbsp;<a href='http://www.blogjava.net/dudubird/articles/62842.html'>阅读全文</a><img src ="http://www.blogjava.net/dudubird/aggbug/62842.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dudubird/" target="_blank">毛里求斯的化石</a> 2006-08-10 20:19 <a href="http://www.blogjava.net/dudubird/articles/62842.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>