HD框架踩坑之路---第1篇
页面标签详解
1. 循环遍历标签
循环遍历标签在HD系统内也称之为迭代标签, <common:iterater name=" ${list}" id="item"></common:iterater>
,iterater意为迭代器,相当于vue中v-for。
- ${list}:要遍历的数组,此处为hd系统要展示在页面的JSONArray数据。
- item:是数组中的每一项数据(JSONObject),页面渲染数据时,使用 ${item.key},来访问key所对应的value。
- 示例代码:
<common:iterate name="ryList" id="item">
<tr>
<td>
<common:write value="${item.xm}"/>
</td>
<td>
<codebook:translate name="wd.xb" value="${item.xbm}"/>
</td>
<td>
<common:write value="${item.csrq}" format="yyyy-MM-dd" miniDate="false"/>
</td>
<td>
<codebook:translate name="env.bm" value="${item.bmid}"/>
</td>
<td>
<codebook:translate name="env.gw" value="${item.gwid}"/>
</td>
<td>
<codebook:translate name="env.rylb" value="${item.rylbm}"/>
</td>
<td>
</common:iterate>
2. 文本输出标签
<common:write value=" ${value}">
,用于直接将HD系统存放的数据显示出来。
- 示例代码:
<common:write value="${item.sfybd==1?'是':'否'}" /><common> <!--可使用三元运算符-->
3. 日期格式处理标签
使用文本输出标签,添加format属性,就可以在页面中输出日期(format所规定的的格式)
- 直接输出日期格式
<common:write value="${item.csrq}" format="yyyy-MM-dd" miniDate="false" />
- 选择固定的日期输出格式
<input type='text' id="rxnd" name='rxnd' style="width:50px;" onClick="wd.edit.datePicker({dateFmt:'yyyy',minDate:'%y',maxDate:'%y'})" value="${rxnd}"/>
<!--
dateFmt 输出的日期格式 可yyyy,yyyy-mm-dd ,yyyy-mm-dd HH24:mm:ss
minDate 最小日期 maxDate 最大日期
记住这个格式,在datePicker中小时只能用大写,用小写是会报错的。
-->
4. 码本查询标签(查询码本回显对应的内容)
- 直接文本显示码本
<codebook:translate name="env.rylb" value="${item.rylbm}" /></codebook:translate>
<!--
name属性:码本对应的服务地址
value属性:查询码本时所对应的key
-->
- 下拉框选择码本
<select id="bjid" name="bjid" value="bjid">
<option value="">请选择</option>
<codebook:option name="env.bj" defaultValue="${bjid}"/>
</select>
<!--
在码本基础上新增option属性: 用于将码本中查询到的数据,渲染致下列选项里
defaultValue属性:默认选中的下拉项
-->
- 级联选择码本:
<input type="hidden" name="xyzybj" value="${empty bmid?zyid:bmid}">
<select style="width:120px;" id="bmid" name="bmid" value="${bmid}" defaultValue="${bmid}">
<option value="">请选择</option>
</select>
专业
<select style="width:120px;" id="zyid" name="zyid" value="${zyid}">
<option value="">请选择</option>
</select>
班级
<select style="width:120px;" id="bjid" name="bjid" value="${bjid}">
<option value="">请选择</option>
</select>
<cascadingSelect:write value="env.xy_zy_bj2" filter='{yhid:"${sessionScope["wd.yh"].yhId}"}'/>
5. 判断标签(根据判断条件决定要显示的内容)
<common:equal leftValue="${sfylk==2}" rightValue="true">
<script>
window.location.href="@service{dest:"env.sys.sys_alert",param:{msg:"您未分班"}}@"
</script>
</common:equal>
/*
leftValue:判断条件
${ not empty tablehtml} 判断后端传值是否为空
rightValue:显示当前标签
说明:此为关闭和刷新页面代码
<input type="button" name="button" οnclick="wd.display.refreshOpener();wd.display.closeDialog();" value="取消" class="bottom-button">
wd.display.refreshOpener(); // 刷新页面
wd.display.closeDialog(); // 关闭页面
*/
6. 权限控制标签
<validation:permission value="ry.ry_zj">
<input type="button" class="search-button" name="ry_zj" onclick='@service{dest:"ry.ry_zj",show:"wdDialog"}@' value="增加" />
</validation:permission>
<!--
被validation:permission包裹的元素,会根据vlue的值判断是否显示被包裹的元素
-->
7.校验标签
页面上需要的,写在form表单之内之外均可 :<validation:write name=“zy_zj” />
代码:validation.xml文件
身份证校验:
<defination name="sfzh" validator="env.idCard" scope="browser"
type="error">
<param field="sfzh"/>
<!-- <param field="csrq" />
<param field="xbm" />
<param field="sfzjlbm" /> -->
<param name="msgPrefix" value="" />
<!--身份证号-->
<param name="sfzhNotNull" value="true" />
<!--出生年月-->
<!--<param name="csrqNotNull" value="false" />-->
<!--性别-->
<param name="xbNotNull" value="true" />
</defination>
<validation name="gzjd_zj_bc" service="gzjd_zj_bc"><!-- 校验器名称人员_增加_保存 -->
<check validator="wd.notNull" scope="browser" type="error">
<!-- validator="wd.notNull"为校验器类别,这里是非空校验 scope="browser"这个是指前台校验 type="error"表示校验等级为错误等级,错误等级则不能提交表单-->
<param field="mc" /><!-- 校验器查找的表单name值 -->
<param name="msgPrefix" value="名称" /><!-- 消息前缀:“姓名不能为空”(非空校验) -->
<param name="maxLength" value="100" /><!-- 最大长度 -->
<param name="trim" value="true" /><!-- 去掉前后空格 -->
</check>
</validation>
8.其他
- 保存成功后跳转到第二页
<input type="submit" value="保存" name="pjjh_save" class="bottom-button" onclick="@service{name:'pjjh_save',dest:'pjjh_xg',tabNo:'2',submit:true,param:{pjjhid:'${pjjhid}'}}@" />
<!--
tabNo:跳转属性
-->
- 页面上的时间格式,不管是什么,只要使用了系统的标签,均可使用format格式,miniDate=“false” 说明当前年度的格式也正常显示,否则当前年度不显示。