0

私はJSFWebアプリケーションを作成しており、以前はメインのバッキングBeanをリクエストスコープで使用していました。後でそれをセッションスコープに変更しました。次に、新しいリクエストスコープのバッキングBeanを作成する必要があります。最初のリクエストスコープのBeanの形式に従いましたが、コンストラクターにまったく呼び出させられないようです。私はかなり長い間JSFを使用していますが、以前はリクエストスコープのクラスが正常に機能していたのに、なぜコンストラクターが呼び出されないのか理解できません。:-S

これが私のバッキングBeanクラスです:

package brian.canadaShipping;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

@ManagedBean(name= "cpstcRequestBean")
@ViewScoped
public class CpstcRequestBean implements Serializable {

private static final long serialVersionUID = -5066913533772933899L;

public CpstcRequestBean()
{
    super();
    System.out.println("Hello, RequestBean!");
}

}

これが私の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>home</managed-bean-name>
    <managed-bean-class>brian.canadaShipping.CpstcHomeBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    <managed-bean>
    <description>handles initialization of pseudo-permanent data</description>
    <managed-bean-name>cpstcApplicationBean</managed-bean-name>
    <managed-bean-class>brian.canadaShipping.CpstcApplicationBean</managed-bean-class>
    <managed-bean-scope>application</managed-bean-scope>
    </managed-bean>
    <managed-bean>
    <description>- intializes HomeBean values which shouldn't be session scoped</description>
    <managed-bean-name>cpstcRequestBean</managed-bean-name>
    <managed-bean-class>brian.canadaShipping.CpstcRequestBean</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>

</faces-config>

私はICEfaces3.01フレームワークで実行しています。これは、JSF2.2に基づいていると思います。以前にリクエストスコープのバッキングBeanを実行していましたが、この新しいクラスを機能させることができません。任意の提案をいただければ幸いです。前もって感謝します!

4

1 に答える 1

2

1つは、コンストラクターでsuper()を呼び出す必要がないこと、2つは、アノテーションがそのすべての構成を提供するため、faces-config.xmlにあるものを必要としないことです。それもあなたの問題を解決するかもしれません:)

また、リクエストBeanを適切に参照していますか?

于 2012-10-01T22:14:41.140 に答える