0

Bean の注釈で奇妙な問題が発生しました。

index.xhtmlコンテンツ:

<h:outputText value="#{ejb.helloWorld}" />

EJB.javaコンテンツ:

package bean;

import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

    @ManagedBean(name="ejb")
    @SessionScoped
    public class Ejb implements Serializable
    {
        public String getHelloWorld()
        {
            return "Hello World";
        }
    }

上記の内容から、Bean メソッドを呼び出すことができるはずですが、できません。コンテンツを含むファイルでBean を管理する場合にのみ機能します。faces-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee" 
          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" 
          version="2.0">

          <managed-bean>
              <managed-bean-name>ejb</managed-bean-name>
              <managed-bean-class>bean.Ejb</managed-bean-class>
              <managed-bean-scope>session</managed-bean-scope>
          </managed-bean>
</faces-config>

質問:

  1. なぜ私はそのような状況に遭遇したのですか?
  2. この問題を解決するには?

私は使用しています:

  • JSF 2.0(lib にインポート)
  • JBoss Server 4.2
4

1 に答える 1

0

私の勝手な推測では、デフォルトで JBoss 4.2 にバンドルされている JSF 1.2 が使用されています (JBoss は JSF のバージョンを気にしないかもしれません)。結果として、注釈は無視され、faces-config.xml ファイルが使用されます。

ここで提案されている構成を使用してみてください(これは Google キャッシュ ページです)。

于 2012-05-10T18:34:27.623 に答える