使用Java技术在Cocoon中实现商业逻辑(11) <map:read mime-type="text/html" src="examples/confirmation.html"/> </map:act> <map:read mime-type="text/html" src="examples/addresource.html"/> </map:match> 可以看到,在<map:act> 行的下面,紧跟着的<map:parameter>标签为Action提供"pool"参数。 一切顺利的话,Action将返回一个Map对象,confirmation页面将被显示。 在浏览器中打开http://localhost:8080/cocoon/addresource,你会看到一个输入表单。 表单提交后,如果插入成功,将显示confirmation页面,如果出现错误,将再次返回到表单 页面。查看WEB-INF/logs/sitemap.log,错误信息会告诉你出现了什么错误。 如何有效的使用XSP和Action? XSP和Action是在Cocoon中实现逻辑的两种不同的办法。选择哪一种更适合呢? XSP在取数据或者创建结构化的数据方面是很有用的。Action被证明在控制数据流程 (并不产生或者影响数据)的逻辑实现上很有用。我们上面看到的用户验证和数据库 操作便是这样的两个例子。 然而,有一点需要说明的问题:XSP会将逻辑和内容混合。而Cocoon的一个基本的原则 就是逻辑、内容、表示的分离。 在使用XSP的时候,我们提出以下几点建议: 首先,尽可能的使用逻辑单,逻辑单会很好的将Java代码隐藏。 第二,尽量使用Cocoon的提供的功能,如:在做数据库的Select的时候,我们也可以用 SqlTransformer来实现。 第三,在决策方面的逻辑尽可能的使用Selector, Matcher或Action组件。 最后,当无法避免在你的XSP中插入Java逻辑的话,尽可能的让<xsp:logic>小,而且不要 把它们散布到各种你的标签中。