javax.faces.webapp.FacesServlet
1
Faces Servlet
*.faces
这里和 Struts 的 web.xml 配置何其相似,简直一模一样。
正如 Struts 的 struts-config.xml 一样,JSF 也有类似的 faces-config.xml 配置文件:
/index.jsp
login
/welcome.jsp
user
com.corejsf.UserBean
session
在 Struts-config.xml 中有 ActionForm Action 以及 Jsp 之间的流程关系,在 faces-
config.xml 中,也有这样的流程,我们具体解释一下 Navigation:
在 index.jsp 中有一个事件:
Action 的值必须匹配 form-outcome 值,上述 Navigation 配置表示:如果在 index.jsp 中有
一个 login 事件,那么事件触发后下一个页面将是 welcome.jsp
JSF 有一个独立的事件发生和页面导航的流程安排,这个思路比 struts 要非常清晰。
managed-bean 类似 Struts 的 ActionForm,正如可以在 struts-config.xml 中定义 ActionForm
的 scope 一样,这里也定义了 managed-bean 的 scope 为 session。
但是如果你只以为 JSF 的 managed-bean 就这点功能就错了,JSF 融入了新的 Ioc 模式/依
赖性注射等技术。
Ioc 模式
对于 Userbean 这样一个 managed-bean,其代码如下:
public
class
UserBean {
private
String name;
private
String password;
// PROPERTY: name
public
String getName() {
return
name; }
public
void setName(String newValue) { name = newValue; }
// PROPERTY: password
public
String getPassword() {
return
password; }
public
void setPassword(String newValue) { password = newValue; }
}
user
com.corejsf.UserBean
session
name
me
password
secret
faces-config.xml 这段配置其实是将"me"赋值给 name,将 secret 赋值给 password,这是