如何告诉jsf哪些包存储托管bean

如何告诉jsf哪些包存储托管bean,jsf,jsf-2,Jsf,Jsf 2,我有一个使用JSF2.0 Mojjara的web应用程序。我想把我的托管bean类放到一个名为这样的包中 package com.myapp.managedbean 我如何告诉jsf扫描这个包以查找带注释的托管bean 我的maven依赖项 dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.ser

我有一个使用JSF2.0 Mojjara的web应用程序。我想把我的托管bean类放到一个名为这样的包中

package com.myapp.managedbean
我如何告诉jsf扫描这个包以查找带注释的托管bean

我的maven依赖项

dependencies>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.0.1</version>
</dependency>
 <dependency>
  <groupId>com.sun.faces</groupId>
  <artifactId>jsf-api</artifactId>
  <version>2.0.2</version>
</dependency>

<dependency>
  <groupId>com.sun.faces</groupId>
  <artifactId>jsf-impl</artifactId>
  <version>2.0.2</version>
</dependency>

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>jstl</artifactId>
  <version>1.2</version>
</dependency>

<dependency>  
    <groupId>org.primefaces</groupId>  
    <artifactId>primefaces</artifactId>  
    <version>3.4</version>  
</dependency>

<dependency>  
    <groupId>org.apache.tomcat</groupId>  
    <artifactId>tomcat-servlet-api</artifactId>  
    <version>7.0.26</version>  
    <scope>provided</scope>  
  </dependency>  
}

和我的页面:

<h:head></h:head>

<h:body>

<p:outputLabel for="extended"  />  
            <p:inputText id="extended" value="#{helloWorld.a}" />

</h:body>

</html>


该页面只显示一个空文本字段。

您不必指定,只需将注释放在类名上方,如下所示 它会自己找到它们

@ManagedBean
@SessionScoped
public class MyBean {
而不是

@ManagedProperty(value="Hello World")
private String a;
照办

private String a = "Hello World";
这不是
ManagedProperty
的使用方式,用谷歌搜索一下吧

通常,
ManagedProperty
用于注入值/bean

下面是一个如何注入另一个bean的示例

@ManagedProperty(value = "#{someOtherBean }")
private SomeOtherBean someOtherBean ; // + getter and setter

真的,当时我错了。因此,由于其他配置,它无法工作。非常感谢。我将关注另一个问题。但是,它不起作用。我用的是素面。primefaces标签在页面上的效果非常好。但是,它不显示托管bean值。对这个问题有什么想法吗?你有没有包括JSFAPI/impl JAR?您是否使用正确的导入<代码>导入javax.faces.bean.ManagedBean导入javax.faces.bean.SessionScoped;`您是否在服务器/浏览器中看到任何错误?是。我使用这些注释。我使用jsf-api-2.0.2.jar和jsf-impl-2.0.2.jar。控制台中没有错误。我使用Tomcat7和Servlet3.0.1。我真的疯了。哦,真的很抱歉。是我的错。我使用了错误的托管bean名称。我解决了这个问题。非常感谢。
@ManagedProperty(value = "#{someOtherBean }")
private SomeOtherBean someOtherBean ; // + getter and setter