我有一个使用JSF 2.0 mojjarra的Web应用程序。我想将我的托管bean类放到一个名为this的包中。
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>
我的托管bean:
import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.SessionScoped;
@ManagedBean(name="helloWorld")
@SessionScoped
public class HelloWorld{
@ManagedProperty(value="Hello World")
private String a;
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
}
我的页面:
<h:head></h:head>
<h:body>
<p:outputLabel for="extended" />
<p:inputText id="extended" value="#{helloWorld.a}" />
</h:body>
</html>
该页面仅显示一个空文本字段。
答案 0 :(得分:1)
您不必指定将注释放在类名之上,就像这样 它会自己找到它们......
@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