`
mf1389004071
  • 浏览: 74053 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
1ab096d2-14d4-3a83-b102-8097ee3bdc66
OFBiz进阶-OFC
浏览量:51908
社区版块
存档分类
最新评论

OFBiz进阶--OFBiz标签之[*Services.xml]-mililang介绍与分析(三)[判断<if/check-*>]

阅读更多

OFBiz进阶--OFBiz标签之
                 [*Services.xml]-mililang介绍与分析(三)




     Mililang标签:   
          <if/check-*>, 判断操作(Conditional (If) Operations) 

     标签规则: [simple-methods.xsd] 新版本还有 [simple-methods-v2.xsd]


    <if>
      <condition><if-compare operator="less" value="" field="" format="" type="String"></if-compare></condition>
      <then><return/></then>
      <else-if>
        <condition><if-compare operator="less" value="" field="" format="" type="String"></if-compare></condition>
        <then><return/></then>
      </else-if>
      <else><return/></else>
    </if>
      <!-- 上述标签组合类似 java:if..else..; if 符合条件 then, elseif 符合条件 then, else; -->
    
    <if-compare operator="less" value="" field="" format="" type="String"></if-compare>
      <!-- field变量的值与 value内容比较 -->
      <if-compare field="containsEmptyFields" operator="equals" value="true"/>
    
    <if-compare-field operator="less" field="" format="" to-field="" type="String"></if-compare-field>
      <!-- field变量的值与 to-field变量的值比较 -->
    <if-compare-field field="newEntity.amount" to-field="originalAmount" operator="not-equals" type="BigDecimal">
        <log level="warning" message="In createFinAccountTrans had to round the amount from [${originalAmount}] to [${newEntity.amount}]"></log>
    </if-compare-field>
    
    <if-empty field=""></if-empty>
      <!-- 如果 field变量空 -->
      <if-empty field="currentOrganizationPartyId"></if-empty>
    
    <if-has-permission permission="" action=""></if-has-permission>
      <!-- 如果当前登录用户有 permission指定模块的 action指定的权限 -->
      <if-has-permission permission="PAY_INFO" action="_CREATE"/>
    
    <if-instance-of class="" field=""></if-instance-of>
      <!-- 如果 field变量是 class指定的java类 的类型 -->
    <if-instance-of field="answers[&quot;${currentFieldName}&quot;]" class="java.nio.ByteBuffer">
        <make-value entity-name="Content" value-field="content"/>
    </if-instance-of>
    
    <if-not-empty field=""></if-not-empty>
      <!-- 如果 field变量不为空 -->
      <if-not-empty field="entityValue"></if-not-empty>
    
    <if-regexp field="" expr=""></if-regexp>
      <!-- 如果 field变量 能匹配 expr 正则表达式  -->
      <if-regexp field="parameters.partyTaxId" expr="${taxAuthority.taxIdFormatPattern}"/>
      <if-regexp expr="text.*" field="persistIn.drMimeTypeId" />
      
    
    <if-validate-method field="" method="" class="org.ofbiz.base.util.UtilValidate"></if-validate-method>
      <!-- 将 field变量传入 class指定的类中的 method指定的方法中校验  -->
      <if-validate-method field="${answerFieldName}" method="isDate"/>
    
    <check-id field="" error-list-name="error_list"><fail-message message=""/></check-id>
      <!-- 获取指定变量中的错误消息: field错误消息 -->
      <check-id field="parameters.fixedAssetId"/>
    
    <check-permission permission="NOTE" action="_${parameters.mainAction}" error-list-name="error_list">
      <!-- 检查权限: permission权限名; action具体权限值; -->
      <!-- 使用check-permission前提条件是当前service 环境中必须存在用户的登陆信息,即能获取到userLogin . 
      service 的调用场景有很多,controller.xml中,screen中,simple method 中,bsh文件中,ftl 文件中,java 文件中,groovy文件中等,
      其中前三项系统会自动将userLogin,locale 等信息自动封装到service context 中去,所以不需要我们手段传值,
      所以我们在其他环境中调用service的时候就需要对需要的隐性参数进行传值,比如fail-property中会用到locale, 
      check-permission会用到userLogin 等,调用举例如下: 
      dispatcher.runSync("TestServiceOnSimple",UtilMisc.toMap("param3","TestServiceOnJava","userLogin",userLogin,"locale",locale)); //java文件中 
       -->
    
      <accept-userlogin-party party-id-env-name="partyId"/>
        <!-- 当前登录用户若无权限, 但操作的数据与当前登录人相关, 则当前登录人也有操作权限, 即校验为true, 如允许用户看到自己的订单,或更新自己的联系人信息。 -->
      
      <alt-permission permission="" action=""/> 
        <!-- 给当前登录用户分配的备用权限, 若<check-permission>权限校验为false, 继续校验此标签配置权限, 若为true, 则权限校验通过; <alt-permission>可以多个 -->
        <!-- check-permission 和 alt-permission 两者的关系是or的关系,即只要两者有一个满足权限要求即可。 -->
      
      <fail-message message=""/>
<!--       <fail-property resource="" property=""/> -->
    </check-permission>
    <check-errors/>
    <!-- <check-permission permission="ACCOUNTING" action="_UPDATE"/> -->
    
    <assert error-list-name="error_list" title="">
      <!-- 断言:在方法或循环中放置断言, 当断言检查失败时,中断方法的执行,向错误消息列表添加错误消息; error-list-name错误信息列表变量名; title断言的消息 -->
      
      <and><if-regexp field="" expr=""></if-regexp></and>
      <not><if-regexp field="" expr=""></if-regexp></not>
      <or><if-regexp field="" expr=""></if-regexp></or>
      <xor><if-regexp field="" expr=""></if-regexp></xor>
        <!-- and/not/or/xor: 并且/非/或者/异或(用于判断数据是否符合条件, 上句是变量是否匹配指定的正则表达式); field变量名; expr正则表达式; -->
    </assert>
    
    <while>
      <condition><if-compare operator="less" value="" field=""></if-compare></condition>
      <then></then>
    </while>
      <!-- while循环: 符合condition中的条件, 则执行 then 中的过程 -->
    <while>
        <condition>
            <and>
                <not><if-empty field="currentOrganizationPartyId"></if-empty></not>
                <if-compare field="containsEmptyFields" operator="equals" value="true"/>
            </and>
        </condition>
        <then>
            <clear-field field="parentPartyRelationship"/>
            <clear-field field="entityKey"/>
            <clear-field field="entityValue"/>
        </then>
    </while>
    

 


==================================关于本文===================================
 
        作者: mf1389004071
        .....上海_香飘飘
        博客: http://ofbizer.iteye.com/
        邮箱: mf1389004071@163.com
        有此标记, 均为原创, 禁止盗用, 转载请注明来源
        技术无上限, 能力有上限, 欢迎参与交流讨论和提出建议
        本文永久地址: http://ofbizer.iteye.com/blog/2040203
 
 
   

0
0
分享到:
评论

相关推荐

    OFBiz Framework Quick Reference Book

    ### OFBiz Framework Quick Reference Book (版本 1.5.1) #### OFBiz 开发流程概述 本参考手册为 OFBiz 开发者提供了快速入门指南,适用于 Apache OFBiz 1.5.1 版本。OFBiz 是一个开源的企业级电子商务框架,支持...

    ofbiz综合文档

    本文档旨在详细介绍OFBIZ中的实体引擎配置,首先概述实体引擎的基本概念,然后深入探讨`entityengine.xml`文件中各个元素的具体用法。 #### 二、实体引擎概述 在OFBIZ中,实体引擎负责处理数据库操作,如查询、...

    ofbiz框架简单讲解

    &lt;event type="java" path="org.ofbiz.webapp.control.LoginWorker" invoke="login"/&gt; &lt;response name="success" type="view" value="main"/&gt; &lt;response name="error" type="view" value="login"/&gt; &lt;/request-map...

    ofbiz迷你语言.doc

    &lt;in-field field="estimatedStartMinute"&gt;&lt;constant&gt;:&lt;/constant&gt;&lt;/in-field&gt; &lt;in-field field="estimatedStartSecond"&gt; &lt;/in-field&gt; &lt;/make-in-string&gt; ``` 这段代码会将各个字段拼接成一个完整的日期时间字符...

    OFBiz教程-初学者开发指南

    【OFBiz教程-初学者开发指南】 OFBiz(Open For Business Project)是一个开源的企业级业务应用框架,旨在提供一套全面的电子商务解决方案。本教程专为初学者设计,旨在解决OFBiz入门过程中的常见问题,帮助开发者...

    Ofbiz 入门教程

    - **实体组文件 (`entitygroup.xml`)**:这个文件也由 Ofbiz 预先提供,通常与 `entitymodel_xxx.xml` 存放在同一个目录下。 下面是一个简单的 `entitymodel_study.xml` 文件示例: ```xml &lt;?xml version="1.0" ...

    ofbiz-entry-zh-cn.doc

    - **OFBiz**(Open For Business)是一款开源的企业级电子商务框架,主要用于构建和部署各种类型的业务应用,包括电子商务、供应链管理等。 - **目标读者**:初次接触OFBiz的技术人员或学生。 - **主要内容**:本...

    ofbiz重要的xml文件详解

    OFBiz 是一个强大的开源企业应用框架,它采用松耦合的架构设计,使得开发者能够更加灵活地构建和管理企业级应用程序。在这个框架中,配置文件起着至关重要的作用,它们帮助定义系统的行为和数据源。以下是一些OFBiz...

    OFBiz教程_-_初学者的开发指南

    ### OFBiz教程——初学者的开发指南 #### 一、简介 本教程旨在为初次接触OFBiz框架的开发者提供一个全面且易于理解的入门指南。OFBiz是一个开源的企业级电子商务框架,提供了完整的业务流程管理解决方案,包括订单...

    ofbiz 英文pdf

    - **关闭OFBiz**:介绍安全停止服务的方法。 - **OFBiz首次巡览**: - **访问OFBiz**:说明如何通过浏览器访问OFBiz应用。 - **探索Web应用程序“ecommerce”**:介绍该模块的功能和使用场景。 - **购物体验**...

    ofbiz一个完整例子

    &lt;service name="findCountries" engine="simple" location="component://myfirstdemo/script/org/ofbiz/demo/DemoServices.xml" invoke="findCountries"&gt; &lt;description&gt;Find Countries Service&lt;/description&gt; ...

    OFBIZ_FOP中文支持.pdf

    ### OFBiz_FOP中文支持详解 #### 一、引言 在使用Apache OFBiz进行企业级应用开发时,经常会遇到需要生成PDF文档的需求。而在这个过程中,如何在生成的PDF中正确显示中文字符是一个常见的问题。本文将详细介绍如何...

    ofbiz入门使用教程

    &lt;title&gt;Entity of an Open For Business Project Component&lt;/title&gt; &lt;description&gt;None&lt;/description&gt; &lt;copyright&gt;Copyright (c) 2002 The Open For Business Project - www.ofbiz.org&lt;/copyright&gt; &lt;author&gt;None...

    Apache OFBiz Development The Beginner's Tutorial

    - **分配内存给 OFBiz**:介绍如何为 OFBiz 分配足够的内存。 - **启动 OFBiz 并验证启动过程**:详细说明启动 OFBiz 的步骤及如何确认启动成功。 - **查看实时日志**:说明如何在 OFBiz 运行时查看实时的日志...

    OFBiz 主题修改文档

    - **OFBiz** 是一款开源的企业级电子商务框架,支持多种业务场景,包括但不限于电子商务、供应链管理等。 - **主题(Themes)** 在 OFBiz 中指的是用于定制化用户界面外观的设计模板集合,主要包括 CSS 样式、图片、...

    ofbiz入门文档

    autoReconnect=true" jdbc-username="root" .../&gt; &lt;/datasource&gt; ``` - **1.2.2 在Eclipse中启动Ofbiz** - 创建一个新的Ofbiz项目。 - 配置项目的运行环境。 - 启动Ofbiz服务器。 #### 二、框架结构 **2.1 ...

Global site tag (gtag.js) - Google Analytics