在Seam 2.0.1中,我最满意的功能之一是自然对话。为什么?
轻松重定向到现有对话
如果用户请求相同操作两次,重定向到现有对话可能很有用。
以下是一个例子
你正在ebay上,正在为你的父母买一个圣诞礼物支付一半的价格。假设你会直接寄给他们 - 你输入了支付详情,但是你忘记了他们的地址。你意外地重复使用同一个浏览器窗口查找他们的地址。现在你需要返回支付项目。
使用自然对话,用户可以很容易地重新加入现有对话,并继续之前中断的地方 - 只需让他们重新加入以itemId作为对话id的payForItem对话即可。
用户友好的URL
我一直坚信使用用户友好的、描述性的URL。当然,对于某些应用程序来说,这不太重要 - 我之前(在Seam之前)写的最大的应用程序 真的很 不好,因为它使用了框架 ;-) 。对我来说,这包括
- 一个可导航的层次结构 - 我可以通过编辑URL来导航
- 一个有意义的URL(就像这个Wiki使用的URL一样 -- 不要用随机的ID来标识事物)
第一个在Seam中使用URLRewrite是可以实现的(我也期待看到URLRewrite与Seam的pages.xml之间有更强的集成)),但第二个之前比较困难。
现在,有了自然对话,当你构建你的酒店预订系统(或者,当然,任何你的应用程序)时,你可以生成一个像这样的URLhttp://seam-hotels/book.seam?hotel=BestWesternAntwerpen(当然,hotel在你的域模型中映射的参数必须是唯一的),然后使用URLRewrite轻松地将它转换为http://seam-hotels/book/BestWesternAntwerpen.
好多了!
弃用显式合成对话ID
我真的不喜欢使用显式合成对话ID - 它们在我看来真的很丑。你知道你对某些事情有那种直觉吗?显式合成对话ID对我来说就是那种感觉。
这已在最近发布的 2.0.1.CR1 中提供。
希望这能激发你思考如何将自然对话整合到你的应用程序中。