我设计了一个带有单个 portlet 的网页。 我想将参数传递给这个 portlet。 所以我以这种方式调用我的网页(在本地 liferay 实例上): http://localhost:8080/group//?param=1
为了避免误解,我不仅仅是试图在 portlet 的页面之间传递参数( Controller 到 View )。我知道如何做到这一点并且效果很好。 在本例中,我尝试使用托管它的 URL 中的参数来启动我的 portlet。
我从文档中了解到,Portlet 无法访问 URL 参数 我读到的建议解决方案是使用“Friendly-url-mapper”。
我没能让它工作。这是我到目前为止所做的:
我添加到liferay-portlet.xml:
<friendly-url-mapper-class>com.liferay.portal.kernel.portlet.DefaultFriendlyURLMapper</friendly-url-mapper-class>
<friendly-url-mapping>view</friendly-url-mapping>
<friendly-url-routes>friendly-url-routes-for-parameters.xml</friendly-url-routes>
View 设置的值是否正确?真的很怀疑。
我使用以下内容创建了Friendly-url-routes-for-parameters.xml:
<routes>
<route>
<pattern>/result?{match}</pattern>
<implicit-parameter name="param">{match}</implicit-parameter>
</route>
</routes>
/result 映射到我的 Controller 类中的 result.jsp 页面(这部分有效):
我希望: http://localhost:8080/group//?参数= 和/或 http://localhost:8080/group///-/ View /?param= 将使用 ?param= 参数重定向到我的 result.jsp。
我哪里理解不正确?
最佳答案
好吧,你可以,你不能,但基本上你不应该,但我没有人告诉你应该做什么和不应该做什么。
要获取此参数,您应该获取原始 servlet
HttpServletRequest httpReq = PortalUtil.getOriginalServletRequest(PortalUtil.getHttpServletRequest(req));
然后你可以使用getParameter
简单地获取你想要的参数
方法
String myParam = httpReq.getParameter("param");
希望这有帮助
关于html - 将参数传递给 liferay portlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32973708/