JSF虚拟表单

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个虚拟表单,分别是button1button2

button1不参与提交的域IDinput_aainput_aa1aaa

button2不参与提交的域IDinput_bbinput_bb1bbb

button1提交时,则会忽略域IDinput_aainput_aa1aaa的验证以及解码

button2提交时,则会忽略域IDinput_bbinput_bb1bbb的验证以及解码

当域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组件标签进行扩展.

你可能感兴趣的:(JSF虚拟表单)