<h:inputText id="theValue" readonly="true"
value="#{readonlyBean.theValue}" onClick="setDay(this)"/>
以上的使用情况还是比较多的. 主要应用在: 让用户选择时间, 禁止输入. 在HTML中直接设置其readonly属性即可. 但在JSF中, 是不行的.
查看其源码:
然后首先找到HtmlInputText的renderer:HtmlTextRenderer,因为提交时首先调用组件的renderer的 docode方法来解析request的参数。然后发现该类是扩展了HtmlTextRendererBase,之后发现是调用了 HtmlRendererUtils.decodeUIInput()来解析的,在该方法的一开始,就发现如下语句:
if(isDisabledOrReadOnly(component))
return;
这里充分说明了在JSF中readonly和disable一样,都是不会将参数提交给后台的。
解决方案有三种:
1.编写 inputText.onKeydown 事件, 直接 return false; (不写readonly属性)
这种解决办法比较简单. 实际上还是会存在一些问题.
2.继续用readonly属性的同时, 再增加hidden来保存数据.
这种解决办法,全导致hidden过多.
3.继续用readonly属性的同时, 再加入: style="readonly:expression(this.readOnly=true)"
最终代码如下:
<h:inputText id="theValue" readonly="true"
value="#{readonlyBean.theValue}" onClick="setDay(this)"
style="readonly:expression(this.readOnly=true)" />
推荐使用第三种解决方案(已测, 目前尚未发现问题).
分享到:
相关推荐
总结,JSF日历控件为开发者提供了便捷的方式来处理日期输入,通过配置各种属性和使用相应的组件库,可以创建符合用户需求的日期选择界面。理解并熟练使用这些控件,能够显著提升JSF应用的用户体验和开发效率。
JSF(JavaServer Faces)是Java的一个...综上所述,JSF标签使用文档提供了一个关于如何在JSF应用中使用标准和自定义组件进行页面构建的指南,涵盖了组件的基本属性设置、布局方式以及与后端数据的交互等核心知识点。
JSF(JavaServer Faces)是一种Java Web开发框架,它提供了丰富的组件库,使得开发者能够创建用户界面更加便捷。本文档主要介绍了JSF中的一些常见标签及其用途,这对于JSF初学者或是有经验的开发者在日常开发中查找...
`<h:form>` 标签定义了一个表单,是JSF中所有交互式元素的容器。它确保了表单中的所有组件能够在提交时正确地与服务器端进行通信。 ##### 2. `<h:inputText>` 标签 `<h:inputText>` 标签用于创建文本输入框,常用于...
Seam - 语境相关的组件[满江红20071230]............................................................................................................................ 1 Java EE 框架...........................
- **通过属性设置来配置组件**:可以通过配置文件或者注解的方式为组件指定各种属性值。 - **条件安装**:允许根据一定的条件动态地决定是否安装某个组件,这对于定制化需求非常有用。 - **日志**:Seam 提供了强大...
1. **通过属性设置配置组件**:说明了如何使用属性来调整组件的默认行为。 2. **后续内容预告**:预览了接下来章节中可能涵盖的更高级的主题和技术。 以上就是从给定的文件中提炼出的主要知识点。通过对这些内容的...