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.String
computeTemplateName(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 Template
createTemplate(Configuration config, java.lang.String templateName)
protected ResourceConfigList
getAllConfigs()
获取上下文中的资源配置信息列表。protected java.lang.String
getApplicationRootPath()
获取 REST 应用的根目录路径。protected static Configuration
getConfiguration(java.lang.String character)
获取 Freemarker 的配置的方法,增加浏览器字符集参数。protected static LocLogger
getLocLogger()
获取本地记录器。protected ResourceManager
getMessageManager()
获取消息管理器。protected java.util.List<ChildResourceInfo>
getParentResourceInfos(java.lang.String rootPath, java.lang.String requestURL, java.lang.Class resourceClz)
获取当前请求资源的所有父级资源名与地址的映射。static java.lang.String
getProductType()
获得产品类型protected Representation
getRepresentation(MediaType mediaType, java.lang.Object content, java.lang.String templateName)
protected java.lang.String
getServletID()
获取 Servlet 名称。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)
确定要写入的对象序列化之后的长度。java.lang.String
getTemplateName()
获取模板名。boolean
isWriteable(java.lang.Class arg0, java.lang.reflect.Type arg1, java.lang.annotation.Annotation[] arg2, javax.ws.rs.core.MediaType arg3)
判断本表述生成器是否支持指定媒体类型的表述。void
setExpectedLanguage(java.lang.String expectedLanguage)
设置期望的语言类型。void
setExtendedUriInfo(ExtendedUriInfo value)
void
setTemplateName(java.lang.String templateName)
设置模板名。protected java.util.List<MediaType>
supportedMediaTypes(java.lang.String... mediaTypeNames)
支持的媒体类型列表。protected java.lang.String
templateName(java.lang.annotation.Annotation[] annotations)
Representation
toRepresentation(MediaType mediaType, java.lang.Object content)
将资源转化成某种媒体类型的表述。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)
生成指定媒体类型的 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
-
-