1.首先配置struts-config.xml
<action path="/my_account/view " type="com.ext.portlet.library.action.AddBookAction">
<forward name="portlet.ext.library.error" path="portlet.ext.library.error" />
<forward name="portlet.ext.library.success" path="portlet.ext.library.success" />
</action>
跟平常做Struts开发不同的就是path
2.接下来配置tiles-def.xml
<definition name="portlet.ext.library.error" extends="portlet">
<put name="portlet_content" value="/portlet/ext/library/error.jsp" />
</definition>
definition name就是struts-config.xml 的forward name ,extends="portlet"是默认继承Liferay的tiles-defs.xml(有时间仔细看看)。
3. portlet-ext.xml定义Portlet
<portlet>
<portlet-name>2</portlet-name>
<display-name>My Account</display-name>
<portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>
<init-param>
<name>view-action</name>
<value>/my_account/view</value>
</init-param>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
</supports>
<resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>
</portlet>
红色是需要修改的地方,portlet-name定义唯一标识。<value>/my_account/view</value>指定Action里面的path。
4. liferay-portlet-ext.xml描述Portlet(我理解为配置Portlet更多的信息,第三步仅仅是声名创建)
<portlet>
<portlet-name>EXT_4</portlet-name>
<struts-path>ext/login</struts-path>
<use-default-template>false</use-default-template>
<footer-portlet-css>
/html/portlet/ext/css/book.css
</footer-portlet-css>
<footer-portlet-javascript>
/html/portlet/ext/js/jquery-1.3.2.min.js
</footer-portlet-javascript>
<footer-portlet-javascript>
/html/portlet/ext/js/book.js
</footer-portlet-javascript>
</portlet>
解释<struts-path>ext/login</struts-path>
他的取值,Action的path,第一个/到最后一个/之间的内容就行了.
5. liferay-display.xml
<category name="category.sample">
<portlet id="47" />
<portlet id="48" />
<portlet id="50" />
<portlet id="66" />
<portlet id="EXT_1" />
<portlet id="EXT_4"/>
<portlet id="EXT_2"/>
</category>
指定Portlet到哪个版块下面,找到想放的版块,添加<portlet id="EXT_2"/>
6.创建Action和所需要的Jsp文件
注意:在Liferay Portlet开发中,导入Js和CSS以及引用img都要使用绝对路径,
/html/portlet/*/*/*/
还有就是一些细节问题,细心配置和编码