【问题标题】:Managed bean not working after adding Spring configuration添加 Spring 配置后托管 bean 不工作
【发布时间】:2013-04-21 21:03:52
【问题描述】:

我真的不知道问题的原因是什么。我用hibenate和JSF创建了一个网站,后来决定也集成Spring框架,但最终遇到了一个问题。

我的托管 bean“loginbean”运行良好。它还可以识别 JSF 页面中的方法,但是当我运行应用程序时,我会看到“错误排除”消息。

我的豆子:

@ManagedBean(name="loginBean")
@SessionScoped
public class LoginBean {

    private String username;  

    private String password; 

    private int activeindex;

    public String Dirige(int a){
       setActiveindex(a);
       if (a == 0){
           return "/Menu.jsf"; 
       }else{
       if (a == 1) {
              return "/pagess/pagesFabricant/Fabricant.jsf";
           }else{
              if (a == 2) {
                 return "/pagess/pagesComposant/Composant.jsf";
              }else{
                  if(a == 3){
                      return "/pagess/pagesDeq/DEQ.jsf";
                  }

              }
           }
       }
       return null; 
   }
}

我在 faces-config.xml 中添加了SpringBeanFacesELResolver

<application>
    <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
</application> on faces.config.xml

我还在 web.xml 中包含了相关的监听器:

<context-param>
    <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/application.xml
        </param-value>
    </context-param>
<listener>
    <listener-class>
        org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>
<listener>
    <listener-class>
        org.springframework.web.context.request.RequestContextListener
    </listener-class>
</listener>

我的看法:

<p:tabMenu activeIndex="#{loginBean.activeindex}">  
    <p:menuitem value="Home"  icon="ui-icon-star" action="#{loginBean.Dirige(0)}" />
    <p:menuitem value="Fabricants"  icon="ui-icon-wrench"   action="#{loginBean.Dirige(1)}" /> 
    <p:menuitem value="Composants" icon="ui-icon-search"  action="#{loginBean.Dirige(2)}"/> 
    <p:menuitem value="Dossier d'equivalence"  icon="ui-icon-document" action="#{loginBean.Dirige(3)}"/> 
</p:tabMenu>

最后这是我遇到的错误:

Grave: javax.el.MethodNotFoundException: /templates/template.xhtml @42,95 action="#{loginBean.Dirige(1)}": Method not found: com.ardia.beans.LoginBean@1af73b2.Dirige(java.lang.Long)
javax.faces.el.MethodNotFoundException: javax.el.MethodNotFoundException: /templates/template.xhtml @42,95 action="#{loginBean.Dirige(1)}": Method not found: com.ardia.beans.LoginBean@1af73b2.Dirige(java.lang.Long)
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:92)
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
    at javax.faces.component.UICommand.broadcast(UICommand.java:315) 

【问题讨论】:

  • 只有一件事我不明白..当我通过另一种方法消除 dirige(int a){ setindex(a) } 时,它可以正常工作...括号上没有参数!!!!!!没有春天就是这样!!!
  • 你的方法以大写的 D 开头,我会先解决这个问题。
  • 您的异常清楚地表明您传递的参数是 Long 并且您的支持 bean 中的方法接受 int
  • 如果您使用 JBoss AS,请尝试从 web.xml 中删除 JBoss EL "org.jboss.el.E​​xpressionFactoryImpl"

标签: spring jsf-2


【解决方案1】:

问题是 我在另一个 tomcat 服务器中启动应用程序 .. 它运行良好,它接受带有参数的 bean 方法

感谢您的合作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-06
    • 1970-01-01
    • 2012-07-13
    • 1970-01-01
    • 2011-03-25
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多