最新消息:本站持续更新中,请注意添加收藏夹。搜索关键词时,多换一个同义词。比如要搜索界面,可以尝试页面,画面,PER档等词汇。善于搜索,将大大提高你的查找效率。

ecology开发之表单布局组件

底层代码 bron1984 4573浏览
组件 表单布局组件 备注
功能说明 基于java自定义标签库及xml模板解析的页面布局组件,其特点如下:
1、java后端解析,安全可靠;
2、支持多种页面布局样式,可以自行设计布局模板应用,灵活;
3、支持快速页面布局切换;
4、全面封装布局的总体样式控制;
5、同一页面支持多个布局组件的运行;
6、开放必要的属性,开发人员可以灵活设置元素的属性及样式;
7、常用于页面的总体布局设计
使用说明 1.引入如下标签库
<%@ taglib uri=”/WEB-INF/weaver.tld” prefix=”wea”%>
2、按如下格式编写代码:
<wea:layout type=”fourCol”>
<wea:group context=”常用条件” attributes=”{‘class’:\”e8_title e8_title_1\”}”>
<wea:item>标题</wea:item>
<wea:item>
<wea:required id=”aaspan” required=”true”>
<input type=”text” name=”aa” id=”aa”/>
</wea:required>
</wea:item>
<wea:item>编号</wea:item>
<wea:item><input type=”text” name=”bb” id=”bb” value=”b”/></wea:item>
<wea:item>创建日期</wea:item>
<wea:item attributes=”{\”colspan\”:\”3\”}”>
<select class=”inputStyle” name=”ccc” id=”ccc”>
<option value=””>全部</option>
<option value=”1″>今天</option>
<option value=”2″>本周</option>
<option value=”3″>本月</option>
</select>
</wea:item>
<wea:item>批准日期</wea:item>
<wea:item>
<select name=”ccc” id=”ccc”>
<option value=””>全部</option>
<option value=”1″>今天</option>
<option value=”2″>本周</option>
<option value=”3″>本月</option>
</select>
</wea:item>

</wea:group>
</wea:layout>

