com.supermap.services.rest.encoders
类 TemplateEncoder
- java.lang.Object
 - 
- com.supermap.services.rest.encoders.Encoder
 - 
- com.supermap.services.rest.encoders.TemplateEncoder
 
 
 
- 
- 所有已实现的接口:
 - javax.ws.rs.ext.MessageBodyWriter<java.lang.Object>
 
- 直接已知子类:
 - AjaxEncoder, Flash3DEncoder, FlexEncoder, LeafletEncoder, OpenLayersEncoder, SceneRealspaceEncoder, SuperMapCloudEncoder, SwaggerUIEncoder, TianDiTuEncoder, VectorTileEncoder
 
@Provider public class TemplateEncoder extends Encoder implements javax.ws.rs.ext.MessageBodyWriter<java.lang.Object>
HTML 表述生成器。
用于将资源内容,即 Java 对象转换成 HTML 格式的表述。
注意,生成 HTML 格式的表述需要先指定 HTML 模板(*.ftl 文件,FreeMarker 的概念),即 HTML 页面的布局、元素等信息,然后将欲表述的对象内容与之相结合,才能获取 HTML 格式的表述,模板不同,表述的结果也不同。
如下所示,为生成 sampleResource 资源的 HTML 格式表述的过程,其中 sample.ftl 为 sample 资源的模板文件。
Object content = sampleResource.getResourceContent(); TemplateEncoder encoder = new TemplateEncoder(); encoder.setTemplateName("sample.ftl"); Representation entity = templateEncoder.toRepresentation(MediaType.TEXT_HTML, content); 
- 
- 
构造器概要
构造器 构造器和说明 TemplateEncoder()默认构造函数。TemplateEncoder(ServletConfig servletConfig, HttpServletRequest servletRequest)构造函数。TemplateEncoder(java.lang.String templateName)构造函数。 
- 
方法概要
方法 限定符和类型 方法和说明 protected java.lang.StringcomputeTemplateName(java.lang.Object arg0, java.lang.annotation.Annotation[] arg3, javax.ws.rs.core.MediaType arg4, javax.ws.rs.core.MultivaluedMap arg5)protected java.util.List<Language>createSupportedLanguages()创建支持的语言类型。protected java.util.List<MediaType>createSupportedMediaTypes()创建创建支持的媒体类型。protected TemplatecreateTemplate(Configuration config, java.lang.String templateName)protected ResourceConfigListgetAllConfigs()获取上下文中的资源配置信息列表。protected java.lang.StringgetApplicationRootPath()获取 REST 应用的根目录路径。protected static ConfigurationgetConfiguration(java.lang.String character)获取 Freemarker 的配置的方法,增加浏览器字符集参数。protected static LocLoggergetLocLogger()获取本地记录器。protected ResourceManagergetMessageManager()获取消息管理器。protected java.util.List<ChildResourceInfo>getParentResourceInfos(java.lang.String rootPath, java.lang.String requestURL, java.lang.Class resourceClz)获取当前请求资源的所有父级资源名与地址的映射。static java.lang.StringgetProductType()获得产品类型protected RepresentationgetRepresentation(MediaType mediaType, java.lang.Object content, java.lang.String templateName)protected java.lang.StringgetServletID()获取 Servlet 名称。longgetSize(java.lang.Object arg0, java.lang.Class arg1, java.lang.reflect.Type arg2, java.lang.annotation.Annotation[] arg3, javax.ws.rs.core.MediaType arg4)确定要写入的对象序列化之后的长度。java.lang.StringgetTemplateName()获取模板名。booleanisWriteable(java.lang.Class arg0, java.lang.reflect.Type arg1, java.lang.annotation.Annotation[] arg2, javax.ws.rs.core.MediaType arg3)判断本表述生成器是否支持指定媒体类型的表述。voidsetExpectedLanguage(java.lang.String expectedLanguage)设置期望的语言类型。voidsetExtendedUriInfo(ExtendedUriInfo value)voidsetTemplateName(java.lang.String templateName)设置模板名。protected java.util.List<MediaType>supportedMediaTypes(java.lang.String... mediaTypeNames)支持的媒体类型列表。protected java.lang.StringtemplateName(java.lang.annotation.Annotation[] annotations)RepresentationtoRepresentation(MediaType mediaType, java.lang.Object content)将资源转化成某种媒体类型的表述。voidwriteTo(java.lang.Object arg0, java.lang.Class arg1, java.lang.reflect.Type arg2, java.lang.annotation.Annotation[] arg3, javax.ws.rs.core.MediaType arg4, javax.ws.rs.core.MultivaluedMap arg5, java.io.OutputStream arg6)生成指定媒体类型的 HTTP 响应。- 
从类继承的方法 com.supermap.services.rest.encoders.Encoder
getSupportedMediaTypes, isEncodeAllow 
 - 
 
 - 
 
