ofbiz中screen的<condition>元素
<condition>元素是<section>的一个子元素。如果该元素的条件计算是真,那么then部分将被执行,否则else将被执行。
如:
<condition>
<or>
<and>
<if-has-permission permission="PROJECTMGR_ADMIN"/>
<not><if-has-permission permission="PROJECTMGR_ROLE_ADMIN"/></not>
</and>
<and>
<if-has-permission permission="PROJECTMGR_ROLE_ADMIN"/>
<if-compare field="isMember" value="true" operator="equals"/>
</and>
<and>
<if-has-permission permission="PROJECTMGR_VIEW"/>
<not><if-has-permission permission="PROJECTMGR_ROLE_VIEW"/></not>
<if-compare field="parameters.mainAction" value="VIEW" operator="equals"/>
</and>
<and>
<if-has-permission permission="PROJECTMGR_ROLE_VIEW"/>
<if-compare field="isMember" value="true" operator="equals"/>
<if-compare field="parameters.mainAction" value="VIEW" operator="equals"/>
</and>
</or>
</condition>
<then>
<field-to-result field="hasPermission"/>
<return/>
</then>
<else>
<property-to-field resource="ProjectMgrUiLabels" property="ProjectMgrNoAccessToProject" field="failMessage"/>
<field-to-result field="failMessage"/>
<field-to-result field="hasNoPermission" result-name="hasPermission"/>
<return/>
</else>
condition内部可以放12种条件语句。分别是:
4个逻辑语句:
<and> <xor> <or> <not>
3个权限条件
<if-service-permission> <if-has-permission> <if-entity-permission>
5个比较条件
<if-validate-method> <if-compare> <if-compare-field> <ifregexp> <if-empty>