我们的网络应用程序中存在以下问题。 有一个在应用程序上创建订单的工作流程:
输入有关客户的信息(一个网络表单)
输入有关设备的信息(另一种网络表单)
以及对每个表单的一些约束,以便进入下一步:
客户有一系列需要指定的属性(名字,姓氏,街道,电话号码)
当客户希望通过短信通知时,需要引入有效的手机号码
对于设备(对于支付类型(卡/现金/支票)检索到的,客户接受一定数量的金钱以创建订单
目前,这些约束直接在应用程序的源代码中实现,这使得应用程序更难维护(某些规则从应用程序的版本更改为下一个版本)。
在创建订单时,从代码中外部化这些检查的好方法是什么?
像Drools这样的规则引擎可能是一个很好的解决方案,但我想通过可视化编辑器为网站管理员提供定义验证规则的可能性。 任何人都可以向我推荐一种已经适用于这种情况的解决方案吗?
答案 0 :(得分:0)
在某种程度上spring-webflow可以帮助你。否则有各种工作流程/ bpm类型的解决方案可用(我曾经在Savvion BPM工作过一次),然后我认为jboss drools就在那里。
答案 1 :(得分:0)
您可以创建一个单独的流程来验证用户的信息。我们已经创建了一个所有请求都通过的servlet(如果需要,可以使用JSP)。当请求进入时,我们可以获取请求参数并将它们传递给验证类以及用户填写的表单类型。验证类将执行所需的验证,然后将true或false以及失败的任何字段的名称传回。
当servlet启动时,它将转到数据库或XML文件并检索每个表单的必需字段并将其存储在其缓存中。数据库或XML文件中的字段与HTML表单中的字段具有相同的名称。如果要添加/删除所需的字段,只需添加/删除HTML表单中的字段,并从数据库或XML文件中添加/删除该字段。不需要更改代码。由于验证数据存储在缓存中,因此只有在启动服务器时才会读取数据库或XML文件。如果性能不是问题,您每次都可以从数据库或XML文件中读取。
您还可以通过将正则表达式与表单字段名称一起存储来验证数据是否有效(例如,姓氏具有有效字符)。这样,您只需更改数据库或XML文件中的表达式即可更改字段的验证方式。没有代码改变没有重大的重新测试。