Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1188310
  • 博文数量: 89
  • 博客积分: 10546
  • 博客等级: 上将
  • 技术积分: 1510
  • 用 户 组: 普通用户
  • 注册时间: 2004-10-16 01:24
文章分类

全部博文(89)

文章存档

2012年(7)

2011年(4)

2010年(5)

2009年(52)

2008年(21)

分类: Java

2009-03-19 22:59:31

在前面的例子你可以看到,ActionBean 中一个事件对应的方法返回一个 Resolution对象。

Resolution 接口定义。

public interface Resolution {

void execute(HttpServletRequest request, HttpServletResponse response)
throws Exception;
}

Resolution 提供了 HttpServletRequestHttpServletResponse 的访问能力。

Stripes 提供了几种 Resolution 实现,ForwardResolutionRedirectResolutionStreamingResolutionErrorResolution

在前面例子中已经用到了ForwardResolution,它最终调用RequestDispatcher的forward方法显示目标页面。

ForwardResolution 提供了几种构造方法,用于不同目的。

	public ForwardResolution(String path) {

}

public ForwardResolution(Class beanType) {

}


public ForwardResolution(Class beanType, String event) {

}

第一种,直接指定 URL 地址,这种方法简单明了。后两种不直接使用 URL ,它可以从一个ActionBean 转向另外一个 ActionBeanStripes 会自动转向目标 ActionBean 和触发 ActionBean 事件所对应的 URL 地址。

RedirectResolutionForwardResolution不同的是它调用 HttpServletResponse 的sendRedirect方法显示目标页面。

StreamingResolution 不会将客户端转向另一个页面,它向客户端发送数据流。这个Resolution 常常用于动态显示图片,显示图表,XML数据。它提供一个可选的 filename 属性,可以用于文件下载。如果设置了该属性,那么在输出时 Stripes 会在输出流中会在文件头写入 Content-Disposition 信息 ,它指定下载文件的名称,在浏览器中会自动弹出下载文件窗口。StreamingResolution 会在后介绍使用。

ErrorResolution可以向客户端发送 HTTP 错误状态码和自定义的错误信息。

另外,Stripes 还提供了一种 JavaScriptResolution ,但奇怪的是这个 Resolution 没有从 StreamingResolution 继承。

阅读(2189) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~