在不同的Portlet之间传参数,这想这是所有用Liferay的人都想实现的,但在以前的版本中确实做不到。现在的版本可以了,并且很简单
首先,打开portlet.xml文件,找到你想实现传值和接收值的portlet片段,在每个片段中加上下面这行代码:
<supported-public-render-parameter>参数名</supported-public-render-parameter>
然后,在最后面定义这个参数,写法是这样的:
<public-render-parameter>
<identifier>参数名</identifier>
<qname xmlns:x="http://www.liferay.com/public-render-parameters">x:参数名</qname>
</public-render-parameter>
整体是这样
<?
xml version="1.0"
?>
< portlet-app
version
="2.0"
xmlns
="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation
="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
>
<
portlet
>
<
portlet-name
>
chartcontroler
</
portlet-name
>
<
display-name
>
ChartControler
</
display-name
>
<
portlet-class
>
com.noah.action.ChartControlerPortlet
</
portlet-class
>
<
init-param
>
<
name
>
view-jsp
</
name
>
<
value
>
/html/chartcontroler/view.jsp
</
value
>
</
init-param
>
<
expiration-cache
>
0
</
expiration-cache
>
<
supports
>
<
mime-type
>
text/html
</
mime-type
>
<
portlet-mode
>
VIEW
</
portlet-mode
>
</
supports
>
<
resource-bundle
>
content/Language
</
resource-bundle
>
<
portlet-info
>
<
title
>
ChartControler
</
title
>
<
short-title
>
ChartControlerPortlet
</
short-title
>
<
keywords
></
keywords
>
</
portlet-info
>
<
portlet-preferences
>
<
preference
>
<
name
>
years
</
name
>
<
value
>
2010,2011,2012
</
value
>
</
preference
>
</
portlet-preferences
>
<
security-role-ref
>
<
role-name
>
administrator
</
role-name
>
</
security-role-ref
>
<
security-role-ref
>
<
role-name
>
guest
</
role-name
>
</
security-role-ref
>
<
security-role-ref
>
<
role-name
>
power-user
</
role-name
>
</
security-role-ref
>
<
security-role-ref
>
<
role-name
>
user
</
role-name
>
</
security-role-ref
>
<
supported-public-render-parameter
>
currentYear
</
supported-public-render-parameter
>
<
supported-public-render-parameter
>
report
</
supported-public-render-parameter
>
<
supported-public-render-parameter
>
partner
</
supported-public-render-parameter
>
<
supported-public-render-parameter
>
portfolio
</
supported-public-render-parameter
>
</
portlet
>
<
portlet
>
<
portlet-name
>
chart
</
portlet-name
>
<
display-name
>
Chart
</
display-name
>
<
portlet-class
>
com.noah.action.ChartPortlet
</
portlet-class
>
<
init-param
>
<
name
>
view-jsp
</
name
>
<
value
>
/html/chartportlet/view.jsp
</
value
>
</
init-param
>
<
expiration-cache
>
0
</
expiration-cache
>
<
supports
>
<
mime-type
>
text/html
</
mime-type
>
<
portlet-mode
>
VIEW
</
portlet-mode
>
</
supports
>
<
resource-bundle
>
content/Language
</
resource-bundle
>
<
portlet-info
>
<
title
>
Chart
</
title
>
<
short-title
>
ChartPortlet
</
short-title
>
<
keywords
></
keywords
>
</
portlet-info
>
<
security-role-ref
>
<
role-name
>
administrator
</
role-name
>
</
security-role-ref
>
<
security-role-ref
>
<
role-name
>
guest
</
role-name
>
</
security-role-ref
>
<
security-role-ref
>
<
role-name
>
power-user
</
role-name
>
</
security-role-ref
>
<
security-role-ref
>
<
role-name
>
user
</
role-name
>
</
security-role-ref
>
<
supported-public-render-parameter
>
currentYear
</
supported-public-render-parameter
>
<
supported-public-render-parameter
>
report
</
supported-public-render-parameter
>
<
supported-public-render-parameter
>
partner
</
supported-public-render-parameter
>
<
supported-public-render-parameter
>
portfolio
</
supported-public-render-parameter
>
</
portlet
>
<
public-render-parameter
>
<
identifier
>
currentYear
</
identifier
>
<
qname
xmlns:x
="http://www.liferay.com/public-render-parameters"
>
x:currentYear
</
qname
>
</
public-render-parameter
>
<
public-render-parameter
>
<
identifier
>
report
</
identifier
>
<
qname
xmlns:x
="http://www.liferay.com/public-render-parameters"
>
x:report
</
qname
>
</
public-render-parameter
>
<
public-render-parameter
>
<
identifier
>
partner
</
identifier
>
<
qname
xmlns:x
="http://www.liferay.com/public-render-parameters"
>
x:partner
</
qname
>
</
public-render-parameter
>
<
public-render-parameter
>
<
identifier
>
portfolio
</
identifier
>
<
qname
xmlns:x
="http://www.liferay.com/public-render-parameters"
>
x:portfolio
</
qname
>
</
public-render-parameter
>
</ portlet-app >
< portlet-app
>
</ portlet-app >
对参数进行赋值的话,就是在Action中用下面这句话:
actionResponse.setRenderParameter("参数名", 参数值);
获取的话,就直接像取其它参数一下直接获取:
在Action中,String
变量 = ParamUtil.getString(request, "参数名", "默认值");
在JSP中,
<%=renderRequest.getParameter("参数名")%>
整体代码如下:
public
}