ManagedBean 类型已弃用
The type ManagedBean is deprecated
我刚刚创建了一个新的 Maven 项目并添加了一个索引控制器。然后我使用了 managedbean 注释。但是我收到这条消息 The type ManagedBean is deprecated
。所以我尝试了替代方案,但找不到任何解决方案。所有文章都使用@ManageBean
。所以我想我在这里遗漏了一些东西。
我的pom.xml文件
<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>
和索引控制器
package asf.asdflksdfklj.Controller;
import javax.faces.bean.ManagedBean;
@ManagedBean
public class IndexController {
public String showHello(){
return "hello world";
}
}
ManagedBean真的被弃用了吗?如果是这样,我应该使用什么来使此代码工作?
Managed beans
已被弃用 并被 替换为 CDI beans
。您最终将不得不升级到 CDI,所以最好现在就开始。
而不是 @ManagedBean
,如果你使用 @Named
并将 cdi-api-1.2.jar
放在你的依赖项中,你应该可以开始了:
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
@Named
@SessionScoped
public class IndexController implements Serializable {
}
我刚刚创建了一个新的 Maven 项目并添加了一个索引控制器。然后我使用了 managedbean 注释。但是我收到这条消息 The type ManagedBean is deprecated
。所以我尝试了替代方案,但找不到任何解决方案。所有文章都使用@ManageBean
。所以我想我在这里遗漏了一些东西。
我的pom.xml文件
<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>
和索引控制器
package asf.asdflksdfklj.Controller;
import javax.faces.bean.ManagedBean;
@ManagedBean
public class IndexController {
public String showHello(){
return "hello world";
}
}
ManagedBean真的被弃用了吗?如果是这样,我应该使用什么来使此代码工作?
Managed beans
已被弃用 并被 替换为 CDI beans
。您最终将不得不升级到 CDI,所以最好现在就开始。
而不是 @ManagedBean
,如果你使用 @Named
并将 cdi-api-1.2.jar
放在你的依赖项中,你应该可以开始了:
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
@Named
@SessionScoped
public class IndexController implements Serializable {
}