JSF serial

项目需要开始用到jsf,找到一个网站coreservlets,里面有很全的学习资料,跟着那个学学。

主要内容:学了jsf编程的基础,写了一个jsf的小程序。

jsf是java server face的简称,主要用来是设计UI的,就像一个框架一样使用。来看几个coreservlets里面提供的小程序来会用最基础的jsf。

步骤不分先后:

step1:导包 jsf已经集成在java ee6里了,如果不是javaee 6或者是在加ManagedBean时候有问题可以用一下。  jsf-api.jar  jsf-impl.jar  jstl-api-1.2jar jstl-imp-1.2.jar

step2:配置web.xml   jsf跳转所有的处理的servlet  后缀都是.jsf,方式都是forward,所以页面的url会是上一个地址

  
  
  
  
  1. <servlet> 
  2.     <servlet-name>Faces Servlet</servlet-name> 
  3.     <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
  4. </servlet> 
  5. <servlet-mapping> 
  6.     <servlet-name>Faces Servlet</servlet-name> 
  7.     <url-pattern>*.jsf</url-pattern> 
  8. </servlet-mapping> 

step3:写页面了 页面是以.xhtml为后缀名的,以collection-name页面分析写jsf要注意的地方,大体页面先出来,jsf相关的只能在managedBean写好后写

  
  
  
  
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
  2.   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  3. <html xmlns="http://www.w3.org/1999/xhtml" 
  4.       xmlns:h="http://java.sun.com/jsf/html"> 
  5. <h:head><title>Enter Name</title> 
  6. <link href="./css/styles.css"   
  7.       rel="stylesheet" type="text/css"/>   
  8. </h:head>
  9. //注意head,body,form,inputText,commandButton这些都有前缀h
  10. <h:body> 
  11. <div align="center"> 
  12. <table class="title"> 
  13.   <tr><th>Enter Name</th></tr> 
  14. </table> 
  15. <p/> 
  16. <fieldset> 
  17. <legend>Navigation with Input Values</legend> 
  18. <h:form> 
  19.   First name:   
  20. //这个nameController(managedBean的类名,首字母要小写).firstName(这个是类中firstName属性名)
  21.   <h:inputText value="#{nameController.firstName}"/><br/> 
  22.   Last name:   
  23.   <h:inputText value="#{nameController.lastName}"/><br/> 
  24.   <h:commandButton value="Register This Name" 
  25. //action的值是页面的名字 
  26.                    action="#{nameController.showName}"/> 
  27. </h:form> 
  28. </fieldset> 
  29. </div></h:body></html> 

step4:现在要写managedBean了,这里看看NameController

 

  
  
  
  
  1. package coreservlets;  
  2.  
  3. import javax.faces.bean.*;  
  4.  
    //这里就注释表明这是个managedbean
  1. @ManagedBean 
  2. public class NameController {  
  3.   private String firstName="", lastName="";  
  4.     
  5.   //属性必须有get,set方法,不然jsf认不到(曾经错过)  
  6.   public String getFirstName() {  
  7.     return(firstName);  
  8.   }  
  9.  
  10.   public void setFirstName(String firstName) {  
  11.     this.firstName = firstName;  
  12.   }  
  13.  
  14.   public String getLastName() {  
  15.     return(lastName);  
  16.   }  
  17.  
  18.   public void setLastName(String lastName) {  
  19.     this.lastName = lastName;  
  20.   }  
  21.  
  22.  
  23.   public String showName() {  
  24.     if (isMissing(firstName) || isMissing(lastName)) {  
  25.       return("missing-name");  
  26.     } else {  
  27.       return("show-name");  
  28.     }  
  29.   }  
  30.     
  31.   private boolean isMissing(String name) {  
  32.     return(name.trim().length() == 0);  
  33.   }  
  34. }  

step5:还有一点,我不知道为什么,web.xml里面没有直接配a.xhtml,而是用了一个index.jsp来配置,index.jsp只有这句<% response.sendRedirect("collection-name.jsf"); %>

这样应该就能运行了

我看了jsf basic programming这章,前面的没看,我想知道jsf与jsp相比的优缺点,实现原理,其实有图,我懒得看,先会了再说,慢慢涨信心。代码可以去coreservlets.com里面下载。我也懒得传了,早点休息-_-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文出自 “AhahaGe” 博客,谢绝转载!

你可能感兴趣的:(java,编程,server,JSF,face)