liferay5.0 plugins sdk开发(一)

第一次用plugins开发无疑等自于自杀,两个星期过去了,经历了无边的黑暗终于看到了光明。接着上一篇create.bat一个portlet,生成的一个portlet是一个最简单的portlet,如果只是普通的显示,OK是可以满足的。如果是一个复杂的则他是不能满足的,你需要做如下的修改:
(1)portlet.xml:<portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>JSPPortlet改为StrutsPortlet,view-jsp改为view-action,<value>改为自已的。这样就和struts绑上了。
(2)增加struts-config文件,文件里,可以根据自已的需要来定义message-resource,tiles.
(3)liferay-portlet.xml 增加上struts-path,<configuration-action-class>则根据需要。
(4)web.xml增加如下:
<servlet>
<servlet-name>PortletActionServlet</servlet-name>
<servlet-class>com.liferay.portal.struts.PortletActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
自定义servlet<load-on-startup>要从1开始,因为自动部署后0会被com.liferay.portal.kernel.servlet.PortletServlet占用。<taglib>liferay-portlet.tld也是自动部署后加上去,但是这是不够的,如果你要用到配置页,liferay-portlet-ext.tld是需要的,liferay-ui也经常会需要的,如果在页面上会用到themeid,layout之类的方法,那么你还要增加liferay-theme.tld。其他的可在项目中根据需要看是否要增加。
(5)在docroot下面增加META-INF/context.xml,文件内容如下:
<Context>
<Loader
loaderClass="com.liferay.support.tomcat.loader.PortalClassLoader"
/>
</Context>
不要小瞧这段话,他是至关重要的,让你当前的portlet依赖于lifeay的包。如果没有这个会报castException之类的错误,两个应用虽然引用的是同一个包,但是包不在同一个别lib下面,类型转换时会认为他们不是同一类型,这个问题看了一周,在lifeay官网上有人回答了这个错误的引起的原因,却没有告之解决方案,还是在一个好友的帮助之下解决了这个问题。
(6)生成的JSP都有这么一句话,<portlet:defineObjects />这个是就是第四点说的,liferay-portlet.tld标签中的一个,你的代码要写在这句话之下,他定义很多常用的类,如actionurl,renderurl,portletpreferences,具体可以看com.liferay.taglib.portlet.DefineObjectsTei,同样的liferay-theme.tld中也有<liferay-theme:defineObjects />他定义了themeDisplay,layout,permissionChecker,portletGroupId,theme,具体可以看com.liferay.taglib.theme.DefineObjectsTei。
按上面的配置改好后,基本就和ext中开发一样了,最后一点建义,自定义portlet工程,如果要引用包,不要放在WIN-INF/lib下面,放在sdk下面的lib下面,如果用到了除了lifeay之外的包可以放在WIN-INF/lib下面,因为deploy后他会把WIN-INF/lib下所有的包都部署过去,而有些包是只能加载一次的。
最后希望大家都能看到光明。
阅读更多

liferay5.0 2次开发

07-10

开发环境 rnliferay-portal-src-5.0.1.zip rnliferay-portal-tomcat-5.5-5.0.1.zip rnwindowsp3 rneclipse3.4 rnjdk1.5.10 rnant1.7 rnrnrn以前没搞过portal rn这个星期整了一个星期,头很大, rn网上找了很多贴子看了晕头转向的 rnrn我的开发步骤 rn解压src-5.0.1.zip到D:\liferay\portal文件夹内 rn使用eclipse3.4加载 rn增加配置文件release.work.properties(work是我的系统工作环境) rn在portal-impl/src rn里面增加 rncom.liferay.portlet.helloworld.HelloWorldPortletLinpyi.java rn其内容基本和liferay里的helloword一样 rnrn修改portal-web/docroot/WEN-INF下的配置文件 rnportlet-custom.xml rnJava代码 rn[code=Java]rn rn 121 rn lpy rn com.liferay.portlet.helloworld.HelloWorldPortletLinpyi rn rn text/html rn rn rn Hello lpy rn Hello lpy rn Hello lpy rn rn rn guest rn rn rn power-user rn rn rn user rn rn rn[/code]rn修改liferay-display.xml rnJava代码 rn[code=Java]rn rn rn rn rn rn rn rn rn[/code]rnliferay-portlet.xml rn[code=Java]rn rn 121 rn hello_linpyi rn false rn false rn false rn 1 rn rn[/code]rn使用ant编译bulider.xml rn生成一个ext文件夹 rn然后把liferay-tomcat解压到D:\liferay\ext\servers\tomcat路径下 rn修改app.server.properties 文件里 rn修改server路径:app.server.parent.dir=D:/liferay/ext/servers rnapp.server.tomcat.dir=$app.server.parent.dir/tomcat rn使用ant编译ext文件下的build.xml rnrn启动服务器 rn在sample里面出现了一个portlet,不过不是我写的 rn是一个EXT_1的portlet应该属于原来自带的 rn在D:\liferay\ext\servers\tomcat\webapps\ROOT\WEB-INF rn文件里 rnliferay-display.xml被修改了 rn[code=Java] rn rn rn rn rn rn rn rn [/code]rn感觉很奇怪 rn不知道有没发错地方,希望各位帮忙

没有更多推荐了,返回首页