background image

 
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,这是