2016-06-26 12 views
2

Ich habe gerade ein neues Maven-Projekt erstellt und einen Index-Controller hinzugefügt. Dann habe ich die Annotation von managedbean verwendet. Aber ich bekomme diese Nachricht The type ManagedBean is deprecated. Also habe ich nach Alternativen gesucht, aber ich konnte keine Lösungen finden. Alle Artikel verwendet @ManageBean. Also ich denke hier fehlt etwas.Der Typ ManagedBean ist veraltet

Meine pom.xml Datei

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>asf.asdflksdfklj</groupId> 
    <artifactId>Demo-App</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <name>Demo-App</name> 

    <dependencies> 
    <dependency> 
    <groupId>org.primefaces</groupId> 
    <artifactId>primefaces</artifactId> 
    <version>5.3</version> 
    </dependency> 
    <dependency> 
    <groupId>org.glassfish</groupId> 
    <artifactId>javax.faces</artifactId> 
    <version>2.3.0-m06</version> 
    </dependency> 
    <dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>javax.servlet-api</artifactId> 
    <version>4.0.0-b01</version> 
    </dependency> 
    </dependencies> 


    <build> 
    <plugins> 
    <plugin> 
    <groupId>org.eclipse.jetty</groupId> 
    <artifactId>jetty-maven-plugin</artifactId> 
    <version>9.4.0.M0</version> 
    </plugin> 
    </plugins> 
    </build> 


</project> 

und Indexcontroller

package asf.asdflksdfklj.Controller; 

import javax.faces.bean.ManagedBean; 


@ManagedBean 
public class IndexController { 

    public String showHello(){ 
     return "hello world"; 
    } 

} 

Ist es wirklich ManagedBean veraltet? Wenn ja, was sollte ich verwenden, damit dieser Code funktioniert?

+0

Diese Frage und Antwort könnte helfen: http://StackOverflow.com/q/23116555 – DB5

Antwort

3

Verwaltete Beans werden nicht weiter unterstützt und durch CDI-Beans ersetzt. Sie werden eventuell auf CDI upgraden müssen, damit Sie jetzt gleich starten können. Anstatt @ManagedBean, wenn du @Named benutzt und cdi-api-1.2.jar in deine Abhängigkeit legst, solltest du gut gehen.

import javax.inject.Named; 
import javax.enterprise.context.SessionScoped; 

@Named 
@SessionScoped 
public class IndexController implements Serializable { 

}