Java 在开始标记中指定plid和在Liferay中将其作为参数传递之间的区别

Java 在开始标记中指定plid和在Liferay中将其作为参数传递之间的区别,java,url,liferay,portlet,Java,Url,Liferay,Portlet,在创建portlet url时,在开始标记中指定plid有什么区别 并将其作为参数传递 当plid不存在时,我会收到不同的错误消息,因此我想知道区别是什么在开始标记中指定plid和在创建portlet URL时作为请求参数追加有什么区别 plid as tag属性:如果有布局(第页),则有两个确定性 对于在门户上找到的给定plid,它将创建特定于的URL 该页,否则plid将作为queryString参数追加 plid作为请求参数:在任何情况下(正确/不正确的plid), plid将作为

在创建portlet url时,在开始标记中指定plid有什么区别


并将其作为参数传递



当plid不存在时,我会收到不同的错误消息,因此我想知道区别是什么

在开始标记中指定plid和在创建portlet URL时作为请求参数追加有什么区别

plid as tag属性:如果有布局(第页),则有两个确定性 对于在门户上找到的给定plid,它将创建特定于的URL 该页,否则plid将作为queryString参数追加

plid作为请求参数:在任何情况下(正确/不正确的plid), plid将作为查询字符串参数附加到当前布局中 具有portlet的适当名称空间的URL,可以从 请求对象

当plid不存在时,我会收到不同的错误消息

是的,如果在您的门户中找不到任何布局/页面,您肯定会得到 给定plid

所以我想知道有什么不同

唯一的区别是在之前的案例1中搜索布局 在创建renderURL by标记时将其附加到URL。而在案例2中,plid只是传递了一个 请求将在portlet操作中访问的对象

Q:在创建portlet url时在开始标记中指定plid和将其作为参数传递有什么区别

主要区别在于:

  • 对于标签属性plid,它将检查plid并相应地更改该布局(页面)的URL
  • 对于请求参数plid,它只需像其他请求参数一样使用适当的名称空间将其附加到URL(作为查询字符串)。没什么特别的

现在举个例子 如果标记属性plid在您的
我的portlet中使用,如下所示:

<liferay-portlet:renderURL var="myurl" windowState="normal" plid="123456">
    <liferay-portlet:param name="struts.portlet.action" value='/view/myAction' />
</liferay-portlet:renderURL>

当你想在一个页面上构建一个URL时,x可以转到另一个页面y。假设您在页面:
Home
上,并且您想要转到
帮助
页面或
控制面板
,然后在
plid
属性中,您将通过
帮助
页面的
pild
控制面板
plid

因此,如果我传递控制面板的plid,那么最终URL将如下所示:

/group/control\u panel/manage?p\u p\u auth=1g0RGj4L&p\u p\u id=my\u WAR\u myportlet&p\u生命周期=0&p\u p\u状态=正常&p\u p\u模式=视图和my\u WAR\u myportlet\u struts.portlet。操作=%2Fview%2FmyAction


通过将
plid
作为请求参数传递,无法实现上述目标。


Q:当plid不存在时,我会收到不同的错误消息,所以我一直在想区别是什么

现在你知道区别是什么了,所以回答这个问题可能很容易。 如果标记属性plid不正确,它将创建如下URL:

/c/portal/layout?p_l_id=123456&p_p_auth

如果请求参数plid不正确,它将为当前页面创建URL并附加plid,如下所示:

/web/guest/home?p\u p\u id=my\u WAR\u myportlet&p\u p\u生命周期=0&p\u p\u状态=normal&p\u p\u模式=view&u my\u WAR\u myportlet\u struts.portlet。portlet.action=%2Fview%2FmyAction&\u my\u WAR\u myportlet\u plid=123456


希望这能有所帮助。

plid在调用当前portlet的操作时不是必须通过任何一种方式传递的。你发现了什么错误?我知道这不是强制性的,只是出于好奇而问。它说,当我故意将数字设置为错误数字时,不存在这样的布局。我只是想知道两者之间是否有区别ways@PrakashK:我已经更新了我的答案,谢谢你的详细描述。