Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSF2.2@Named不起作用_Java_Maven_Annotations_Jetty_Jsf 2.2 - Fatal编程技术网

Java JSF2.2@Named不起作用

Java JSF2.2@Named不起作用,java,maven,annotations,jetty,jsf-2.2,Java,Maven,Annotations,Jetty,Jsf 2.2,我有一个简单的maven jsf2.2项目,我使用maven jetty插件执行该项目 我有以下bean: package de.swp14i; import javax.inject.Named; //import javax.faces.bean.ManagedBean; @Named //@ManagedBean public class BeanOne { private String varFromBeanOne = "BeanOne"; public Stri

我有一个简单的maven jsf2.2项目,我使用maven jetty插件执行该项目

我有以下bean:

package de.swp14i;

import javax.inject.Named;
//import javax.faces.bean.ManagedBean;

@Named
//@ManagedBean
public class BeanOne {

    private String varFromBeanOne = "BeanOne";

    public String getVarFromBeanOne() {
        return this.varFromBeanOne;
    }

    public void init() {
        System.out.println();
    }

}
这是一种观点:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://xmlns.jcp.org/jsf/html" >

<h:head>
    <title>JSF 2.2 HTML5</title>
</h:head>
<h:body>

    <h1>Blub</h1>

    <h:outputText id="beanOne" value="#{beanOne.varFromBeanOne}"></h:outputText>

</h:body>
</html>

JSF2.2HTML5
布鲁布
如果我启动jetty并打开index.xhtml,则会呈现它,但不会显示varFromBeanOne值,并且我的bean的init函数不会在启动jetty的控制台中打印任何内容。所以我想它根本就不叫

如果我将@Named改为@ManagedBean,一切都会正常工作

这是我的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/maven-v4_0_0.xsd">
<!-- pom.xml specification version -->
<modelVersion>4.0.0</modelVersion>

<!-- project settings -->
<groupId>de.swp14i</groupId>
<artifactId>example</artifactId>
<version>0.1</version>
<name>example</name>
<packaging>war</packaging>

<properties>
    <encoding>UTF-8</encoding>
    <maven-compiler-plugin.version>3.1</maven-compiler-plugin.version>
    <maven-war-plugin.version>2.4</maven-war-plugin.version>        
    <jetty-maven-plugin.version>9.2.0.M1</jetty-maven-plugin.version>
</properties>

<!-- project module dependencies -->
<dependencies>
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>2.2.6</version>
    </dependency>
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>2.2.6</version>
    </dependency>
    <dependency>
        <groupId>javax.enterprise</groupId>
        <artifactId>cdi-api</artifactId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>7.0</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
    </dependency>

</dependencies>

<!-- project maven plugins -->
<build>
    <plugins>
        <plugin>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version>${jetty-maven-plugin.version}</version>
            <configuration>
                <scanIntervalSeconds>1</scanIntervalSeconds>
                <webApp>
                    <contextPath>/</contextPath>
                </webApp>
            </configuration>
        </plugin>
    </plugins>
</build>

4.0.0
de.swp14i
例子
0.1
例子
战争
UTF-8
3.1
2.4
9.2.0.M1
com.sun.faces
JSFAPI
2.2.6
com.sun.faces
jsf impl
2.2.6
javax.enterprise
CDIAPI
1.2
爪哇
JavaEEAPI
7
javax.servlet
javax.servlet-api
3.1.0
org.eclipse.jetty
jetty maven插件
${jetty maven plugin.version}
1.
/


我不知道为什么会这样。但是我需要JSF2.2用于CDI1.2。一个为什么它不工作的提示,或者一个没有@ManagedBean的maven-jsf2.2示例的链接都会很好。

您可以尝试清理项目并重新运行它。有时ide无法正确更新代码更改。 添加一个cdi作用域,如@ViewScoped(导入javax.faces.view.ViewScoped;),然后重试

更新: 我看到您正在使用jetty作为web容器。我搜索jetty cdi,发现jetty默认不支持cdi。焊接可用于为CDI添加支架:


谢谢你的回复,但这不会改变什么。我添加了@viewscope,重新导入了maven依赖项,重建了项目,但在我的index.xhtml中仍然没有任何值。