<managed-bean> <managed-bean-name>helloWorld</managed-bean-name> <managed-bean-class>com.tutorialspoint.test.HelloWorld</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean> <managed-bean> <managed-bean-name>message</managed-bean-name> <managed-bean-class>com.tutorialspoint.test.Message</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean>
@ManagedBean(name = "helloWorld", eager = true) @RequestScoped public class HelloWorld { @ManagedProperty(value = "#{message}") private Message message; ... }
S.No | 范围和描述 |
1 |
@RequestScoped
Bean 与 HTTP 请求-响应存在的时间一样长。它根据 HTTP 请求创建,并在与 HTTP 请求关联的 HTTP 响应完成时销毁。
|
2 |
@NoneScoped
Bean 与单个 EL 评估一样长。它在 EL 评估时创建,并在 EL 评估后立即销毁。
|
3 |
@ViewScoped
只要用户在浏览器窗口/选项卡中与同一个 JSF 视图交互,Bean 就会存在。它根据 HTTP 请求创建,并在用户回发到不同视图时销毁。
|
4 |
@SessionScoped
Bean 的生命周期与 HTTP 会话的生命周期一样长。它在会话中第一个涉及此 bean 的 HTTP 请求时创建,并在 HTTP 会话无效时销毁。
|
5 |
@ApplicationScoped
Bean 的生命周期与 Web 应用程序的生命周期一样长。它在应用程序中涉及此 bean 的第一个 HTTP 请求时创建(或者当 Web 应用程序启动并且在@ManagedBean 中设置了eager=true 属性时)并在 Web 应用程序关闭时销毁。
td> |
6 |
@CustomScoped
Bean 的生命周期与自定义 Map 中 bean 条目的生命周期一样长,为该范围创建。
|
步骤 | 描述 |
1 | 在com.tutorialspoint.test 包下创建一个名为helloworld 的项目,如JSF-创建应用程序 章节所述。 |
2 | 修改HelloWorld.java,如下所述。保持其余文件不变。 |
3 | 在包 com.tutorialspoint.test 下创建 Message.java,如下所述。 |
4 | 编译并运行应用程序以确保业务逻辑按照要求工作。 |
5 | 最后,以war文件的形式构建应用,并部署到Apache Tomcat Webserver中。 |
6 | 使用适当的 URL 启动您的 Web 应用程序,如下面最后一步所述。 |
package com.tutorialspoint.test; import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.RequestScoped; @ManagedBean(name = "helloWorld", eager = true) @RequestScoped public class HelloWorld { @ManagedProperty(value = "#{message}") private Message messageBean; private String message; public HelloWorld() { System.out.println("HelloWorld started!"); } public String getMessage() { if(messageBean != null) { message = messageBean.getMessage(); } return message; } public void setMessageBean(Message message) { this.messageBean = message; } }
package com.tutorialspoint.test; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; @ManagedBean(name = "message", eager = true) @RequestScoped public class Message { private String message = "Hello World!"; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }
<!DOCTYPE html public "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns = "http://www.w3.org/1999/xhtml"> <head> <title>JSF Tutorial!</title> </head> <body> #{helloWorld.message} </body> </html>