RichFaces - ส่วนประกอบเอาต์พุต

ในบทที่แล้วเราได้เรียนรู้เกี่ยวกับช่องป้อนข้อมูลหรือแท็กต่างๆที่ช่วยให้ผู้ใช้ป้อนข้อมูลผ่านเบราว์เซอร์ ในบทนี้เราจะเรียนรู้เกี่ยวกับส่วนประกอบเอาต์พุตต่างๆที่ RichFaces มีให้

<rich: Panel>

ในตัวอย่างก่อนหน้านี้เราได้เจอแท็กแผงแล้ว <rich: panel> สร้างพื้นที่สี่เหลี่ยมภายในเว็บเพจซึ่งอาจมีข้อมูลใด ๆ คุณสามารถรวมพาเนลรูปภาพและส่วนประกอบอื่น ๆ ที่หลากหลายไว้ในแผงเดียว

ในตัวอย่างต่อไปนี้เราจะสร้างแผงที่กำหนดเองตามตัวเลือกและเราจะจัดเตรียมส่วนหัวให้กับแผงควบคุมของเราโดยใช้แอตทริบิวต์ "header" โปรดสร้างไฟล์ xhtml และตั้งชื่อว่า "richPanelExamlple.xhtml" วางรหัสต่อไปนี้ไว้ด้านใน

<?xml version = "1.0" encoding = "UTF-8"?>  
<!DOCTYPE html> 
<html xmlns = "http://www.w3.org/1999/xhtml"   
   xmlns:h = "http://java.sun.com/jsf/html"   
   xmlns:f = "http://java.sun.com/jsf/core"   
   xmlns:ui = "http://java.sun.com/jsf/facelets"   
   xmlns:a4j = "http://richfaces.org/a4j"   
   xmlns:rich = "http://richfaces.org/rich"> 
   
   <h:head> 
      <title>Panel Example</title> 
   </h:head> 
   
   <h:body> 
      <rich:panel header = "RichFace Tutorials " style = "font-size: 500px; 
         align-items:center; background-color: activecaption"> 
         
         RichFace Tutorials Presented by TutorialsPoint.com.      
      </rich:panel> 
   </h:body>
</html>

โค้ดด้านบนจะให้ผลลัพธ์ต่อไปนี้ในเบราว์เซอร์

<rich: simpleTogglePanel>

simpleTogglePanel ให้โอกาสแก่นักพัฒนาในการเปลี่ยนส่วนประกอบของแผงควบคุมในรูปแบบไดนามิก อย่างไรก็ตามใน RichFaces 4 แท็กนี้ถูกระงับ JBoss ได้แนะนำแท็กขั้นสูงเช่น <rich: togglePanel>, <rich: tab> และ <rich: tabPanel> ขอแนะนำให้ใช้แท็ก RichFaces เวอร์ชันอัปเดตสำหรับคุณสมบัติและฟังก์ชันเพิ่มเติม หากคุณยังคงใช้ RichFaces 3 คุณสามารถใช้แท็กต่อไปนี้

<ui:composition xmlns = "http://www.w3.org/1999/xhtml" 
   xmlns:ui = "http://java.sun.com/jsf/facelets" 
   xmlns:h = "http://java.sun.com/jsf/html" 
   xmlns:f = "http://java.sun.com/jsf/core" 
   xmlns:a4j = "http://richfaces.org/a4j" 
   xmlns:rich = "http://richfaces.org/rich"> 
   
   <rich:simpleTogglePanel switchType = "client" label = "SimpleToggle"> 
      The simple example of SimpleToggle tag 
   </rich:simpleTogglePanel>    
</ui:composition>

<rich: tabPanel>

แท็กนี้ช่วยให้นักพัฒนาสร้างแท็บต่างๆภายในแผงควบคุม เราใช้แท็กนี้ในบทสกินของเราซึ่งเราได้สร้างแท็กสองแท็กแยกกันภายในแผงควบคุมอื่น โค้ดต่อไปนี้จะอธิบายวิธีที่เราใช้ <rich: tabPanel>

