JSF虚拟表单,对应熟练使用JSF的人来说,可能也是很陌生的(如果之前未接触过Netbeans IDE里面的可视化JSF),我之前用过可视化JSF,觉得虚拟表单很不错,于是想迁移到JSF,Richfaces里面来,查看了很多源码和机制,终于写出来了,并且得到了大量的使用,解决了一些复杂页面的需求。
大家都知道在JSF的form里面的文本域,若验证不通过,即使是不需要提交的域,也提交不了表单。
我这里简单的写了个文档:
虚拟表单简述
(1) 说明
JSF有一个真实表单,另外可以定义多个虚拟表单。
虚拟表单由参与者和提交者组成。
虚拟表单可以有多个参与者,也可以没有参与者。
注:我们这是设置不参与提交的域
(2) 使用
我们扩展了原有的<h:form>组件,增加了submitConfig属性,用来配置虚拟表单,多个虚拟表单用“,”逗号隔开,虚拟表单名称和域名ID列表用“:”隔开,多个域则用“|”隔开,我们这里的虚拟表单名称就是要提交按钮的ID,如下:
submitConfig="button1:input_aa|input_aa1|aaa|ccc, button2:input_bb|input_bb1|bbb"
这里配置了2个虚拟表单,分别是button1、button2
button1不参与提交的域ID有input_aa、input_aa1、aaa
button2不参与提交的域ID有input_bb、input_bb1、bbb
当button1提交时,则会忽略域ID为input_aa、input_aa1、aaa的验证以及解码
当button2提交时,则会忽略域ID为input_bb、input_bb1、bbb的验证以及解码
当域ID被忽略时,则它里面的所有子域(子组件)也会被忽略
(3) 例子
<h:form submitConfig="button1:input_aa|input_aa1|aaa,button2:input_bb|input_bb1|bbb">
<s:div id="aaa">
<h:inputText required="true" />
<h:inputText required="true" />
</s:div>
<s:div id="bbb">
<h:inputText required="true" />
<h:inputText required="true" />
</s:div>
<h:inputText id="input_aa" required="true" />
<h:inputText id="input_aa1" required="true" />
<h:inputText id="input_bb" required="true" />
<h:inputText id="input_bb1" required="true" />
<h:commandButton id="button1" value="submit1" />
<h:commandButton id="button2" value="submit2" />
</h:form>
大致是这样配置后即可,然后对jsf form组件标签进行扩展.
分享到:
相关推荐
2. **使用CSS、虚拟表单、转换器和验证器**:为了提高用户体验和代码质量,Creator 2提供了丰富的工具来帮助开发者使用CSS样式美化页面、创建虚拟表单以提高表单处理效率、自定义转换器和验证器来确保数据输入的正确...
- **Keyboard**:键盘组件,模拟虚拟键盘。 - **Layout**、**LayoutUnit**:布局组件,用于复杂页面布局设计。 - **LightBox**:轻量级弹窗组件,用于展示大图或其他内容。 这些组件覆盖了从基本的用户界面元素到...
- **2.3.2 CommandButton**: 提交表单或触发服务器端操作的命令按钮。 - **2.3.3 CommandLink**: 类似于按钮的行为,但以链接的形式呈现。 - **2.3.4 ContextMenu**: 右键点击时出现的上下文菜单。 - **2.3.5 HotKey...
在电子宠物应用中,JSF组件可以用来创建用户友好的界面,如领养宠物的表单、宠物状态的显示等。 7. **CDI(Contexts and Dependency Injection)**:这个是JAVAEE中的依赖注入框架,可以帮助开发者更方便地管理对象...
这包括Servlets、JSP(JavaServer Pages)、JSF(JavaServer Faces)等技术。Tomcat是Apache软件基金会的一个开源项目,它是一个轻量级应用服务器,特别适合部署Java Web应用程序。Tomcat服务器遵循Java EE...
7. **配置管理**:Tomcat的配置主要通过`server.xml`、`web.xml`等XML文件进行,包括服务器端口设置、虚拟主机定义、应用上下文路径、数据源配置等。 8. **热部署**:Tomcat支持热部署,即在服务器运行状态下,...
6. 数据绑定和验证:例如使用JavaServer Faces (JSF) 或者自定义标签库(Tag Libraries)进行数据绑定和表单验证。 7. 响应式设计:确保网站在不同设备上都能良好显示,可能需要了解CSS框架如Bootstrap。 8. 实时...
48. **Keyboard**:虚拟键盘,用于触摸设备输入。 49. **Layout**:布局容器,用于管理页面布局。 50. **LayoutUnit**:布局单元,用于定义布局内的区域。 51. **LightBox**:灯箱组件,用于展示放大后的图像。 52. ...
- **Keyboard**:键盘组件,提供虚拟键盘功能。 - **Layout/LayoutUnit**:布局组件,用于构建复杂的页面布局。 - **LightBox**:灯箱效果,用于放大图像或其他媒体内容。 - **Log**:日志组件,记录系统或用户活动...
12. **系统引擎**:包括工作流引擎、搜索引擎、规则引擎、报表引擎、智能分析引擎和表单引擎,这些都是业务流程自动化和数据分析的关键组件。 13. **安全机制**:认证、授权和权限管理确保了服务的安全访问。 14. ...
- **Fieldset**:用于组织表单字段的容器组件。 - **FileDownload**:文件下载组件,允许用户下载文件。 - **FileUpload**:文件上传组件,支持多文件上传。 - **Focus**:聚焦组件,控制页面元素的焦点。 - **...
1. **Button**:标准按钮组件,用于触发事件或提交表单。 2. **CommandButton**:命令按钮,与JSF动作方法关联,执行特定业务逻辑。 3. **CommandLink**:命令链接,与命令按钮相似,但外观上更接近链接。 4. **...