- 
- 
构造器详细资料
- 
TemplateEncoder
public TemplateEncoder()
默认构造函数。
 
- 
TemplateEncoder
public TemplateEncoder(@Context ServletConfig servletConfig, @Context HttpServletRequest servletRequest)构造函数。
- 参数:
 servletConfig- Servlet配置信息。servletRequest- Servlet支持的请求。
 
- 
TemplateEncoder
public TemplateEncoder(java.lang.String templateName)
构造函数。
根据模板名构建 TemplateEncoder 对象。
- 参数:
 templateName- 模板名称。
 
 - 
 
- 
方法详细资料
- 
getTemplateName
public java.lang.String getTemplateName()
获取模板名。
- 返回:
 - 模板名称。
 
 
- 
setExtendedUriInfo
@Context public void setExtendedUriInfo(ExtendedUriInfo value)
 
- 
setTemplateName
public void setTemplateName(java.lang.String templateName)
设置模板名。
- 参数:
 templateName- 欲设置的模板名称。
 
- 
toRepresentation
public Representation toRepresentation(MediaType mediaType, java.lang.Object content)将资源转化成某种媒体类型的表述。
- 指定者:
 toRepresentation在类中Encoder- 参数:
 mediaType- 媒体类型。content- 要转换的内容。- 返回:
 - 资源的表述。
 
 
- 
getRepresentation
protected Representation getRepresentation(MediaType mediaType, java.lang.Object content, java.lang.String templateName) 
- 
getConfiguration
protected static Configuration getConfiguration(java.lang.String character)
获取 Freemarker 的配置的方法,增加浏览器字符集参数。
- 返回:
 - Freemarker 配置信息。
 
 
- 
createSupportedLanguages
protected java.util.List<Language> createSupportedLanguages()
创建支持的语言类型。
用户扩展一个 Encoder 时,需要指定该 Encoder 支持将格式化的对象转换成什么语言的表述。
- 返回:
 - 支持的语言类型列表。
 
 
- 
createSupportedMediaTypes
protected java.util.List<MediaType> createSupportedMediaTypes()
创建创建支持的媒体类型。
- 指定者:
 createSupportedMediaTypes在类中Encoder- 返回:
 - 支持的媒体类型列表。
 
 
- 
getSize
public long getSize(java.lang.Object arg0, java.lang.Class arg1, java.lang.reflect.Type arg2, java.lang.annotation.Annotation[] arg3, javax.ws.rs.core.MediaType arg4)确定要写入的对象序列化之后的长度。在生成 HTTP 响应之前被调用。
- 指定者:
 getSize在接口中javax.ws.rs.ext.MessageBodyWriter<java.lang.Object>- 参数:
 arg0- 要生成表述的对象。arg1- 要生成表述的对象对应的 Java 类。arg2- 要生成表述的对象的类型。arg3- 注记数组,资源中有这些注记的方法返回要写入的对象。arg4- HTTP 请求体的媒体类型。- 返回:
 - 要写入的对象的长度。
 
 