<?xml version = '1.0' encoding = 'UTF-8' ?>    
<ui:composition xmlns = "http://www.w3.org/1999/xhtml"   
   xmlns:h = "http://java.sun.com/jsf/html"   
   xmlns:f = "http://java.sun.com/jsf/core"   
   xmlns:ui = "http://java.sun.com/jsf/facelets"   
   xmlns:a4j = "http://richfaces.org/a4j"   
   xmlns:rich = "http://richfaces.org/rich">   
   
   <f:view>   
      <h:head>   
         <title>Rich Faces Tab Example</title>   
      </h:head>   
      
      <h:body>   
         <h:form>   
            <rich:panel style = "width:60%"> 
               
               <rich:tabPanel switchType = "AJAX"> 
                  <rich:tab header = "Name"> 
                     Tutorials Point----This is Tab Number 1 
                  </rich:tab> 
                  
                  <rich:tab header = "Features"> 
                     Best Place to learn -------This is Tab Number 2 
                  </rich:tab> 
               </rich:tabPanel> 
            </rich:panel>  
            
         </h:form>   
      </h:body> 
      
   </f:view>   
</ui:composition>

ในตัวอย่างนี้เราได้สร้างแท็บสองแท็บที่มีส่วนหัวต่างกันเรียกว่า "ชื่อ" และ "คุณลักษณะ" แท็กทั้งสองนี้จะถูกสร้างขึ้นภายใน <rich: panel> รหัสด้านบนจะให้ผลลัพธ์ต่อไปนี้

<rich: panelBar>

เช่นเดียวกับ simpleToggleBar จะช่วยให้นักพัฒนาสามารถใช้การสลับแนวตั้งได้โดยขึ้นอยู่กับเหตุการณ์ JS บางอย่าง แท็กนี้ยังถูกระงับใน RichFaces 4 อย่างไรก็ตามคุณสามารถใช้งานได้ดังที่แสดงด้านล่างหากคุณใช้ RichFaces 3.0 .

<ui:composition xmlns = "http://www.w3.org/1999/xhtml" 
   xmlns:ui = "http://java.sun.com/jsf/facelets" 
   xmlns:h = "http://java.sun.com/jsf/html" 
   xmlns:f = "http://java.sun.com/jsf/core" 
   xmlns:a4j = "http://richfaces.org/a4j" 
   xmlns:rich = "http://richfaces.org/rich">  
   
   <rich:panelBar height = "400" width = "500"> 
      <rich:panelBarItem   label = "Toggle1”> 
         First vertical toggle 
      </rich:panelBarItem> 
      
      <rich:panelBarItem  label = ”Toggle2”> 
         Second Vertical Toggle 
      </rich:panelBarItem> 
   </rich:panelBar >
   
</ ui:composition >

ใน RichFaces 4 มีการใช้งานฟังก์ชันเดียวกันโดยใช้แท็ก <rich: PanelMenu>

<rich: tab>

เราคุ้นเคยกับแท็กนี้แล้ว ในตัวอย่างของ <rich: tabPanel> เราได้สร้างแท็บต่างๆด้วยแท็กนี้ ในตัวอย่างต่อไปนี้เราได้สร้างแท็กสองแท็ก

<?xml version = '1.0' encoding = 'UTF-8' ?>    
<ui:composition xmlns = "http://www.w3.org/1999/xhtml"   
   xmlns:h = "http://java.sun.com/jsf/html"   
   xmlns:f = "http://java.sun.com/jsf/core"   
   xmlns:ui = "http://java.sun.com/jsf/facelets"   
   xmlns:a4j = "http://richfaces.org/a4j"   
   xmlns:rich = "http://richfaces.org/rich">   
   
   <f:view>   
      <h:head>   
         <title>Rich Faces Tab Example</title>   
      </h:head>   
      
      <h:body>   
         <h:form>   
            
            <rich:panel style = "width:60%"> 
               <rich:tabPanel switchType = "AJAX"> 
                  <rich:tab header = "Name"> 
                     Tutorials Point----This is Tab Number 1 
                  </rich:tab> 
                  
                  <rich:tab header = "Features"> 
                     Best Place to learn -------This is Tab Number 2 
                  </rich:tab> 
               </rich:tabPanel> 
            </rich:panel> 
            
         </h:form>   
      </h:body> 
      
   </f:view>   
</ui:composition>

โค้ดด้านบนจะสร้างผลลัพธ์ต่อไปนี้ในเบราว์เซอร์

