jsf - ManagedBean 类型已弃用

标签 jsf jsf-2 deprecated managed-bean

我刚刚创建了一个新的 Maven 项目并添加了一个索引 Controller 。然后我使用了 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>  

和索引 Controller

package asf.asdflksdfklj.Controller;

import javax.faces.bean.ManagedBean;


@ManagedBean
public class IndexController {

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

}

ManagedBean 真的被弃用了吗?如果是这样,我应该使用什么来使这段代码正常工作?

最佳答案

托管 bean 正在被弃用并被 CDI bean 取代。您最终必须升级到 CDI,所以最好现在就开始。

如果您使用 @Named 并将 cdi-api-1.2.jar 放入依赖项中,而不是 @ManagedBean,则应该很高兴去:

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

@Named
@SessionScoped
public class IndexController implements Serializable {

}

关于jsf - ManagedBean 类型已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38040947/

相关文章:

api - 弃用的 k8s API

jsf - 从当前行数据表中获取 id 以链接 JSF Primefaces Java

java - 为什么 JSP(和 JSTL/EL)采用与 Servlet 或 JSF 不同的方式来执行资源注入(inject)?

javascript - 如何在页面加载事件上将焦点设置到文本框

java - PrimeFaces barChart 未显示

jsf - 忽略 JSF 操作方法的返回值

javascript - 如何使用 native JavaScript 在 HTML DOM 事件上调用 JSF 托管 bean?

jsf - session 结束时销毁 View 范围的bean

java - 使用 Xlint :deprecation with android

java - 为什么 JSR/RET 不推荐使用 Java 字节码?