我有一个关于这个事实背后的想法的问题,只有UIForm获得了属性prependId。为什么在NamingContainer界面中未指定属性?你现在可能会说这是因为后向可执行性,但是我宁愿打破可比性,并让实现该接口的用户也实现了prependId的方法。

从我的角度看,在UIForm组件中的prependId的主要问题是它会中断findComponent()

我会期望如果我使用prependId,那么NamingContainer行为会改变,不仅与渲染有关,而且还要在组件树中搜索组件时。

这里有一个简单的例子:

现在当我想要获取panelGroup组件时,我希望将字符串“group”传递给findComponent()方法,但是它不会找到任何东西,所以我必须使用“test:group”。

具体的问题是,当使用ajax与prependId =“false”时。 ajax标签期望在属性更新和进程中,值指示命名容器。这有点奇怪,当我使用prependId =“false”,我必须指定完整的id或路径,但可以。

那么这个代码将不会出现问题,但是它不会更新panelGroup,因为它找不到它。 PartialViewContext将只包含id“group”作为renderIds的元素。我不知道这是否是预期的,可能是,但我不知道代码。现在我们来到方法findComponent()找不到组件的点,因为传递为参数的表达式是“group”,方法将期望“test:group”来查找组件。

一个解决方案是编写自己的findComponent(),这是我选择处理这个问题的方式。在这种方法中,我处理一个NamingContainer的组件,并将一个属性prependId设置为false,就像一个普通的UIComponent一样。我必须为提供prependId属性的每个UIComponent都这样做,那是坏的。反射将有助于摆脱类型的静态定义,但它仍然不是一个非常干净的解决方案。

另一种方法是在NamingContainer接口中引入prependId属性,并将findComponent()的行为改为如上所述。

最后提出的解决方案将改变ajax标签的行为以传递整个id,但这只会解决ajax问题,而不是findComponent()实现背后的程序问题。

你觉得怎么样,为什么这样做呢?我不能第一个有这个问题,但是我找不到相关的话题?

html中prependid的作用,UIForm与prependId =“false”中断相关推荐

  1. VMware虚拟机文件夹中各文件作用详解

    VMware虚拟机文件夹中各文件作用详解 虚拟机的文件管理由VMware Workstation来执行. 一个虚拟机一般以一系列文件的形式储存在宿主机中, 这些文件一般在由workstation为虚拟 ...

  2. Science:亚硝酸盐氧化细菌在黑暗海洋中的主要作用

    文章目录 亚硝酸盐氧化细菌在黑暗海洋中的主要作用 写在前面 摘要 热心肠日报 背景 结果 图1 非全长16S rRNA基因序列的系统发育树 图2 通过募集宏基因组片段的方法确定亚硝酸盐氧化细菌单扩增基 ...

  3. 丰度决定了细菌在复杂群落中的功能作用

    本文转载自"微生态笔记",已获授权 标题:Abundance determines the functional role of bacterial phylotypes in c ...

  4. tensorflow2.0中valid_data的作用是在训练的过程对对比训练数据与测试数据的准确率 损失率,便于判断模型的训练效果:是过拟合还是欠拟合(过拟合)

    tensorflow2.0中valid_data的作用是在训练的过程对对比训练数据与测试数据的准确率,便于判断模型的训练效果:是过拟合还是欠拟合 过拟合:训练数据的准确率较高而测试数据的准确率较低 欠 ...

  5. C#中构造函数的作用

    C#中构造函数的作用 共同点: 都是实例化对象,初始化数据的 默认构造是说所有的类都从祖先object那继承了空参的构造方法,你不写与写空参构造都存在,而有参数的构造一般是自己写的,写就有不写就没有, ...

  6. python里dir是什么意思_python中dir什么作用

    python中dir的作用是:1.dir函数传入数据类型返回该数据类型的所有内置方法:2.dir函数传入模块名返回该模块的所有属性和方法. dir() 内置函数的作用 python 内置方法有很多,无 ...

  7. 浅析SEO优化中标签的作用?

    目前,已经有很多企业网站有专门的优化人员来进行SEO优化,在网站SEO优化的过程中会使用到很多标签来利于搜索引擎的读取,提升网站的排名和权重.就以大连网龙科技旗下产品云霸屏为例来讲,云霸屏作为一款全网 ...

  8. Hibernate 中lazy的作用

    Hibernate 中lazy的作用 上一篇 / 下一篇  2009-06-24 20:02:20 / 个人分类:java 查看( 506 ) / 评论( 2 ) / 评分( 5 / 0 ) < ...

  9. 【Android 逆向】Android 进程注入工具开发 ( 调试进程中寄存器的作用 | 通过 EIP 寄存器控制程序运行 | EIP 寄存器的存档与恢复 )

    文章目录 一.调试进程中寄存器的作用 二.通过 EIP 寄存器控制程序运行 三.EIP 寄存器的存档与恢复 一.调试进程中寄存器的作用 内存是一个线性结构 , 将动态库加载到内存中后 , 每个动态库文 ...

最新文章

  1. java监听变量的变化_[Java学习小记]使用PropertyChangeSupport来监听变量的变化
  2. 全明星基金季卫东: 重仓新经济冠军,投资“幸福生活“
  3. windows下安装Sublime+Miktex+Sumatrapdf配置LATEX环境
  4. 2008年度一个下岗程序员的真实经历
  5. 鬼题Ghost [manacher]
  6. c语言最新标准 2017,2017最新C语言介绍
  7. 常用数据库的驱动程序加载和Url下载地址
  8. 网易mumu模拟器老版本下载地址/历史版本/完整包
  9. 核心交换机有什么用?如何选择?
  10. 谷歌拼音 输入法设置
  11. Win7系统安装详细教程步骤
  12. centos 8.0 安装nginx
  13. 功放限幅保护_为什么要对放大器限幅?
  14. 项目经历怎么写_工程监理简历范文,【工作经历+项目经验+自我评价】怎么写...
  15. 读到心醉,很美的文字
  16. 客户端:Lync 2011 for Mac体验
  17. 安装mysql后服务里面没有_安装mysql后没有看到服务怎么办?
  18. 多用户商城系统哪家好?
  19. 发多少工资才能留住人才?
  20. 东北师范大学文艺学考研成功上岸经验分享

热门文章

  1. vue密码强度提示条
  2. cd返回上一 git_使用Git实现自动化部署项目
  3. python特性 property_python之中特性(attribute)与属性(property)有什么区别?
  4. matlab 如何读数据文件,详解如何在python中读写和存储matlab的数据文件(*.mat)
  5. chrome 63 android分类,Chrome 63 Beta新特性介绍
  6. c语言中打印ipv6地址,c-来自任何有效地址的ipv4和ipv6
  7. Numpy 基础 一
  8. [bzoj3930] [CQOI2015]选数
  9. 【Core Swagger】.NET Core中使用swagger
  10. jQuery Portamento 滑动定位