运行效果图
例子 例子:http://192.168.4.44:8080/web/query.jsp
<wea:layout>标签的属性定义
组件初始化参数 是否必须 类型 描述
type 否 string 用于指定应用的模板,默认值从weaver_layout.properties中读取
目前可选值有:twoCol,fourCol,2col,4col,table
table:普通列表
needImportDefaultJsAndCss 否 string 用于指定是否需要引入模板自行引入的js和css文件,默认为true
attributes 否 string json格式的字符串,用于定义布局组件的各种属性,如id等。
目前可用属性:
layoutTableId:定义模板table的ID;
layoutTableDisplay:定义模板table是否显示,取值同display属性。
formTableId:定义模板元素区table的ID;
formTableDisplay:定义模板元素区table是否显示,取值同display属性。
expandAllGroup:定义该layout下的所有的group是否默认展开,设置为true时默认展开,默认为false。group中的itemAreaDisplay属性设置为none的组依旧不会展开。
cols:当type=table时,定义该表格有多少列
cws:当type=table时,定义该表格每列的宽度
cw1:
cw2:
cw3:
cw4:以上4个参数用于定义表格列的宽度,当type!=table时生效。
注:如果该attributes中定义了相关属性,那么该key必须在模板中有相关定义才能应用
template 否 string 指定该布局使用的模板,必须是完整路径,如:/wui/theme/ecology8/templates/default/fourCol.xml
js 否 string 指定该模板要加载的js文件,多个js文件用,分隔,完整路径
css 否 string 指定该模板要加载的css文件,多个css文件用,分隔,完整路径
<wea:group>标签的属性定义
组件初始化参数 是否必须 类型 描述
context 是 string 控件组的显示名称
attributes 否 string json格式的字符串,用于定义布局组件的各种属性,如id等
目前可用属性:
groupDisplay:控制组TITLE信息是否显示,取值同display
groupSHBtnDisplay:控制组的【显示/隐藏】按钮是否显示,取值同display
itemAreaDisplay:控制该组的元素区域是否显示,取值同display属性。默认除第一个分组外,其他分组隐藏。
samePair:该参数常用于联动的情况,给td增加一个_samePair属性,_samePair值相同的项被认为是一对,那么隐藏时将该_samePair属性传入会全部隐藏这些项;
isColspan:最后一个item是否需要自动跨列,默认为自动跨列(true),取值为true和false。
注:如果该attributes中定义了相关属性,那么该key必须在模板中有相关定义才能应用
对组件提供了以下功能函数
方法1 返回类型 描述
showGroup 无 用于显示指定的group
方法参数 是否必须 类型 描述
samePair 是 string group上设置的samePair参数
方法2 返回类型 描述
hideGroup 无 用于隐藏指定的group
方法参数 是否必须 类型 描述
samePair 是 string group上设置的samePair参数
方法3 返回类型 描述
showItemArea 无 用于显示某个组下的元素区
方法参数 是否必须 类型 描述
selector 是 string 位于组结构内的某个元素的jQuery选择器描述,如”#basicset”
_document 否 document selector所在位置的document对象
<wea:item>标签的属性定义
组件初始化参数 是否必须 类型 描述
type 否 string 用于指定该item的类型:默认为null值,一般类型
1、toolbar:表示该项是操作行,将用于替换模板中<toolbar>的定义;
2、groupHead:表示该项为group操作栏,将用于替换<groupRightContext>中定义的操作项
3、thead:当type=table时,该属性用于指定该item是thead类型
attributes 否 string json格式的字符串,用于定义布局组件的各种属性,如id等
目前可用属性:
isTableList:控制该item的内容是否是一个列表或者是另一个布局组件,取值true或者false,默认为false。
colspan:控制该item占据几列,该参数增加了两个可选值,half和full,表示占一半列数和剩余全部列数,避免使用硬性跨列参数(该参数尽可能少用)。
id:给该td增加id和name属性
samePair:该参数常用于联动的情况,给td增加一个_samePair属性,_samePair值相同的项被认为是一对,那么隐藏时将该_samePair属性传入会全部隐藏这些项;
display:该参数用于控制该td的默认显示状况,取值为css中display的取值
customAttrs:该参数用于对td设置自定义属性,格式如下:’customAttrs’:’id=td_1 value=td_2′
注:如果该attributes中定义了相关属性,那么该key必须在模板中有相关定义才能应用
对组件提供了以下功能函数
方法1 返回类型 描述
__defaultTemplNamespace__.showEle 无 用于显示指定的td
方法参数 是否必须 类型 描述
samePair 是 string td上设置的samePair参数
方法2 返回类型 描述
__defaultTemplNamespace__.hideEle 无 用于隐藏指定的td
方法参数 是否必须 类型 描述
samePair 是 string td上设置的samePair参数
方法参数 是否必须 类型 描述
needHideTr 否 boolean 是否需要隐藏tr,默认为true。
方法3 返回类型 描述
__defaultTemplNamespace__.showItemArea 无 用于显示指定的组元素区
方法参数 是否必须 类型 描述
selector 是 string 位于组结构内的某个元素的jQuery选择器描述,如”#basicset”
方法参数 是否必须 类型 描述
_document 否 document selector所在位置的document对象
方法4 返回类型 描述
__defaultTemplNamespace__.showGroup 无 用于显示指定的group元素区
方法参数 是否必须 类型 描述
samePair 是 string tr上设置的samePair参数
方法5 返回类型 描述
__defaultTemplNamespace__.hideGroup 无 用于隐藏指定的group元素区
方法参数 是否必须 类型 描述
samePair 是 string tr上设置的samePair参数
<wea:required>标签的属性定义
组件初始化参数 是否必须 类型 描述
id 是 string 用于指定存放必填标识的span的ID
required 否 boolean 用于指定该item项是否必填
value 否 string 该item项的值,用于判断必填标识是否需要显示
isOutValue 否 boolean 如果value不为空,是否在span中输出value值,默认为false
模板定义说明
1、模板是一个标准的xml文件
<?xml version=”1.0″ encoding=”UTF-8″?>
<!– 所有没有内容的标签请增加一个空格 –>
<start>
<table class=”LayoutTable” id=”#{layoutTableId}” style=”display:#{layoutTableDisplay}”>
<colgroup>
<col width=”15%”></col>
<col width=”35%”></col>
<col width=”15%”></col>
<col width=”35%”></col>
</colgroup>
<tbody>
<!– 分组循环 –>
<groups>
<!– 分组title信息 –>
<group>
<tr class=”intervalTR”  style=”display:#{groupDisplay}”>
<td class=”interval”>
<span class=”#{class}”> </span>
<span>#{context}</span>
</td>
<td class=”interval” colspan=”3″ style=”text-align:right;”>
<groupRightContext>
<span class=”toolbar”>
#{context}
</span>
</groupRightContext>
<span class=”hideBlockDiv” style=”display:expression(isFirstGroup?’none’:groupOperDisplay)”>
隐藏  <img src=”/wui/theme/ecology8/templates/default/images/2.png”> </img>
</span>
</td>
</tr>
<tr class=”Spacing” style=”height:1px;display:#{groupDisplay}”>
<td class=”Line” colspan=”4″></td>
</tr>
</group>
<!– 分组元素区域 –>
<itemArea>
<tr class=”items intervalTR”>
<td colspan=”4″>
<table class=”ViewForm”>
<!– 分组元素循环区 –>
<items>
<tr class=”expression(isTableList?’intervalTR’:”)”>
<!– 行元素定义区 –>
<item>
<everyItem>
<td  class=”expression(isTableList?’tableField’:’fieldName’)” colspan=”#{colspan}”>
#{context}
</td>
</everyItem>
<everyItem>
<td class=”field” colspan=”#{colspan}”>#{context}</td>
</everyItem>
<everyItem>
<td class=”fieldName” colspan=”#{colspan}”>
#{context}
</td>
</everyItem>
<everyItem>
<td class=”field” colspan=”#{colspan}”>#{context}</td>
</everyItem>
</item>
</tr>
<tr style=”height:1px!important;display:expression(isTableList?’none’:”);” class=”Spacing”>
<td class=”expression(isLastRow?’paddingLeft0′:’paddingLeft18′)” colspan=”4″>
<div class=”intervalDivClass”></div>
</td>
</tr>
</items>
</table>
</td>
</tr>
</itemArea>
</groups>
<toolbar>
<tr class=”intervalTR”>
<td class=”interval” colspan=”4″ style=”text-align:center;”>#{ context }</td>
</tr>
</toolbar>
</tbody>
</table>
<importJsCss>
<link rel=”stylesheet” href=”/wui/theme/ecology8/templates/default/css/default.css” type=”text/css”> </link>
<script type=”text/javascript” src=”/wui/theme/ecology8/templates/default/js/default.js”> </script>
<link rel=”stylesheet” type=”text/css” href=”/js/ecology8/selectbox/css/jquery.selectbox.css”/>
<script src=”/js/ecology8/selectbox/js/jquery.selectbox-0.2.js”> </script>
<link href=”/js/checkbox/jquery.tzCheckbox.css” type=”text/css” rel=”STYLESHEET” />
<script language=”javascript” src=”/js/checkbox/jquery.tzCheckbox.js”> </script>
<LINK href=”/wui/theme/ecology8/jquery/js/e8_zDialog_btn.css” type=”text/css” rel=”STYLESHEET” />
</importJsCss>
</start>
2、新建模板时红色标注的节点如<groups>请保持原样,引擎解析时需要根据这些节点来决定解析结构
3、引擎内置的变量(expression表达式)
变量名 功能
isFirstGroup 用于判断该group是否布局中的第一个group,用于决定是否显示  隐藏/显示  按钮,如果前端强行指定groupOperDisplay属性,则认为控制
isTableList 用于决定item是否是一个tableList或者是另一个布局组件,用于控制布局的样式效果
isLastRow 用于判断是否是该group的最后一行组件,用于控制线条的样式显示。

转载请注明:赫非域 » ecology开发之表单布局组件