gpt4 book ai didi

java - Liferay portlet(带有 JSF)- 在重定向期间将参数从一个 bean 传递到另一个 bean

转载 作者:行者123 更新时间:2023-12-01 12:01:30 25 4
gpt4 key购买 nike

我需要从一个 portlet 的托管 bean(我将其称为 beanA,带有 ViewScoped)传递一个参数 (packageId),我将在其中进行重定向:

    LiferayPortletURL url = PortletURLFactoryUtil.create(portletRequest,
PortalUtil.getPortletId(portletRequest), themeDisplay
.getLayout().getPlid(), PortletRequest.ACTION_PHASE);

url.setParameter("_facesViewIdRender", "/views/esbDeployerView.xhtml");
url.setParameter("packageId", doc.getId());
url.setWindowState(WindowState.NORMAL);
url.setPortletMode(PortletMode.VIEW);
FacesContext.getCurrentInstance().getExternalContext().redirect(url.toString());

到另一个(beanB with ViewScoped),由 EL 调用(其中有一个数据表并在重定向后在 esbDeployerView.xhtml 中调用 #{esbPackageDetail.services})。 beanB 在重定向后正确创建,但是当我尝试在 @PostConstruct 方法中设置断点时,参数值为 null。

    HttpServletRequest request = PortalUtil.getHttpServletRequest((PortletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest());
HttpServletRequest oriRequest = PortalUtil.getOriginalServletRequest(request);
String esbArchiveId = oriRequest.getParameter("packageId");

我也尝试过这个,但参数再次为空:

    LiferayFacesContext liferayFacesContext = LiferayFacesContext.getInstance();
String hallo = liferayFacesContext.getRequestQueryStringParameter("packageId");

编辑:

我也尝试过这个:

    boolean parameter = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().containsKey("packageId"); 
boolean parametervalue = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().containsKey("cee43b8b-3719-4463-b317-e6fde80707c5");

两个结果都是假的...

最佳答案

我终于明白了!问题出在第一步。有必要将 PortletRequest 设置为 PortletRequest.RENDER_PHASE,以在重定向期间保持参数处于 Activity 状态。然后我就可以这样读:

    HttpServletRequest request = PortalUtil.getHttpServletRequest((PortletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest());
String arumArchiveId = ParamUtil.getString(request, "packageId");

@Parkash Kumar 无论如何,感谢您的帮助。

关于java - Liferay portlet(带有 JSF)- 在重定向期间将参数从一个 bean 传递到另一个 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27959424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com