JSF在url中将参数传递给会话bean

JSF在url中将参数传递给会话bean,jsf,primefaces,Jsf,Primefaces,我是一个JSF初学者,我有一个简单的JSF问题,但我无法解决这里的逻辑。 我通过命令按钮打开新的mv.xhtml页面,如下所示: <p:commandButton value="#{grBean.protocolName(item)}" onclick="window.open('/SearchMap/faces/mv.xhtml?url=#{item}')"> </p:commandButton> 问题就在这里,因为mvBean是会话作用域,init方法只调用一次,所

我是一个JSF初学者,我有一个简单的JSF问题,但我无法解决这里的逻辑。 我通过命令按钮打开新的
mv.xhtml
页面,如下所示:

<p:commandButton value="#{grBean.protocolName(item)}"
onclick="window.open('/SearchMap/faces/mv.xhtml?url=#{item}')">
</p:commandButton>
问题就在这里,因为
mvBean
是会话作用域,init方法只调用一次,所以我无法自然地获得新的url参数

我想使用
mvBean
作为会话范围,因为我想将所有传递的URL保存在一个ArrayList中

那么,当我使用会话bean时,如何获取url参数呢?或者你有什么建议或解决办法吗


谢谢您的帮助。

您不必在
init()
中执行此操作,这里有一个快速解决方案。把这个放到你的
mv.xtml
页面上



并将您的逻辑从
init()
移动到
public void checkUrl()

非常感谢您的回答。我在寻找不同的解决方案。如果没有答复,我将接受你的答复。再次感谢你,普雷德拉格。
Map <String, String>tempMap= FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();       
        if(tempMap.get("url") !=null)    
            url=tempMap.get("url");
<p:remoteCommand name="onload" action="#{mvBean.checkUrl()}" autoRun="true" />