- 
isWriteable
public boolean isWriteable(java.lang.Class arg0, java.lang.reflect.Type arg1, java.lang.annotation.Annotation[] arg2, javax.ws.rs.core.MediaType arg3)判断本表述生成器是否支持指定媒体类型的表述。
- 指定者:
 isWriteable在接口中javax.ws.rs.ext.MessageBodyWriter<java.lang.Object>- 参数:
 arg0- 要生成表述的对象。arg1- 指定的媒体类型。arg2- 注记数组,资源中有这些注记的方法返回要写入的对象。arg3- 预期响应的媒体类型。- 返回:
 - 如果本表述生成器支持指定的媒体类型,则返回 true,否则返回 false。
 
 
- 
writeTo
public void writeTo(java.lang.Object arg0, java.lang.Class arg1, java.lang.reflect.Type arg2, java.lang.annotation.Annotation[] arg3, javax.ws.rs.core.MediaType arg4, javax.ws.rs.core.MultivaluedMap arg5, java.io.OutputStream arg6) throws java.io.IOException, javax.ws.rs.WebApplicationException生成指定媒体类型的 HTTP 响应。
- 指定者:
 writeTo在接口中javax.ws.rs.ext.MessageBodyWriter<java.lang.Object>- 参数:
 arg0- 要生成表述的对象。arg1- 要生成表述的对象对应的 Java 类。arg2- 要生成表述的对象的类型。arg3- 注记数组,资源中有这些注记的方法返回要写入的对象。arg4- HTTP 响应的媒体类型。arg5- HTTP 响应的消息头。arg6- HTTP 响应。- 抛出:
 java.io.IOException- 当读写过程出错时。javax.ws.rs.WebApplicationException- 当 HTTP 响应出错时。
 
- 
computeTemplateName
protected java.lang.String computeTemplateName(java.lang.Object arg0, java.lang.annotation.Annotation[] arg3, javax.ws.rs.core.MediaType arg4, javax.ws.rs.core.MultivaluedMap arg5) 
- 
createTemplate
protected Template createTemplate(Configuration config, java.lang.String templateName) 
- 
templateName
protected java.lang.String templateName(java.lang.annotation.Annotation[] annotations)
 
- 
getParentResourceInfos
protected java.util.List<ChildResourceInfo> getParentResourceInfos(java.lang.String rootPath, java.lang.String requestURL, java.lang.Class resourceClz)
获取当前请求资源的所有父级资源名与地址的映射。
- 参数:
 rootPath- REST 应用的资源根目录。requestURL- 请求 URI。resourceClz- 请求的资源的实现类。- 返回:
 - 当前请求的资源的所有父级资源的信息列表。
 
 
- 
getAllConfigs
protected ResourceConfigList getAllConfigs()
获取上下文中的资源配置信息列表。
- 返回:
 - 资源配置信息列表。
 
 
- 
getServletID
protected java.lang.String getServletID()
获取 Servlet 名称。
- 返回:
 - Servlet 名称。
 
 
- 
getApplicationRootPath
protected java.lang.String getApplicationRootPath()
获取 REST 应用的根目录路径。
- 返回:
 - REST 应用的根目录。
 
 
- 
getLocLogger
protected static LocLogger getLocLogger()
获取本地记录器。
- 返回:
 - 本地记录器。
 
 
- 
getMessageManager
protected ResourceManager getMessageManager()
获取消息管理器。
- 返回:
 
 
- 
setExpectedLanguage
public void setExpectedLanguage(java.lang.String expectedLanguage)
设置期望的语言类型。
- 参数:
 expectedLanguage-
 
- 
supportedMediaTypes
protected java.util.List<MediaType> supportedMediaTypes(java.lang.String... mediaTypeNames)
支持的媒体类型列表。
- 参数:
 mediaTypeNames- 媒体类型名称。- 返回:
 - 媒体类型列表。
 
 
- 
getProductType
public static java.lang.String getProductType()
获得产品类型- 返回:
 - iServer、iPortal、iExpress
 
 
 - 
 
 -