Jsf init()方法调用每个请求

Jsf init()方法调用每个请求,jsf,servlets,jsf-2,liferay,Jsf,Servlets,Jsf 2,Liferay,我正在使用JSF2.0和Liferay 6.1 对任何Java类的任何类型的请求都会调用myinit()。即使在PrimeFaces组件调用其相关PrimeFaces Java方法的情况下。当我的portlet初始化时,应该只调用此方法一次 @ManagedBean @ViewScoped public class MyMangedBean { public void init() { System.out.println("Init method called");

我正在使用JSF2.0和Liferay 6.1

对任何Java类的任何类型的请求都会调用my
init()
。即使在PrimeFaces组件调用其相关PrimeFaces Java方法的情况下。当我的portlet初始化时,应该只调用此方法一次

@ManagedBean
@ViewScoped
public class MyMangedBean {

    public void init() {
        System.out.println("Init method called");
    }
}
请帮我找出可能的解决办法

编辑

我找到了这个原因背后的原因

在我的xhtml文件中

<bridge:inputFile id="MyFileUpload" size="50"
            binding="#{myBean.toBeUploadFile}" onchange="{fileSelected(this);}" style="position: absolute;height: 29px;width:107px;opacity:0;filter: alpha(opacity=0);z-index:100;"/>
我还在pom.xml中保留了对commons io(版本1.3)和commons filedownload(1.2.1)的依赖关系


我不知道我对这个组件缺少什么,或者这背后的真正原因是什么。

你应该考虑使用桥接器:带有最新版本的输入文件标签,而不是来自PotLtFrase.Org的旧过时标签。p> 有一种方法使用bridge:inputFile,您可以在Liferay tomcat门户实例上尝试它,然后遵循相同的方法

该演示已经过测试,效果很好,并且得到Liferay的支持

在Liferay Portal 6.1上,还有更多的演示已经过测试并运行良好。您可以下载它们的源代码,然后。并确保对齐门户、Mojarra和Liferay Faces桥的正确版本


希望这会有所帮助。

您是如何引用该方法的?当我的JSF portlet在初始化后不应调用该方法时,将调用该方法。但在我的例子中,初始化之后,对任何其他后端java方法的任何调用或请求都会调用此方法。给定的代码不足以理解您的具体问题,这似乎与liferay如何管理bean有关。是的,但我实际上不知道应该提供代码的哪一部分。因为我不能把我所有的代码都放进去。你应该在某个地方引用你的init()方法。在liferay配置或JSF视图中。
xmlns:bridge="http://portletfaces.org/bridge"