我写了一个自定义标签扩展UIComponentBase.

它在encodeBegin方法期间添加了多个子组件(UIComponent).

出于布局目的,我想将此子组件嵌套在h:panelGrid中,

但是标签在这里很麻烦.

ExampleTag.java

private ExampleTag extends UIComponentBase {

public void encodeBegin(FacesContext context) throws IOException {

getChildren().add(new HtmlLabel());

getChildren().add(new HtmlOutputText();

}

}

ExampleOutput.xhtml

生成的输出将在同一单元格中具有HtmlLabel和HtmlOutput组件,

但我想将它们排成一排,即两个单元格.

解决方法:

> h:panelGrid仅控制其自己子级的布局(而不是其子级的子级)

>每个< foo:exampleTag />创建一个复合控件(带有自己的子控件)

如果要将多个控件添加到h:panelGrid,请使用其他模板机制之一.

例如,此h:panelGrid使用ui:include:

xmlns:ui="http://java.sun.com/jsf/facelets"

xmlns:h="http://java.sun.com/jsf/html">

视图输出的子集:

Hello, World!
Hello, Nurse!

请注意上述实现-您不能在gridme.xhtml中的任何内容上显式设置ID,因为没有复合控件,因此也没有NamespaceContainer来确保子项具有唯一的名称空间.

组件不是标签.

public void encodeBegin(FacesContext context) throws IOException {

getChildren().add(new HtmlLabel());

getChildren().add(new HtmlOutputText();

}

这不是建立复合控件的可接受方法.如果执行此操作,则每次渲染时都会将新控件添加到组件中.您也不应在构造函数中执行此操作;那也会导致问题.没有好的方法可以在控件中添加子控件.应该通过视图(参见上文)或a tag从外部完成.

标签:uicomponents,jsf,facelets,java,tags

来源: https://codeday.me/bug/20191208/2091413.html

java多层panel,java-在h:panelGrid中具有多个子组件的自定义Facelets-Tag相关推荐

  1. vue中的一个子组件如何在父组件中调动另一个子组件中的方法

    第一:在子组件通过用绑定事件,来到达父元素(主要通过this.$emit来和父组件达成联系) /*******主要原理跟vuex差不多********/ 1.template部分代码 <temp ...

  2. java多层map嵌套取值_java中map的多层遍历

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Map> testmap=new HashMap>();Map user1=new HashMap();user1.put(1, (float ...

  3. java获取panel面板画笔_java - paintComponent()与paint()和JPanel vs Canvas在画笔类型的GUI中 - 堆栈内存溢出...

    我一直试图找到一个解决方法,但没有找到一个,特别是对于getGraphics()方法:如何将图形添加到面板? 你记得需要绘制的变量是什么,并在paintComponent()中使用它. 例如,您在其他 ...

  4. java编写代码时易出错_JAVA中易出错的小问题(一)

    ----------- android培训.java培训.java学习型技术博客.期待与您交流! ------------ 第一:奇数性 static boolean isodd(int i){ re ...

  5. java swing 控件拖动_java swing中实现拖拽功能示例

    java实现拖拽示例 Swing中实现拖拽功能,代码很简单,都有注释,自己看,运行效果如下图: package com; import java.awt.*;import java.awt.datat ...

  6. java通过poi读取excel中的日期类型数据或自定义类型日期

    java通过poi读取excel中的日期类型数据或自定义类型日期 Java 读取Excel表格日期类型数据的时候,读出来的是这样的  12-十月-2019,而Excel中输入的是 2019/10/12 ...

  7. Java EE 8中的MVC 1.0:使用Facelets入门

    MVC 1.0是一个基于动作的Model-View-Controller Web框架,它将成为将来的Java EE 8的一部分.它将与基于组件的JSF框架并存,并提供构建面向HTML + javasc ...

  8. java 柯里化_函数式编程(Java描述)——Java中的函数及其柯里化

    本文继续上一篇的内容 在Java中,函数可以表现为一个普通的方法.一个lambda表达式,又或者方法引用,甚至是匿名类.本文不会介绍匿名类这种形式. 方法 Java中的方法,Java使用方法这一概念来 ...

  9. java怎样将日期本土化_Java中的日期操作

    在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...

最新文章

  1. php mysql网站导航跳转_PHP微信公众平台跳转网页实现定位思路 By:阿尚
  2. Db4o结合Linq、Lambda表达式的简单示例
  3. C语言程序设计做题笔记之C语言基础知识(下)
  4. sqrtm--矩阵的平方根
  5. java自己写一个上下文_5.自己动手写Java Web框架-上下文
  6. 信息安全系统设计基础第一周学习总结
  7. mysql企业版多少钱_企业资质代办多少钱
  8. bootstrap 开源框架demo_5 个接私活必备的 Java 开源项目!
  9. ununtu16.04+python3+selenium+firefox环境搭建
  10. 计算机网络课设之TCP通讯录
  11. 关于电力系统标准规约的一些理解
  12. jquery.blockui示例
  13. Android RecyclerView使用ItemDecoration刻画时间线/时间轴/时光轴timeline
  14. 计算机主机发出滴滴声音怎么办,电脑蓝屏后主机滴滴的响应该怎么处理教程
  15. 苹果安卓APP下载地址合并为一个二维码
  16. Lambda表达式 Linq SQL Server 分组后获取第一条数据或最小(最大)数据
  17. 双相情感障碍会变精分吗?精神科医生为您答疑
  18. cfg80211 subsystem中的wiphy
  19. 【JAVA Core】精品面试题100道
  20. 〖Python 数据库开发实战 - MySQL篇㉘〗- MySQL 日期函数

热门文章

  1. 蓝盾小火墙补丁_网络安全知识小科普
  2. 近期code(11.16)
  3. Linux内核内存管理(3):kmemcheck介绍
  4. 中关村修电脑记实:那些年,修电脑犯下的错!
  5. niginx之虚拟主机和域名解析
  6. html的标签位置属性(学习笔记)
  7. 快速搭建dajango框架
  8. html5执行shell,利用nginx执行Shell 脚本
  9. SpingMVC Model 和ModelAndView,以及从参数的设置和接收
  10. 电子邮件一般不在用户计算机中,[单选] 在一个完整的Internet电子邮件地址中,决定用户信箱所在的计算机地址的是()。...