`
webcode
  • 浏览: 5943717 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

cetia4 1.1文档-2.8 确定 Request的类型

阅读更多

2.8 确定 Request的类型
无论是传统的web请求,还是web service客户端,大部分依赖于框架的请求可以同等的对待,但是有时候也需要知道是何种类型的请求。RenderRequest接口的getRenderType()方法返回一个java.lang.String类型的值来代表请求的类型。返回的值的类型定义在com.acsinet_solutions.cetia4.controller.RequestType接口, 如下:
• WEB ( 字符串 "web" ) 代表传统的web 请求
• WS_STATELESS ( 字符串 "ws_stateless" ) 代表无状态的web service 请求;
• WS ( literal "ws" ) 是 WS_STATELESS的别名. 内部的方法将返回 "ws_stateless" 作为指定请求的类型。

这个返回值被设计为String类型而不是Enum类型,是为了便于用户在将来扩充功能,这是多扩展性的一个高雅的设计。下面代码展示了如何在render方法中使用这一特性:
public String render( RenderContext context )
{
String requestType = context.getRequestType();
if( requestType.equals( RequestType.WEB ) )
loadTopicsForWebEnvironment( context );
else if( requestType.equals( RequestType.WS_STATELESS ) )
loadTopicsForWebServiceEnvironment( context );
else
throw new IllegalArgumentException
( "Unknown request type: " + requestType );
return "display_topics";
}
在这个例子中,根据不同的请求类型,topic被不同的方法装载。幸运的是,在大多数情况下,没必要这样做。在例子中,判断WS_STATELESS 就是相对于检查WS.在这个版本的框架中,框架只是处理了web请求和web service请求,另一种方便的 isWebRequest() 和 isWebServiceRequest()函数,如下:

public String render( RenderContext context )
{
if( context.isWebRequest() )
loadTopicsForWebEnvironment( context );
else //if( context.isWebServiceRequest() )
loadTopicsForWebServiceEnvironment( context );
return "display_topics";
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics