1

私はエクリプスインディゴを使用しています。私はこのサイトのパターンに従っておりModelBean、豆を5つのクラスに分けています.BackingBeanControllerBean

私のプロジェクト構造は次のとおりです。

Java resources-> src->com.erp3.gui.user上記の豆で

ここに私のUserControllerがあります

package com.erp3.gui.user;

import java.io.Serializable;

import com.erp3.bo.user.UserBO;

public class UserController implements Serializable {

    private static final long serialVersionUID = 1L;
    private UserBO bo;
    private UserModel model;

    public UserController() {
        bo = new UserBO();
        model = new UserModel();
    }

    public void Login() {
        model.setVo(bo.executeLogin(model.getVo()));
        System.out.println("Foi");
    }

    public UserBO getBo() {
        return bo;
    }

    public void setBo(UserBO bo) {
        this.bo = bo;
    }

    public UserModel getModel() {
        return model;
    }

    public void setModel(UserModel model) {
        this.model = model;
    }   
}

私が実行するとindex.html

<h:inputText label="Usuário" id="username" value="#{userController.model.vo.login}"/>

そして、私にはこの例外があります:

javax.servlet.ServletException: Unable to create managed bean userController.  The following problems were found:
     - Bean or property class com.erp3.gui.user.UserController for managed bean userController cannot be found.
     - Bean or property class com.erp3.gui.user.UserController for managed bean userController cannot be found.
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:321)

Eclipse ではアノテーションが機能しないと言われたので、faces-config

<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="2.0" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xi="http://www.w3.org/2001/XInclude"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd">
 <managed-bean>
  <managed-bean-name>userController</managed-bean-name>
  <managed-bean-class>com.erp3.gui.user.UserController</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
 </managed-bean>
 <managed-bean>
  <managed-bean-name>userBacking</managed-bean-name>
  <managed-bean-class>com.erp3.gui.user.UserBacking</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
 </managed-bean>
 <managed-bean>
  <managed-bean-name>userModel</managed-bean-name>
  <managed-bean-class>com.erp3.gui.user.UserModel</managed-bean-class>
  <managed-bean-scope>session</managed-bean-scope>
 </managed-bean>
 <application>
  <message-bundle>com.erp3.gui.helpers.messages</message-bundle>
 </application>
</faces-config>

必要に応じて、他の Bean を追加できますが、非常に大きな問題になるため、追加しませんでした

編集

Bean に注釈を追加したところ、問題は次のように変わりました。

javax.el.PropertyNotFoundException: /views/user/login.xhtml @18,135 value="#{userController.model.vo.login}": Target Unreachable, identifier 'userController' resolved to null
    com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:97)
    com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:91)
    javax.faces.component.UIInput.getConvertedValue(UIInput.java:1023)
    javax.faces.component.UIInput.validate(UIInput.java:953)
    javax.faces.component.UIInput.executeValidate(UIInput.java:1204)
    javax.faces.component.UIInput.processValidators(UIInput.java:693)
    javax.faces.component.UIForm.processValidators(UIForm.java:240)
    javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)
    javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)
    javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1159)
    com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:72)
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
    com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)

しかし、Bean を追加するとfaces-config、エラーが返されます。

4

2 に答える 2

5

残念ながら、それは注意の途方もない欠如でした。

プロジェクトのビルド パスで、サーバー上の jar を参照していましたが、別のプログラマーがそれらの jar のアドレスを変更したため、参照が壊れていました。

奇妙なことに、Eclipse はこの問題について警告を送信していません。

問題が解決しました。

BalusC と Montolide の時間と注意に感謝します。

于 2012-05-18T15:03:32.330 に答える
2

Eclipse はアノテーション (またはその JBoss ツール?) で問題なく動作するため@ManagedBean、クラスで使用する必要があります。

あなたfaces-configは WEB-INF フォルダにありますか?

于 2012-05-18T13:41:35.580 に答える