`

Ofbiz: 自定义表单校验

 
阅读更多

用了一段时间ofbiz自带的form widgets工具,发现不是很好用。尤其是与前端配合开发的时候,表单的样式、效果受到了很多的限制。于是决定抛弃form widget,用freemarker。前端开发出来的效果和效率果然有了很大提交。但是存在一个问题,就是用freemarker写的表单提交如何做校验?和Struts不一样,struts框架中自带了form的验证器。那么ofbiz除了form widget以外,有没有办法实现表单验证呢?

 

答案就在ofbiz的service中。

 

因为ofbiz的逻辑层是一个一个的services,在给service的定义时,必须要给出传入参数和返回结果(参考services.xml)。如下service中定义了一个createProduct的服务。需要传入productId等参数。

 

    <service name="createProduct" engine="java"
        location="com.openb2c.product.common.ProductServices"
        invoke="createProduct">
        <attribute name="productId" type="String" mode="IN"
            optional="false"></attribute>

        ......

    </service>

这里可以给每一个attribute内加上这样一个标签:

<attribute name="productId" type="String" mode="IN" optional="false">

            <type-validate class="org.ofbiz.base.util.UtilValidate "
                method="isNotEmpty ">
                <fail-message message="productId不能为空" />
            </type-validate>
</attribute>

这个<type-validate>标签将会对attribute: productId进行校验。

校验的方法如上所见,装载class"org.ofbiz.base.util.UtilValidate ",这个class是ofbiz自带的一个验证工具,当然也可以写你自己适用的验证工具 。并调用class中的方法method"isNotEmpty"。这里运用了java的反射技术。fail-message是当验证不通过时,返回给服务调用者的错误信息。

 

service会把所有的参数都验证一遍,若有多个参数不通过的话,会把所有的不通过信息都返回。

 

至此,只要我们提交表单时,把request指向一个service。(在controller.xml中定义request-map,request-map中定义<event type="service" invoke="createProduct"/>)。当service校验不通过时,就会把错误并错误信息一起返回。只要在request-map的response中定义service失败的页面跳转,即可把信息返回给用户。

 

另外,我使用的ofbiz版本(opentaps 1.0使用的)对一个参数只支持一个validator,要支持一个属性多个validators的验证,只需简单的在ModelServiceReader(解释services.xml的工具)的方法addValidators方法中稍作修改即可。

 

到此,ofbiz表单部分比较满足我们OpenB2C项目的开发需求。前端UI用freemarker较快做出好的页面,并且能对表单做验证。

分享到:
评论

相关推荐

    ofbiz:Apache OFBiz-主要开发已移至ofbiz-frameworks存储库

    ApacheOFBiz:registered: 欢迎使用ApacheOFBiz:registered: ! 一个功能强大的顶级Apache软件项目。 OFBiz是用Java编写的企业资源计划(ERP)系统,并包含大量库,实体,服务和功能,以运行您的业务的各个方面。 ...

    java开发erp源码下载-ofbiz:apacheofbiz的克隆

    java开发erp源码下载项目前端:&& 更多文档 “大数据”文档:(很多有用的信息) 本地运行 ./deploy.sh ...OFBiz:registered: 欢迎使用Apache OFBiz ! 一个强大的顶级 Apache 软件项目。 OFBiz 是一个用

    Apache.OFBiz.Development

    9. 修改OFBiz:修改OFBiz主要通过添加新的字段、更改数据、更新数据库、编辑用户界面、改变应用程序流程等方式进行。文档提到了通过创建新的屏幕和FTL(FreeMarker Template Language)文件来自定义用户界面。 10. ...

    Apache OFBiz Development The Beginner's Tutorial

    - **创建新的 Widget 屏幕**:介绍创建自定义屏幕界面的步骤。 - **创建 FTL 文件**:说明如何创建 FreeMarker 模板文件。 - **流程中的更多细节**:深入探讨 OFBiz 中工作流的其他方面。 - **运行中的引擎可进行...

    浅谈OFBIZ 作者:李心(北京邮电大学)Email:richie.lx@hotmail.com

    为了像我一样的新手们能够对OFBIZ有一个初步的了解,所以我主要从以下三个方面来对OFBIZ 4.0做一个大致的介绍。 1. OFBIZ的release4.0开发环境的搭建。 2. OFBIZ的汉化示例。 3. OFBIZ的模块开发示例。 开发环境的...

    ofbiz安装与配置

    3. 使用 SVN 插件安装 Ofbiz:我们可以使用 SVN 插件从 SVN 仓库中下载 Ofbiz 的源代码。我们可以在 Eclipse 的“Project Explorer”中右键点击,选择“Import”,然后选择“从 SVN 检出项目”,输入 Ofbiz 的 SVN ...

    JAVA开发erp项目源码-mini-ofbiz:基于Ofbiz的迷你框架

    mini-ofbiz A Mini Framework base on Ofbiz. 是一整套完善的企业级,以java为核心,结合很多开源项目,支持使用脚本来编写业务逻辑的开源项目。 跟一般的技术框架不同,Ofbiz更大的价值体现在业务上,它也是一整套...

    ofbiz开发入门总结

    4. 部署Ofbiz:将生成的WAR文件部署到你的Web服务器上,例如将`ofbiz.war`复制到Tomcat的webapps目录下,然后启动服务器。 5. 运行Ofbiz:在浏览器中输入`http://localhost:8080/ofbiz`,如果一切顺利,你应该能...

    java开发erp源码-freedgo-ofbiz:freedgo延续了ofbiz的componentload,ServiceEngine,E

    Ofbiz. [Ofibz](. freedgo延续了ofbiz的 component load,Service Engine,Entity Engine等核心开发框架的优点,对实际对代码结构层次做进一步的改良,并结合docker容器,dubbo相关微服务,Jwts做相关的整合 主要包括...

    ofbiz 教程_配置ofbiz

    ofbiz的获取与部署,主要用到了gradle 和 eclipse,注意:cmd部署时,需要一个较好的网络环境以下载gradle

    Ofbiz 9 :Hello World

    NULL 博文链接:https://lmzf.iteye.com/blog/575969

    ofbiz开发初学者指南(中文版)

    实际上,OFBiz框架不仅帮助构建自定义软件,还打包有许多可能在ERP系统中期望的工具,以及更多。使用这些应用程序的扩展完全取决于你和业务的需求。一些业务直接选择使用这些组件的部分或全部。其它的可能花费一些...

    CVE-2021-26295-Apache-OFBiz:CVE-2021-26295 Apache OFBiz rmi反序列化POC

    CVE-2021-26295-Apache-OFBiz CVE-2021-26295 Apache OFBiz rmi反序列化POC需要将ysoserial.jar放置在目录下,并且不能使用java的高版本

    ofbiz-cn.github.io:ofbiz 中文文档

    Apache OFBiz:trade_mark: 是一个非常著名的开源电子商务平台,它提供了创建基于 J2EE 技术的企业级电子商务 类应用的框架,和一些业务逻辑组件可以用于 ERP (企业资源计划),CRM(客户关系管理), E-Business / ...

    ofbiz开发者入门教程

    这个目录是Ofbiz部署自定义组件的地方,你的所有开发工作都将在这里进行。 2. 在"hot-deploy/practice"目录下,创建一个名为"ofbiz-component.xml"的组件配置文件。这个文件包含了组件的元数据,告诉Ofbiz如何加载...

    magento:Magento 与 Apache OFBiz 集成,兼容 OFBiz-13.07 和主干

    马恩托 Magento 与 Apache OFBiz 集成... 使用命令启动 OFBiz:./ant run 在 OFBiz 中配置 magento 也很容易。 这个过程包括两个简单的步骤—— 在 Magento 端创建 SOAP/XML-RPC 用户和角色。 在 OFBiz 端设置信息:

    ofbiz开发教程

    **OFBiz开发教程** OFBiz,全称Open For Business Project,是一个开源的企业级应用套件,主要用于构建电子商务、供应链管理、客户关系管理等业务系统。本教程专为初学者设计,旨在帮助您快速掌握OFBiz的基本操作和...

    Ofbiz16.11.05运行及开发环境搭建等

    在本文中,我们将深入探讨如何搭建OFBiz 16.11.05的运行及开发环境,并讨论一些关键的OFBiz功能,如百度地图集成、国际化处理、用户逻辑、PDF导出、服务调用、内容管理、MVC框架、服务引擎、多租户以及权限系统。...

    ofbiz 英文pdf

    ### OFBiz 英文PDF知识点概述 #### 一、标题:ofbiz 英文pdf - **核心概念**:此标题表明文档为英文版本的OFBiz相关材料,旨在为初学者提供入门指导。 - **适用人群**:面向对OFBiz感兴趣的初学者或有一定基础的...

Global site tag (gtag.js) - Google Analytics