pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

如何在 JSF 2.0 (Sun Mojarra) 中獲取選項卡式窗格組件

How do I get a tabbed pane component in JSF 2.0 (Sun Mojarra)(如何在 JSF 2.0 (Sun Mojarra) 中獲取選項卡式窗格組件)
本文介紹了如何在 JSF 2.0 (Sun Mojarra) 中獲取選項卡式窗格組件的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我現在正在學習/使用 JSF 2.0 (Sun Mojarra),我希望在我的 web 應用中有一個選項卡式窗格(單個選項卡可以命名為 General、Detail1、Detail2...).

我如何實現這一目標?到目前為止,我還沒有找到任何文檔:(

解決方案

其他人已經暗示過:Mojarra 是一個基本 JSF 實現.它提供了最少的強制性組件集,以涵蓋大多數現有的 HTML 元素(表單、輸入字段和表格).由于 HTML 沒有在單個元素中提供選項卡式面板,因此基本的 JSF 實現也不會這樣做.

選項卡式面板基本上是一堆鏈接(或按鈕)和面板,它們可以切換為隱藏/可見.為了表示鏈接,您通常使用 HTML <a> 元素.為了表示面板,您通常使用 HTML <div> 元素.要切換顯示/隱藏,基本上有兩種方法:

  1. 打印每個面板以響應,但使用 CSS display: none 隱藏所有其他面板,并使用 JavaScript 通過將新面板設置為 display: block 和舊面板到 display: none.

  2. 或者,有條件地將請求的面板打印到響應中.可以通過鏈接(或按鈕)中的請求參數來確定請求了哪個面板.

這是方式 1 的 basic copy'n'paste'n'runnable 示例:

<!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"><h:頭><title>SO 問題 3491969</title><script src="http://code.jquery.com/jquery-latest.min.js"></script><腳本>$(文檔).ready(函數() {$('#tabs a').click(function() {$('#panels').children().hide();$($(this).attr('href')).show();});});</腳本><風格>#tabs li { 列表樣式類型:無;顯示:內聯;邊框:1px純黑色;}#panels { 寬度:600px;高度:400px;邊框:1px純黑色;}.hide { 顯示:無;}</風格></h:head><h:body><ul id="標簽"><li><a href="#panel1">panel1</a></li><li><a href="#panel2">panel2</a></li><li><a href="#panel3">panel3</a></li></ul><div id="面板"><div id="panel1">panel1 內容</div><div id="panel2" class="hide">panel2 內容</div><div id="panel3" class="hide">panel3 內容</div></div></h:身體></html>

您當然可以將 <a> 替換為 <h:outputLink><div> 替換為 <h:panelGroup layout="block"> 等等,但只要您不需要將它與支持 bean 和/或 JSF 組件樹綁定,那么純 HTML 就完美了也有效并且開銷更少.

您只需輸入 <ui:repeat> 即可根據某些列表動態"重復選項卡和面板.也不要忘記加入一個好的 CSS 鏡頭,讓它看起來很美味.這基本上是大部分工作的所在.

畢竟這基本上也是那些 3rd 方組件庫,如 PrimeFaces、RichFaces 和 IceFaces 正在做.它們都在一個組件中提供了所需的功能,該組件完成了所有重復和美觀的工作.例如 PrimeFaces 有一個 <p:tabView>,RichFaces 有一個 <rich:tabPanel>、IceFaces 和 <ice:panelTabSet> 等等.p>

I am learning/using JSF 2.0 (Sun Mojarra) now and I want to have a tabbed pane in my webapp (single tabs could named be General, Detail1,Detail2,...).

How do I achieve this? I haven't found any documetation for this so far :(

解決方案

Others have already hinted it: Mojarra is a basic JSF implementation. It offers the minimum set of mandatory components to cover the most of existing HTML elements (forms, input fields and tables). Since HTML does not offer a tabbed panel in a single element, the basic JSF implementation won't do that as well.

A tabbed panel is basically a bunch of links (or buttons) and panels which are to be toggled hidden/visible. To represent links, you usually use the HTML <a> element. To represent panels, you usually use the HTML <div> element. To toggle show/hide either there are basically 2 ways:

  1. Print every panel to response, but hide all other panels using CSS display: none and use JavaScript to toggle the visiblity by setting the new panel to display: block and the old panel to display: none.

  2. Or, print the requested panel to the response conditionally. Which panel has been requested can be be determined by request parameters in the links (or buttons).

Here's a basic copy'n'paste'n'runnable example of way 1:

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html">
    <h:head>
        <title>SO question 3491969</title>
        <script src="http://code.jquery.com/jquery-latest.min.js"></script>
        <script>
            $(document).ready(function() {
                $('#tabs a').click(function() {
                    $('#panels').children().hide();
                    $($(this).attr('href')).show();
                });
            });
        </script>
        <style>
            #tabs li { list-style-type: none; display: inline; border: 1px solid black; }
            #panels { width: 600px; height: 400px; border: 1px solid black; }
            .hide { display: none; }
        </style>
    </h:head>
    <h:body>
        <ul id="tabs">
            <li><a href="#panel1">panel1</a></li>
            <li><a href="#panel2">panel2</a></li>
            <li><a href="#panel3">panel3</a></li>
        </ul>
        <div id="panels">
            <div id="panel1">panel1 content</div>
            <div id="panel2" class="hide">panel2 content</div>
            <div id="panel3" class="hide">panel3 content</div>
        </div>
    </h:body>
</html>

You can of course replace <a> by <h:outputLink> and <div> by <h:panelGroup layout="block"> and so on, but as long as you don't need to bind it in the with the backing bean and/or JSF component tree, then just plain HTML is perfectly valid as well and has less overhead.

You just have to bring <ui:repeat> in to repeat the tabs and the panels "dynamically" based on some list. Also don't forget to throw in a good shot of CSS to make it all look like tasty. This is basically where the most of the work goes in.

This is after all basically also what those 3rd party component libraries like PrimeFaces, RichFaces and IceFaces are doing. They all provide the desired functionality in a single component which does all the repeating and eye-candiness job. PrimeFaces for example has a <p:tabView>, RichFaces a <rich:tabPanel>, IceFaces an <ice:panelTabSet> and so on.

這篇關于如何在 JSF 2.0 (Sun Mojarra) 中獲取選項卡式窗格組件的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

How to wrap text around components in a JTextPane?(如何在 JTextPane 中的組件周圍環繞文本?)
MyBatis, how to get the auto generated key of an insert? [MySql](MyBatis,如何獲取插入的自動生成密鑰?[MySql])
Inserting to Oracle Nested Table in Java(在 Java 中插入 Oracle 嵌套表)
Java: How to insert CLOB into oracle database(Java:如何將 CLOB 插入 oracle 數據庫)
Why does Spring-data-jdbc not save my Car object?(為什么 Spring-data-jdbc 不保存我的 Car 對象?)
Use threading to process file chunk by chunk(使用線程逐塊處理文件)
主站蜘蛛池模板: IP检测-检测您的IP质量| 全钢实验台,实验室工作台厂家-无锡市辰之航装饰材料有限公司 | 沧州友城管业有限公司-内外涂塑钢管-大口径螺旋钢管-涂塑螺旋管-保温钢管生产厂家 | 奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌 | 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 | 穿线管|波纹穿线管|包塑金属软管|蛇皮管?闵彬专注弱电工程? | 网优资讯-为循环资源、大宗商品、工业服务提供资讯与行情分析的数据服务平台 | 手板_手板模型制作_cnc手板加工厂-东莞天泓 | 西门子伺服电机维修,西门子电源模块维修,西门子驱动模块维修-上海渠利 | 土壤养分检测仪|土壤水分|土壤紧实度测定仪|土壤墒情监测系统-土壤仪器网 | 重庆轻质隔墙板-重庆安吉升科技有限公司 | 雷冲击高压发生器-水内冷直流高压发生器-串联谐振分压器-武汉特高压电力科技有限公司 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 光泽度计_测量显微镜_苏州压力仪_苏州扭力板手维修-苏州日升精密仪器有限公司 | 全自动烧卖机厂家_饺子机_烧麦机价格_小笼汤包机_宁波江北阜欣食品机械有限公司 | 带式过滤机厂家_价格_型号规格参数-江西核威环保科技有限公司 | 杭州成人高考_浙江省成人高考网上报名| 干粉砂浆设备-干粉砂浆生产线-干混-石膏-保温砂浆设备生产线-腻子粉设备厂家-国恒机械 | 碳纤维布-植筋胶-灌缝胶-固特嘉加固材料公司 | 河南空气能热水器-洛阳空气能采暖-洛阳太阳能热水工程-洛阳润达高科空气能商行 | 电镀电源整流器_高频电解电源_单脉双脉冲电源 - 东阳市旭东电子科技 | 深圳3D打印服务-3D打印加工-手板模型加工厂-悟空打印坊 | 北京公积金代办/租房发票/租房备案-北京金鼎源公积金提取服务中心 | 【法利莱住人集装箱厂家】—活动集装箱房,集装箱租赁_大品牌,更放心 | pbt头梳丝_牙刷丝_尼龙毛刷丝_PP塑料纤维合成毛丝定制厂_广州明旺 | 拉力测试机|材料拉伸试验机|电子拉力机价格|万能试验机厂家|苏州皖仪实验仪器有限公司 | 齿轮减速电机一体机_蜗轮蜗杆减速马达-德国BOSERL齿轮减速机带电机生产厂家 | 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 齿轮减速马达一体式_蜗轮蜗杆减速机配电机-德国BOSERL齿轮减速电动机生产厂家 | 小型铜米机-干式铜米机-杂线全自动铜米机-河南鑫世昌机械制造有限公司 | 熔体泵_熔体出料泵_高温熔体泵-郑州海科熔体泵有限公司 | 胃口福饺子加盟官网_新鲜现包饺子云吞加盟 - 【胃口福唯一官网】 | 集菌仪_智能集菌仪_全封闭集菌仪_无菌检查集菌仪厂家-那艾 | 岩棉板|岩棉复合板|聚氨酯夹芯板|岩棉夹芯板|彩钢夹芯板-江苏恒海钢结构 | 臭氧发生器_臭氧消毒机 - 【同林品牌 实力厂家】 | 闭端端子|弹簧螺式接线头|防水接线头|插线式接线头|端子台|电源线扣+护线套|印刷电路板型端子台|金笔电子代理商-上海拓胜电气有限公司 | 自动记录数据电子台秤,记忆储存重量电子桌称,设定时间记录电子秤-昆山巨天 | 浙江红酒库-冰雕库-气调库-茶叶库安装-医药疫苗冷库-食品物流恒温恒湿车间-杭州领顺实业有限公司 | 蜂窝块状沸石分子筛-吸附脱硫分子筛-萍乡市捷龙环保科技有限公司 | 企典软件一站式企业管理平台,可私有、本地化部署!在线CRM客户关系管理系统|移动办公OA管理系统|HR人事管理系统|人力 | 水厂污泥地磅|污泥处理地磅厂家|地磅无人值守称重系统升级改造|地磅自动称重系统维修-河南成辉电子科技有限公司 |