不赞成使用ManagedBean类型



我刚刚创建了一个新的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>  

和IndexController

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,所以最好现在就开始。

如果您使用@Named并将cdi-api-1.2.jar放在依赖项中,而不是@ManagedBean,那么您应该可以很好地使用:

import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
@Named
@SessionScoped
public class IndexController implements Serializable {
}

相关内容

  • 没有找到相关文章

最新更新