LifeRay Portal 6学习笔记5:Struts Portlet开发示例

阅读更多

这篇所说的Struts Portlet是在Ext环境下开发的,使用liferay里面集成的Struts 1.2

 

开发流程图


LifeRay Portal 6学习笔记5:Struts Portlet开发示例_第1张图片

 

本文是基于以前的在Liferay IDE里面创建的ext环境开发。

准备工作

1、在ext-web目录下面创建如下目录/html/portlet/struts

2、在ext-impl/src下面创建包content,并在这个包下面创建文件Language-ext_zh_CN.properties

3、将tomcat/webapps/root/WEB-INF下面的liferay-display.xml文件copy到ext环境下面的WEB-INF目录下面。

配置Portlet:portlet-ext

 

在portlet-ext.xml里面写入如下内容

 

	
		strutsdemo
		strutsdemos
		com.liferay.portlet.StrutsPortlet
		
			view-action
			/strutsportlet/demo
		
		0
		
			text/html
		
		com.liferay.portlet.StrutsResourceBundle
		
			power-user
		
		
			user
		
	
 

 

 配置Portlet实例属性:Liferay-portlet-ext 

 

在liferay-portlet-ext里面写入,如下内容

 

 

 
	  strutsdemo
	  strutsportlet
	  false

注意:这里的Struts-path是上面配置的value里面的第一个“/”和最后一个“/”之间的内容

         portlet-name必须和上面的一样。

 

归类Portlet:liferay-display

在Liferay-display里面将上面的portlet归类显示:

 


	
	
	
	
	

 

 将其放入示例下面,这里的归类,根据自己的需要。

国际化

在这个文件Language-ext_zh_CN.properties里面写入我让要让这个portlet显示的名字:

 

javax.portlet.title.strutsdemo=strutsportlet\u793a\u4f8b

 这里的中文要使用native2ascii进行转义。

定义Struts页面流

在struts-config-ext.xml里面写入如下内容:

 


	
	
	

 

 这里的path,是前面的portlet-ext.xml里面定义的。其他的和普通Struts一样

 

定义title页面布局

在tiles-defs-ext.xml里面写入如下内容:

 



	


	


	

 这里的portlet.ext继承自portlet,也就是说portlet.ex会使用portlet.jsp作为他的模板。下面的这些同理。

创建view.jsp

在/html/portlet/struts下面创建init.jsp文件,在里面写入如下内容:

 

<%@ include file="/html/portlet/init.jsp" %>

 这里会报错,不用理会,因为这是通过ext环境开发的,部署后就会找到这个文件的。

 

创建view.jsp,内容如下:

 

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ include file="/html/portlet/struts/init.jsp" %>

This is the LiferayStudy portlet.

	

输入你的名字:

portlet标签的意思,请参看

Liferay Portal 6学习笔记1:Portal介绍

创建Action类

 

 package com.liferay.portlet.strutsdemo;

import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletConfig;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.liferay.portal.struts.PortletAction;


public class StrutsAction extends PortletAction {
	

	public void processAction(ActionMapping mapping, ActionForm form,
			PortletConfig config, ActionRequest req, ActionResponse res)
			throws Exception {
		String name = req.getParameter("name");
		if (null == name || "".equals(name)) {
			setForward(req, "sturts_portlet.err");
		} else {
			setForward(req, "sturts_portlet.success");
		}
	}

public ActionForward render(ActionMapping mapping, ActionForm form,
			PortletConfig config, RenderRequest req, RenderResponse res)
			throws Exception {
		if (getForward(req) != null && !getForward(req).equals("")) {
			return mapping.findForward(getForward(req));
		} else {
		return mapping.findForward("sturts_portlet.view");
	}
}
	
}

成功和错误页面不在写,可以根据自己的需要编写了

 

部署Portlet

打开Ant界面,Eclipse--》show views--》ant 添加build文件,找到Ext工程下面的build.xml文件,点击其中的

Direct-deploy。

完成之后,启动liferay-tomcat

 

在浏览中输入http://localhost:8080,登录,添加portlet


LifeRay Portal 6学习笔记5:Struts Portlet开发示例_第2张图片


LifeRay Portal 6学习笔记5:Struts Portlet开发示例_第3张图片

  • LifeRay Portal 6学习笔记5:Struts Portlet开发示例_第4张图片
  • 大小: 35.9 KB
  • LifeRay Portal 6学习笔记5:Struts Portlet开发示例_第5张图片
  • 大小: 10 KB
  • LifeRay Portal 6学习笔记5:Struts Portlet开发示例_第6张图片
  • 大小: 4.5 KB
  • 查看图片附件

你可能感兴趣的:(liferay,portal,portlet,struts)