分析hello.java,在hello1項目中。下載連接:https://github.com/javaee/tutorial-examples/tree/master/web/jsf/hello1java
1 /** 2 * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 3 * 4 * You may not modify, use, reproduce, or distribute this software except in 5 * compliance with the terms of the License at: 6 * https://github.com/javaee/tutorial-examples/LICENSE.txt 7 */ 8 package javaeetutorial.hello1; 9 10 11 import javax.enterprise.context.RequestScoped; 12 import javax.inject.Named; 13 14 @Named 15 @RequestScoped 16 public class Hello { 17 18 private String name; 19 20 public Hello() { 21 } 22 23 public String getName() { 24 return name; 25 } 26 27 public void setName(String user_name) { 28 this.name = user_name; 29 } 30 }
Hello類叫作管理bean類,它爲facelets頁面表達式所使用的name屬性提供了getter和setter方法,默認該facelets頁面表達式引用的是Hello類的名字,不過第一個字母是小寫字母(例如:hello.name)。git
若是你使用的是默認的bean類的類名,你註解能夠用@Model來替代@Named和@RequestScoped。@Model註釋稱爲原型,是一個包含其餘註釋的註釋的術語。github
在 Hello.java類中,註解javax.inject.Named和javax.enterprise.context.RequestScoped使用請求scope來標識Hello類爲管理bean類。scope定義應用程序數據是如何保存和共享的。web
在JSF中最經常使用的scope以下:this
Request(@RequestScoped):請求scope在Web應用程序中的單個HTTP請求期間仍然存在。像hello1應用,該應用由單個請求和響應組成,bean使用請求scope。spa
Session (@SessionScoped):會話scope持續存在於Web應用程序中的多個HTTP請求中。當應用程序包含須要維護數據的多個請求和響應時,bean使用會話scope。 code
Application (@ApplicationScoped):應用程序scope在全部用戶與Web應用程序的交互中持久存在。blog