0

これらの単純な Java および xhtml コードを試しましたが、うまくいきません。

@ManagedBean(name = "connecter")
@RequestScoped
@SessionScoped
public class Connecter 
{


    int nombre;

    public Connecter()
    {

//ここで、Graph API Explorer から取得したアクセス トークンを入力します//

        FacebookClient facebookClient = new DefaultFacebookClient("");
        Connection<User> myFriends = facebookClient.fetchConnection("me/friends", User.class, Parameter.with("fields", "id, name,picture"));

        nombre = myFriends.getData().size();

    }

    public int getNombre()
    {

        return nombre;
    }

    public void setNombre(int nombre)
    {
        this.nombre = nombre;
    }

}

//これは、サーブレット マッピングを含む私の web.xml ファイルです。URLがFacesサーブレットURLに含まれているかどうかを確認するにはどうすればよいですか??

     <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>*.xhtml</url-pattern>
 </servlet-mapping>

  <context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>resources.application</param-value>
  </context-param>
  <context-param>
    <description>..</description>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
  </context-param>
   <context-param>
<param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
<param-value>true</param-value>
</context-param>
  <context-param>
    <description>
    ..</description>
    <param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
    <param-value>true</param-value>
  </context-param>
  <context-param>
    <description>
    ..'</description>
    <param-name>org.apache.myfaces.PRETTY_HTML</param-name>
    <param-value>true</param-value>
  </context-param>
  <context-param>
    <param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
    <param-value>false</param-value>
  </context-param>
  <context-param>
    <description>
    ..
</description>
    <param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
    <param-value>true</param-value>
  </context-param>
  <listener>
    <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
  </listener>
</web-app>
4

1 に答える 1

1

マネージド Bean は、同時に複数のスコープを持つことはできません。マネージド Bean から削除@RequestScopedまたは@SessionScoped注釈を付けます。

マネージド Bean ロジックを Bean コンストラクターに含めないでください。代わりに@PostConstructメソッドを使用してください。

public class Connecter {
    int nombre;
    public Connecter() {
    }
    @PostConstruct
    public void init() {
        //be sure to have this myFriend object declared and initialized here as well
        //also, manage the Exceptions here...
        //this is a plain basic example
        try {
            FacebookClient facebookClient = new DefaultFacebookClient("");
            Connection<User> myFriends = facebookClient.fetchConnection(
                "me/friends", User.class,
                 Parameter.with("fields", "id, name,picture"));
            //here I will ...
            nombre = myFriends.getData().size();
         } catch (Exception e) {
            e.printStackTrace();
            nombre = 0;
         }
    }
    //getters, setters, other methods...
}
于 2013-04-22T16:05:19.673 に答える