<rich: panelMenu>

เมนูแผงช่วยให้นักพัฒนาสร้างรายการแบบเลื่อนลงแนวตั้งสลับภายในพื้นที่แผง ตัวอย่างต่อไปนี้จะช่วยให้เราเข้าใจแท็กนี้ได้ดีขึ้น สร้างไฟล์“ richPanelMenu.xhtml” และวางโค้ดต่อไปนี้ไว้ด้านใน

<?xml version = "1.0" encoding = "UTF-8"?>  
<!DOCTYPE html> 
<html xmlns = "http://www.w3.org/1999/xhtml"   
   xmlns:h = "http://java.sun.com/jsf/html"   
   xmlns:f = "http://java.sun.com/jsf/core"   
   xmlns:ui = "http://java.sun.com/jsf/facelets"   
   xmlns:a4j = "http://richfaces.org/a4j"   
   xmlns:rich = "http://richfaces.org/rich"> 
   
   <h:head> 
      <title>Panel Menu example</title> 
   </h:head> 
    
   <h:body> 
      <h:form id = "form"> 
         <h:panelGrid columns = "2" columnClasses = "cols,cols" width = "400"> 
            <rich:panelMenu style = "width:200px"> 
               
               <rich:panelMenuGroup label = "Group 1"> 
                  <rich:panelMenuItem label = "Database" action = "#{managedBean.subjectList}"> 
                     <f:param name = "current" value = "DB"/> 
                  </rich:panelMenuItem> 
                  
                  <rich:panelMenuItem label = "Oracle" action = "#{managedBean.subjectList}"> 
                     <f:param name = "current" value = "Oracle"/>  
                  </rich:panelMenuItem> 
                  
                  <rich:panelMenuItem label = "JAVA" action = "#{managedBean.subjectList}"> 
                     <f:param name = "current" value = "JAVA"/> 
                  </rich:panelMenuItem> 
               </rich:panelMenuGroup>
               
            </rich:panelMenu> 
         </h:panelGrid> 
      </h:form> 
   </h:body>
   
</html>

ดังที่เห็นในตัวอย่างข้างต้น panelMenu มาพร้อมกับแท็กอื่น ๆ ที่เกี่ยวข้องซึ่งช่วยในลักษณะที่แตกต่างกัน <panelGrid> ช่วยสร้างเส้นตารางภายในแผงควบคุม <panelMenuGroup> ช่วยจัดกลุ่มส่วนประกอบต่างๆที่เรากำลังจะเติม <panelMenuItem> คือรายการจริงที่จะแสดงไปยังเบราว์เซอร์ เมื่อใช้แอตทริบิวต์ "action" คุณสามารถเรียกใช้วิธีการดำเนินการต่างๆได้ขึ้นอยู่กับรายการที่เลือก แอตทริบิวต์ "label" ใช้เพื่อเติมค่าในส่วนหน้าและค่าที่แสดงผลจะถูกประมวลผลไปยังส่วนหลังเมื่อมีการเรียกคลาสการดำเนินการที่ระบุ

โค้ดด้านบนจะให้ผลลัพธ์ต่อไปนี้ในเบราว์เซอร์

<rich: TogglePanel>

แท็กนี้ใช้เพื่อแสดงผลเอาต์พุตที่แตกต่างกันซึ่งสามารถสลับหรือสลับได้โดยใช้วิธีการควบคุม Toggle วิธีการควบคุมการสลับนี้สามารถนำไปใช้หรือปรับแต่งได้ ในตัวอย่างต่อไปนี้เราจะใช้วิธีนี้

สร้างไฟล์ xhtml และตั้งชื่อเป็น“ richTogglePanel.xhtml” วางรหัสต่อไปนี้ไว้ด้านใน

