• jsf--小项目--爱群小店


    新建项目:

    所需建文件如下:(参考最近一次jsf文档)

    1.新建四个以.xhml后缀结尾的文件名,以及一个xml的配置文件。

    2.在mybeans包中建立2个jsf受管bean:一个用于存放功能函数,一个用于将inputtext中的中文输入与读取(虽然现在读取仍然为乱码)

    代码内容:

    在end.xhtml文件中:

     1 <?xml version='1.0' encoding='UTF-8' ?>
     2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     3 <html xmlns="http://www.w3.org/1999/xhtml"
     4       xmlns:h="http://xmlns.jcp.org/jsf/html"
     5       xmlns:f="http://xmlns.jcp.org/jsf/core">
     6     
     7     <h:head>
     8         <title>Facelet Title</title>
     9     </h:head>
    10     
    11         <h:body>
    12         <h:form>
    13             <p>请留下您对本店商品服务的评价</p>
    14             <h:inputText   value="#{orderBean.fankui3}" required="true" styleClass="input" > 
    15                 <f:converter converterId="stringconverter"/>                                                                       <!--注:这里不是EL表达式-->
    16             </h:inputText>
    17             <h1><p>欢迎您的再次光临,祝您购物愉快!</p></h1>
    18         
    19         <h:commandButton value="再次购物" action="returnFromOrderFlow"/><!--结束,退出-->
    20         </h:form>
    21         </h:body>
    22 </html>
    end.xhtml

    在order-address.xhtml文件中:

     1 <?xml version='1.0' encoding='UTF-8' ?>
     2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     3 <html xmlns="http://www.w3.org/1999/xhtml"
     4       xmlns:h="http://xmlns.jcp.org/jsf/html"
     5       xmlns:f="http://xmlns.jcp.org/jsf/core">
     6     <h:head>
     7         <title>order-address</title>
     8     </h:head>
     9     <h:body>
    10          <h:form>
    11               
    12              <div class="text" style=" text-align:center;"><h1>欢迎来到爱群小店</h1></div> 
    13                  <hr  align="center" width="10%" /> 
    14                  <h2>请完善您的订单信息</h2>
    15                   <p>A壁纸 B地毯 C软包 D海绵</p>
    16                  <h3><h:outputText value="您所需要的商品 #{orderBean.itemName}"/></h3>
    17              <h3><h:outputText value="您所需要的数量#{orderBean.itemCount}"/></h3>
    18             <br/>
    19             
    20             <br/>
    21                 <hr  align="center" width="100%" /> 
    22                 <h3><h:outputText value ="请填写您的收货地址::"/></h3>
    23                 <h:inputText value="#{orderBean.address}"/>
    24                 <br/>
    25                 <p>备注</p>
    26                 <h:inputText id="account3" value="#{orderBean.fankui2}" required="true" styleClass="input" > 
    27                 <f:converter converterId="stringconverter"/>                                                                       <!--注:这里不是EL表达式-->
    28             </h:inputText>
    29             <br/>
    30             
    31             <!--将itemAddress做一对一的绑定-->
    32             <br/><br/>
    33              <h:commandButton value="下一步" action="order-confirmation"/><!--下一个页面-->
    34              
    35         </h:form>
    36     </h:body>
    37 </html>
    order-address.xhtml

    在order-confirmation.xhtml文件中:

     1 <?xml version='1.0' encoding='UTF-8' ?>
     2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     3 <html xmlns="http://www.w3.org/1999/xhtml"
     4       xmlns:h="http://xmlns.jcp.org/jsf/html"
     5       xmlns:f="http://xmlns.jcp.org/jsf/core">
     6     <h:head>
     7         <title>order-confirmation</title>
     8     </h:head>
     9     <h:body>
    10      <h:form>
    11             
    12             <div class="text" style=" text-align:center;"><h1>欢迎来到爱群小店</h1></div> 
    13             <h1>核对您的订单信息</h1>
    14            <p>A壁纸 B地毯 C软包 D海绵</p>
    15            <h2><h:outputText value="您所订购的商品:#{orderBean.itemName} "></h:outputText> </h2>
    16             <br/>
    17         <h2><h:outputText value="您所需要的数量:#{orderBean.itemCount}"/></h2>
    18             <br/>
    19             <br/>
    20             <br/>
    21             <h3><h:outputText value ="您的收货地址是::#{orderBean.address}"/></h3>
    22             <p>您希望何时到货</p>
    23             <h:inputText id="account2" value="#{orderBean.fankui1}" required="true" styleClass="input" > 
    24                 <f:converter converterId="stringconverter"/>                                                                       <!--注:这里不是EL表达式-->
    25             </h:inputText>
    26           
    27             <br/><br/>
    28         <h:commandButton value="提交订单" action="end"/><!--跳转结束页面-->
    29     </h:form>
    30     </h:body>
    31 </html>
    order-confirmation.xhtml

    在order-flow.xml文件中:

     1 <?xml version='1.0' encoding='UTF-8'?>
     2 <faces-config version="2.2"
     3               xmlns="http://xmlns.jcp.org/xml/ns/javaee"
     4               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     5               xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
     6 
     7     <flow-definition id="order">
     8         
     9         <flow-return id="returnFromOrderFlow"><!--决定最后标识符的位置-->
    10             <from-outcome>
    11                 #{orderBean.returnValue}<!--由此处的返回值决定跳转位置-->
    12             </from-outcome>
    13         </flow-return>
    14         <converter>
    15             <converter-id>stringconverter</converter-id>
    16             <converter-class>myBeans.StringConverter</converter-class>
    17         </converter>
    18     </flow-definition>
    19    
    20 </faces-config>
    order-flow.xml

    在ordere.xhtml文件中:

     1 <?xml version='1.0' encoding='UTF-8' ?>
     2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     3 <html xmlns="http://www.w3.org/1999/xhtml"
     4       xmlns:h="http://xmlns.jcp.org/jsf/html"
     5       xmlns:f="http://xmlns.jcp.org/jsf/core">
     6       
     7     
     8       
     9       <h:head>
    10           <title>Select item quantity</title>
    11       </h:head>
    12         
    13     
    14     <h:body>    
    15         <!---->
    16         <h:form><div class="text" style=" text-align:center;"><h1>欢迎来到爱群小店</h1></div> 
    17             
    18             <h2>填写您所需要的商品</h2>
    19             <p>A.柯尼塞格one1Koenigsegg B.LykanHypersport C.迈巴赫exelero D.阿斯顿马丁 one-77</p>
    20             <p><h:outputText value="商品名称:"/></p>
    21             <h:inputText   value="#{orderBean.itemName}" > 
    22            
    23             </h:inputText>
    24            
    25             <!--将itemname做一对一的绑定-->
    26             <br/> 
    27             <p> <h:outputText value ="订购数量:"/></p>
    28              <h:inputText value="#{orderBean.itemCount}"/><!--将itemCount做一对一的绑定-->
    29             <br/><br/>
    30             <h2>请填写您所需要的个性化配置</h2>
    31            <h:inputText id="account1" value="#{orderBean.fankui0}" required="true" styleClass="input" > 
    32                 <f:converter converterId="stringconverter"/>                                                                       <!--注:这里不是EL表达式-->
    33             </h:inputText>
    34             <br/>
    35               <h:commandButton value="下一步" action="order-address"/><!--输入地址-->
    36         </h:form>
    37       </h:body>
    38 </html>
    ordere.xhtml

    在OrderBean.java文件中:

      1 /*
      2  * To change this license header, choose License Headers in Project Properties.
      3  * To change this template file, choose Tools | Templates
      4  * and open the template in the editor.
      5  */
      6 package myBeans;
      7 
      8 import javax.inject.Named;
      9 import javax.enterprise.context.SessionScoped;
     10 import javax.inject.Named;
     11 import javax.faces.flow.FlowScoped;
     12 import java.io.Serializable;
     13 import javax.annotation.ManagedBean;
     14 
     15 /**
     16  *
     17  * @author Administrator
     18  */
     19 @Named
     20 @FlowScoped("order")
     21 
     22 public class OrderBean implements Serializable  {
     23 
     24     /**
     25      * Creates a new instance of OrderBean
     26      */
     27     private String itemCount;
     28     private String address;
     29     private String itemName;
     30     private String fankui0;
     31     private String fankui1;
     32     private String fankui2;
     33     private String fankui3;
     34     private String fankui4;
     35     public String getReturnValue(){
     36         return "/index";
     37         //“/”:相对的绝对路径
     38     }
     39     public OrderBean() {
     40         
     41     }
     42 
     43     public String getItemCount() {
     44         return itemCount;
     45     }
     46 
     47     public void setItemCount(String itemCount) {
     48         this.itemCount = itemCount;
     49     }
     50 
     51     public String getAddress() {
     52         return address;
     53     }
     54 
     55     public void setAddress(String address) {
     56         this.address = address;
     57     }
     58 
     59     public String getItemName() {
     60        
     61         return itemName;
     62     }
     63 
     64     public void setItemName(String itemName) {
     65         this.itemName = itemName;
     66     }
     67 
     68     public String getFankui0() {
     69         return fankui0;
     70     }
     71 
     72     public void setFankui0(String fankui0) {
     73         this.fankui0 = fankui0;
     74     }
     75 
     76     public String getFankui1() {
     77         return fankui1;
     78     }
     79 
     80     public void setFankui1(String fankui1) {
     81         this.fankui1 = fankui1;
     82     }
     83 
     84     public String getFankui2() {
     85         return fankui2;
     86     }
     87 
     88     public void setFankui2(String fankui2) {
     89         this.fankui2 = fankui2;
     90     }
     91 
     92     public String getFankui3() {
     93         return fankui3;
     94     }
     95 
     96     public void setFankui3(String fankui3) {
     97         this.fankui3 = fankui3;
     98     }
     99 
    100     public String getFankui4() {
    101         return fankui4;
    102     }
    103 
    104     public void setFankui4(String fankui4) {
    105         this.fankui4 = fankui4;
    106     }
    107 
    108    
    109    
    110 }
    OrderBean.java

    在StringConverter.java文件中:

     1 /*
     2  * To change this license header, choose License Headers in Project Properties.
     3  * To change this template file, choose Tools | Templates
     4  * and open the template in the editor.
     5  */
     6 package myBeans;
     7 
     8 /**
     9  *
    10  * @author Administrator
    11  */
    12 import java.io.UnsupportedEncodingException;
    13 import java.util.Map;
    14 import javax.faces.component.UIComponent;
    15 import javax.faces.component.UIInput;
    16 import javax.faces.convert.Converter;
    17 import javax.faces.context.FacesContext;
    18 import javax.faces.convert.ConverterException;
    19 
    20 public class StringConverter implements Converter {
    21  public Object getAsObject(FacesContext context, UIComponent component,
    22    String newValues) throws ConverterException {
    23   String newstr = "";
    24   if (newValues == null) {
    25    newValues = "";
    26   }
    27   byte[] byte1 = null;
    28   try {
    29    byte1 = newValues.getBytes("ISO-8859-1");
    30    newstr = new String(byte1, "GB2312");
    31    UIInput input=(UIInput)component;//
    32    input.setSubmittedValue(newstr);
    33   } 
    34   catch (UnsupportedEncodingException e) {
    35    e.printStackTrace();
    36   }
    37 
    38   return newstr;
    39 
    40  }
    41 
    42  public String getAsString(FacesContext context, UIComponent component,
    43    Object Values) throws ConverterException { 
    44   return (String) Values;
    45  }
    46 }
    StringConverter.java
  • 相关阅读:
    web安全性测试用例
    国内可用的网络时间服务器
    selenium需要的浏览器驱动程序下载
    杂齐杂八
    检查是否网络端口占用问题
    python入到到实战--第十章----文件
    python入到到实战--第九章
    python入到到实战--第八章
    python入到到实战--第七章
    python入到到实战--第六章
  • 原文地址:https://www.cnblogs.com/Catherinezhilin/p/9945171.html
Copyright © 2020-2023  润新知