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["${currentFieldName}"]" 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
相关推荐
### OFBiz Framework Quick Reference Book (版本 1.5.1) #### OFBiz 开发流程概述 本参考手册为 OFBiz 开发者提供了快速入门指南,适用于 Apache OFBiz 1.5.1 版本。OFBiz 是一个开源的企业级电子商务框架,支持...
本文档旨在详细介绍OFBIZ中的实体引擎配置,首先概述实体引擎的基本概念,然后深入探讨`entityengine.xml`文件中各个元素的具体用法。 #### 二、实体引擎概述 在OFBIZ中,实体引擎负责处理数据库操作,如查询、...
<event type="java" path="org.ofbiz.webapp.control.LoginWorker" invoke="login"/> <response name="success" type="view" value="main"/> <response name="error" type="view" value="login"/> </request-map...
**OFBIZ** 是一款基于 Java 的开源企业级电子商务框架,它提供了完整的业务流程管理解决方案,包括订单处理、库存管理、客户服务支持等功能。为了能够顺利进行 OFBIZ 的开发与测试工作,首先需要搭建一个良好的开发...
<in-field field="estimatedStartMinute"><constant>:</constant></in-field> <in-field field="estimatedStartSecond"> </in-field> </make-in-string> ``` 这段代码会将各个字段拼接成一个完整的日期时间字符...
【OFBiz教程-初学者开发指南】 OFBiz(Open For Business Project)是一个开源的企业级业务应用框架,旨在提供一套全面的电子商务解决方案。本教程专为初学者设计,旨在解决OFBiz入门过程中的常见问题,帮助开发者...
- **实体组文件 (`entitygroup.xml`)**:这个文件也由 Ofbiz 预先提供,通常与 `entitymodel_xxx.xml` 存放在同一个目录下。 下面是一个简单的 `entitymodel_study.xml` 文件示例: ```xml <?xml version="1.0" ...
- **OFBiz**(Open For Business)是一款开源的企业级电子商务框架,主要用于构建和部署各种类型的业务应用,包括电子商务、供应链管理等。 - **目标读者**:初次接触OFBiz的技术人员或学生。 - **主要内容**:本...
OFBiz 是一个强大的开源企业应用框架,它采用松耦合的架构设计,使得开发者能够更加灵活地构建和管理企业级应用程序。在这个框架中,配置文件起着至关重要的作用,它们帮助定义系统的行为和数据源。以下是一些OFBiz...
### OFBiz教程——初学者的开发指南 #### 一、简介 本教程旨在为初次接触OFBiz框架的开发者提供一个全面且易于理解的入门指南。OFBiz是一个开源的企业级电子商务框架,提供了完整的业务流程管理解决方案,包括订单...
- **关闭OFBiz**:介绍安全停止服务的方法。 - **OFBiz首次巡览**: - **访问OFBiz**:说明如何通过浏览器访问OFBiz应用。 - **探索Web应用程序“ecommerce”**:介绍该模块的功能和使用场景。 - **购物体验**...
### OFBIZ 开源项目分析 #### 一、OFBIZ Release 4.0 开发环境搭建 **1.1 JDK 1.5.0 的安装与配置** - **下载**: 从官方网站 [http://java.sun.com](http://java.sun.com) 下载 `jdk-1_5_0_04-windows-i586-p.exe...
<service name="findCountries" engine="simple" location="component://myfirstdemo/script/org/ofbiz/demo/DemoServices.xml" invoke="findCountries"> <description>Find Countries Service</description> ...
### OFBiz_FOP中文支持详解 #### 一、引言 在使用Apache OFBiz进行企业级应用开发时,经常会遇到需要生成PDF文档的需求。而在这个过程中,如何在生成的PDF中正确显示中文字符是一个常见的问题。本文将详细介绍如何...
- **分配内存给 OFBiz**:介绍如何为 OFBiz 分配足够的内存。 - **启动 OFBiz 并验证启动过程**:详细说明启动 OFBiz 的步骤及如何确认启动成功。 - **查看实时日志**:说明如何在 OFBiz 运行时查看实时的日志...
- **OFBiz** 是一款开源的企业级电子商务框架,支持多种业务场景,包括但不限于电子商务、供应链管理等。 - **主题(Themes)** 在 OFBiz 中指的是用于定制化用户界面外观的设计模板集合,主要包括 CSS 样式、图片、...
autoReconnect=true" jdbc-username="root" .../> </datasource> ``` - **1.2.2 在Eclipse中启动Ofbiz** - 创建一个新的Ofbiz项目。 - 配置项目的运行环境。 - 启动Ofbiz服务器。 #### 二、框架结构 **2.1 ...