<?xml version = "1.0" encoding = "UTF-8"?> 
<!DOCTYPE html> 
<html xmlns = "http://www.w3.org/1999/xhtml"   
   xmlns:h = "http://java.sun.com/jsf/html"   
   xmlns:f = "http://java.sun.com/jsf/core"   
   xmlns:ui = "http://java.sun.com/jsf/facelets"   
   xmlns:a4j = "http://richfaces.org/a4j"   
   xmlns:rich = "http://richfaces.org/rich"> 
   
   <h:head> 
      <title>Rich Toggle Panel Example</title> 
      <meta name = "viewport" content = "width = device-width, initial-scale = 1.0"/> 
   </h:head> 
   
   <h:body> 
      <h:form id = "form"> 
         <rich:togglePanel id = "panel1" activeItem = "item1" 
            itemChangeListener = "#{panelMenuBean.updateCurrent}"> 
            
            <rich:togglePanelItem name = "item1"> 
               <p>Content of the toggle 1</p> 
            </rich0:togglePanelItem> 
            
            <rich:togglePanelItem name = "item2"> 
                <p>Content of the toggle 2</p> 
            </rich:togglePanelItem> 
         </rich:togglePanel> 
            
         <a4j:outputPanel id = "tabs" layout = "block"> 
            <a4j:outputPanel layout = "block" styleClass = "tabDiv"> 
               <rich:toggleControl event = "click" targetPanel = "panel1" targetItem = "item1" /> 
               <a4j:commandButton value = "Toggle1"/> 
            </a4j:outputPanel> 
            
            <a4j:outputPanel layout = "block" styleClass = "tabDiv"> 
               <rich:toggleControl event = "click" targetPanel = "panel1" targetItem = "item2" /> 
               <a4j:commandButton value = "Toggle2"/> 
            </a4j:outputPanel> 
         </a4j:outputPanel>
         
      </h:form> 
   </h:body>
   
</html>

เรายังต้องสร้างคลาส bean เพื่อควบคุมการเปลี่ยนแปลงของเว็บไซต์ สร้างคลาส“ MenuBean.java” ดังต่อไปนี้

import javax.faces.bean.ManagedBean; 
import javax.faces.bean.ViewScoped; 
import org.richfaces.event.ItemChangeEvent; 
  
@ManagedBean 
@ViewScoped 

public class MenuBean { 
   private String current; 
   private boolean singleMode; 
  
   public boolean isSingleMode() { 
      return singleMode; 
   } 
   public void setSingleMode(boolean singleMode) { 
      this.singleMode = singleMode; 
   } 
   public String getCurrent() { 
      return this.current; 
   } 
   public void setCurrent(String current) { 
      this.current = current; 
   } 
   public void updateCurrent(ItemChangeEvent event) { 
      setCurrent(event.getNewItemName()); 
   }
}

โค้ดด้านบนจะให้ผลลัพธ์ต่อไปนี้ในเบราว์เซอร์

ในตัวอย่างข้างต้นเนื้อหาของหน้าเว็บจะเปลี่ยนไปตามปุ่มที่ผู้ใช้คลิก “ updateCurrent ()” เป็นวิธีการที่จัดการกับเนื้อหาเหตุการณ์ JS และตั้งค่าเนื้อหาเว็บไซต์ได้ทุกที่ทุกเวลา

<rich: toolBar>

แถบเครื่องมือใช้เพื่อสร้างแถบแนวนอนในแผงควบคุม ใช้เพื่อสร้างเมนูระดับบนสุดในหน้าเว็บ ในตัวอย่างต่อไปนี้เราจะเรียนรู้วิธีใช้แท็กนี้ในหน้าเว็บ สร้างไฟล์“ xhtml” และตั้งชื่อเป็น“ toolbar.xhml” วางรหัสต่อไปนี้ไว้

<?xml version = "1.0" encoding = "UTF-8"?> 
<!DOCTYPE html> 
<html xmlns = "http://www.w3.org/1999/xhtml"   
   xmlns:h = "http://java.sun.com/jsf/html"   
   xmlns:f = "http://java.sun.com/jsf/core"   
   xmlns:ui = "http://java.sun.com/jsf/facelets"   
   xmlns:a4j = "http://richfaces.org/a4j"   
   xmlns:rich = "http://richfaces.org/rich"> 
   
   <h:head> 
      <title>ToolBar Example</title> 
   </h:head> 
   
   <h:body> 
      <rich:panel> 
         <rich:toolbar height = "26" itemSeparator = "grid"> 
            <rich:toolbarGroup location = "left"> 
               <h:commandButton styleClass = "barsearchbutton" 
                  onclick = "return false;" value = "TAB" /> 
            </rich:toolbarGroup> 
            
            <rich:toolbarGroup location = "left"> 
               <h:commandButton styleClass = "barsearchbutton" 
                  onclick = "return false;" value = "TAB2" /> 
            </rich:toolbarGroup> 
            
            <rich:toolbarGroup location = "left"> 
               <h:commandButton styleClass = "barsearchbutton" 
                  onclick = "return false;" value = "TAB3" /> 
            </rich:toolbarGroup> 
         </rich:toolbar>
 
      </rich:panel> 
   </h:body>
   
