0

我们的 Web 应用程序中存在以下问题。有一个在应用程序上创建订单的工作流程:

  • 输入有关客户的信息(一个 Web 表单)

  • 输入有关设备的信息(另一个 Web 表单)

以及对每种形式的一些限制,以便进入下一步:

  • 客户有一系列需要指定的属性(名字、姓氏、街道、电话号码)

  • 当客户希望收到短信通知时,需要提供一个有效的手机号码

  • 对于设备(对于支付类型(卡/现金/支票)检索到的设备,客户需要接受一定数量的钱才能创建订单

目前,这些约束直接在应用程序的源代码中实现,这使得应用程序更难维护(一些规则从应用程序的版本更改为下一个版本)。

在创建订单时,将这些检查从代码外部化的好方法是什么?

像 Drools 这样的规则引擎可能是一个很好的解决方案,但我想通过可视化编辑器为站点管理员提供定义验证规则的可能性。任何人都可以向我推荐一个针对这种情况已经存在的解决方案吗?

4

2 回答 2

0

在某种程度上 spring-webflow 可以帮助你。否则有各种可用的工作流/bpm 类型的解决方案(我曾经在 Savvion BPM 上工作过),然后我认为 jboss drools 就在那里。

于 2011-09-21T20:30:41.030 回答
0

您可以创建一个单独的流程来验证来自用户的信息。我们创建了一个所有请求都通过的 servlet(如果需要,可以使用 JSP)。当请求进来时,我们可以获取请求参数并将它们与用户填写的表单类型一起传递给验证类。验证类将执行所需的验证,然后将 true 或 false 连同任何失败的字段的名称一起传回。

当 servlet 启动时,它将转到数据库或 XML 文件并检索每个表单所需的字段并将其存储在它的缓存中。数据库或 XML 文件中的字段与 HTML 表单中的字段名称相同。如果您想添加/删除一个必需的字段,您只需要在 HTML 表单中添加/删除该字段,然后从数据库或 XML 文件中添加/删除该字段。无需更改代码。由于验证数据存储在缓存中,因此数据库或 XML 文件只会在服务器启动时读取一次。如果性能不是问题,您可以每次都从数据库或 XML 文件中读取。

您还可以通过将正则表达式与表单字段名称一起存储来验证数据是否有效(例如姓氏具有有效字符)。这样,您只需更改数据库或 XML 文件中的表达式即可更改字段的验证方式。没有代码更改没有重大的重新测试。

于 2011-09-21T21:02:42.907 回答