WebObjects/Web 应用程序/开发/直接操作
外观
直接操作是可以无需 WOSession 即可调用的操作方法。与组件操作不同,组件操作需要 WOSession,并将各种表单值绑定为对象,而直接操作更像传统 Web 框架,其中表单值通过 WORequest 的 formValues 字典和 cookie 访问。直接操作对于构建无状态、高性能的网站非常有用,尽管您会失去 WebObjects 通过 组件操作 提供的一些易于开发的功能。
页面仍然以通常的方式生成,但是如果您希望页面中生成的链接在点击时使用直接操作,即创建直接操作 URL,则必须进行适当的绑定。
如果需要,直接操作可以与会话一起使用,这与会话如何与其他 Web 技术一起工作的方式非常相似 - 正确的会话对象将从 URL 或 cookie 中的信息自动定位,并且可以在其中获取和更改状态。
除其他事项外,直接操作通常在不需要任何会话的情况下使用(使用更少的资源),或者在需要可书签或易于创建的 URL 时使用。直接操作也经常用于为您的应用程序提供多个入口点,每个入口点都有自己的 URL - 但随后返回使用普通 组件操作 的组件。
如果您不需要 组件操作 的额外便利,那么直接操作也是一个不错的选择,因为它们没有任何缺点。但是,在没有创建 WOSession 的情况下创建整个 WO 应用程序非常困难,而且大多数情况下,您无论如何都需要它。
David LeBer 有一系列关于使用直接操作的优秀文章
- 使用 WebObjects 直接操作第 1 部分
- 使用 WebObjects 直接操作第 2 部分
- 从表单中调用直接操作
- 从 WOHyperlink 调用直接操作
- 从 WORedirect 调用直接操作
此页面用于存放您在使用直接操作时发现的有用笔记和技巧。
- 有关使用直接操作的快速浏览,请参见(在 Mac OS X,WO 5.x 上):/Developer/Examples/JavaWebObjects/ThinkMovies
- 当将直接操作与包含 WOText 或 textarea 元素的表单一起使用时,您需要自己删除客户端发回的任何 \r\n(软回车)。在组件操作页面中,WOText 元素会为您处理此操作,但是当您自己从请求的表单值中提取值时,您需要自己处理软回车。您应该将它们转换为 \n。