</html>

โค้ดด้านบนจะให้ผลลัพธ์ต่อไปนี้ในเบราว์เซอร์

ในตัวอย่างข้างต้นแท็ก <toolbarGroup> ใช้เพื่อจัดกลุ่มเครื่องมือประเภทเดียวกันที่แตกต่างกัน สามารถสร้างกลุ่มจำนวนเท่าใดก็ได้ Location ให้ตำแหน่งของหน้าเว็บที่จะวางปุ่ม

<rich: ตัวคั่น>

ตามชื่อมันถูกใช้เพื่อแยกส่วนประกอบต่างๆบนหน้าเว็บ แท็กนี้ถูกระงับใน RichFaces 4 อย่างไรก็ตามหากคุณยังคงใช้ RichFaces 3 อยู่คุณสามารถใช้แท็กต่อไปนี้ได้

<rich:separator lineType = "beveled" height = "8" width = "75%" align = "center"/>
<p>Here is more examples of different line types:</p> 

<rich:separator height = "2" lineType = "dotted"/><br/> 
<rich:separator height = "2" lineType = "dashed"/><br/> 
<rich:separator height = "4" lineType = "double"/><br/>
<rich:separator height = "2" lineType = "solid"/><br/>

ในตัวอย่างข้างต้น LineType เป็นแอตทริบิวต์ที่ช่วยให้เรากำหนดประเภทของตัวคั่นที่เราต้องการใช้ ชื่อตัวคั่นทั้งหมดเหล่านี้ค่อนข้างจะอธิบายตัวเองในลักษณะ

<rich: Spacer>

Spacer เป็นแท็กที่อธิบายตัวเองซึ่งช่วยให้นักพัฒนามีช่องว่างระหว่างสององค์ประกอบ แท็กนี้ยังถูกระงับใน RichFaces4 พร้อมกับแท็กอื่น ๆ อย่างไรก็ตามคุณสามารถใช้โค้ดต่อไปนี้ได้หากคุณใช้ RichFaces 3

<rich:spacer width = "1" height = "5" title = "Here is a spacer..."/>

<rich: modalPanel>

Modal Panel ใช้เพื่อแสดงป๊อปอัปขณะเดินทาง ใน RichFaces 4 แท็กแผงโมดอลถูกเปลี่ยนเป็นpopupPanel. ในตัวอย่างต่อไปนี้เราจะดูวิธีการทำงาน สร้างไฟล์ xhtml และตั้งชื่อว่า "PopingUp.xhtml" ใส่รหัสต่อไปนี้ลงไป

<?xml version = "1.0" encoding = "UTF-8"?>  
<!DOCTYPE html> 
<html xmlns = "http://www.w3.org/1999/xhtml"   
   xmlns:h = "http://java.sun.com/jsf/html"   
   xmlns:f = "http://java.sun.com/jsf/core"   
   xmlns:ui = "http://java.sun.com/jsf/facelets"   
   xmlns:a4j = "http://richfaces.org/a4j"   
   xmlns:rich = "http://richfaces.org/rich"> 
   
   <h:head> 
      <title>ModalPanel and popupPanel</title> 
   </h:head> 
    
   <h:body> 
      <h:form> 
         <h:commandButton value = "Click ME">  
            <rich:componentControl target = "popup" operation = "show" /> 
         </h:commandButton> 
         
         <rich:popupPanel id = "popup" modal = "true" autosized = "false" 
            resizeable = "false"> 
            
            Hey !!!
            How are you? 
         </rich:popupPanel> 
      </h:form>   
   </h:body>
   
</html>

ตัวอย่างข้างต้นจะสร้างผลลัพธ์ต่อไปนี้เมื่อคลิกปุ่ม“ ClickMe”