/** * Configure the supplied {@link HttpServletResponse}. * <p>The default implementation of this method sets the * {@link HttpServletResponse#setContentType content type} and * {@link HttpServletResponse#setCharacterEncoding encoding} * from the "media-type" and "encoding" output properties * specified in the {@link Transformer}. * @param model merged output Map (never {@code null}) * @param response current HTTP response * @param transformer the target transformer */ protected void configureResponse(Map<String, Object> model, HttpServletResponse response, Transformer transformer) { String contentType = getContentType(); String mediaType = transformer.getOutputProperty(OutputKeys.MEDIA_TYPE); String encoding = transformer.getOutputProperty(OutputKeys.ENCODING); if (StringUtils.hasText(mediaType)) { contentType = mediaType; } if (StringUtils.hasText(encoding)) { // Only apply encoding if content type is specified but does not contain charset clause already. if (contentType != null && !contentType.toLowerCase().contains(WebUtils.CONTENT_TYPE_CHARSET_PREFIX)) { contentType = contentType + WebUtils.CONTENT_TYPE_CHARSET_PREFIX + encoding; } } response.setContentType(contentType); }
/** * Configure the supplied {@link HttpServletResponse}. * <p>The default implementation of this method sets the * {@link HttpServletResponse#setContentType content type} and * {@link HttpServletResponse#setCharacterEncoding encoding} * from the "media-type" and "encoding" output properties * specified in the {@link Transformer}. * @param model merged output Map (never {@code null}) * @param response current HTTP response * @param transformer the target transformer */ protected void configureResponse(Map<String, Object> model, HttpServletResponse response, Transformer transformer) { String contentType = getContentType(); String mediaType = transformer.getOutputProperty(OutputKeys.MEDIA_TYPE); String encoding = transformer.getOutputProperty(OutputKeys.ENCODING); if (StringUtils.hasText(mediaType)) { contentType = mediaType; } if (StringUtils.hasText(encoding)) { // Only apply encoding if content type is specified but does not contain charset clause already. if (contentType != null && !contentType.toLowerCase().contains(WebUtils.CONTENT_TYPE_CHARSET_PREFIX)) { contentType = contentType + WebUtils.CONTENT_TYPE_CHARSET_PREFIX + encoding; } } response.setContentType(contentType); }
@Test public void enableIndentingSunnyDay() throws Exception { Transformer transformer = new StubTransformer(); TransformerUtils.enableIndenting(transformer); String indent = transformer.getOutputProperty(OutputKeys.INDENT); assertNotNull(indent); assertEquals("yes", indent); String indentAmount = transformer.getOutputProperty("{http://xml.apache.org/xslt}indent-amount"); assertNotNull(indentAmount); assertEquals(String.valueOf(TransformerUtils.DEFAULT_INDENT_AMOUNT), indentAmount); }
@Test public void enableIndentingSunnyDayWithCustomKosherIndentAmount() throws Exception { final String indentAmountProperty = "10"; Transformer transformer = new StubTransformer(); TransformerUtils.enableIndenting(transformer, Integer.valueOf(indentAmountProperty)); String indent = transformer.getOutputProperty(OutputKeys.INDENT); assertNotNull(indent); assertEquals("yes", indent); String indentAmount = transformer.getOutputProperty("{http://xml.apache.org/xslt}indent-amount"); assertNotNull(indentAmount); assertEquals(indentAmountProperty, indentAmount); }
@Test public void disableIndentingSunnyDay() throws Exception { Transformer transformer = new StubTransformer(); TransformerUtils.disableIndenting(transformer); String indent = transformer.getOutputProperty(OutputKeys.INDENT); assertNotNull(indent); assertEquals("no", indent); }
ByteArrayOutputStreamEx baos = new ByteArrayOutputStreamEx(); Transformer tr = xs.getIdentityTransformer(); String defaultEncoding = tr.getOutputProperty(OutputKeys.ENCODING); tr.setOutputProperty(OutputKeys.ENCODING, charset); tr.transform(v, new StreamResult(new OutputStreamWriter(baos,charset)));
ByteArrayOutputStreamEx baos = new ByteArrayOutputStreamEx(); Transformer tr = xs.getIdentityTransformer(); String defaultEncoding = tr.getOutputProperty(OutputKeys.ENCODING); tr.setOutputProperty(OutputKeys.ENCODING, charset); tr.transform(v, new StreamResult(new OutputStreamWriter(baos,charset)));
/** Get an output property that is in effect for the transformation. */ public final String getOutputProperty(String name) { return _tfmr.getOutputProperty(name); }
public String getEncoding() { return transformer.getOutputProperty(OutputKeys.ENCODING); }
public String getEncoding() { return transformer.getOutputProperty(OutputKeys.ENCODING); }
public String getVersion() { return transformer.getOutputProperty(OutputKeys.VERSION); }
public String getVersion() { return transformer.getOutputProperty(OutputKeys.VERSION); }
public boolean isFormattedOutput() { return transformer.getOutputProperty(OutputKeys.INDENT).equals(YES); }
public boolean isFormattedOutput() { return transformer.getOutputProperty(OutputKeys.INDENT).equals(YES); }
CharacterValidatingContentHandler(boolean xml11, ContentHandler serializerHandler) { mHandler = serializerHandler; mXml11 = xml11; String indentDeltaString = mTransformer.getOutputProperty("{http://xml.apache.org/xslt}indent-amount"); if (null != indentDeltaString) { try { indentDelta = Integer.parseInt(indentDeltaString); } catch (NumberFormatException e) { indentDelta = 0; } } mLastOutputNode.add(null); }
public ContentHandler getContentHandler() { String xmlVer = mTransformer.getOutputProperty( OutputKeys.VERSION ); boolean xml10 = xmlVer == null || "1.0".equals( xmlVer ); return new CharacterValidatingContentHandler( !xml10, mHandler ); }
public ContentHandler getContentHandler() { String xmlVer = mTransformer.getOutputProperty( OutputKeys.VERSION ); boolean xml10 = xmlVer == null || "1.0".equals( xmlVer ); return new CharacterValidatingContentHandler( !xml10, mHandler ); }
public ContentHandler getContentHandler() { String xmlVer = mTransformer.getOutputProperty(OutputKeys.VERSION); boolean xml10 = xmlVer == null || "1.0".equals(xmlVer); return new CharacterValidatingContentHandler(!xml10, mHandler); }
@Override public String getOutputProperty(String str) throws java.lang.IllegalArgumentException { try { materialize(); return m_realTransformer.getOutputProperty(str); } catch (TransformerException e) { // will be caught later } return null; }
public String writeString(Element element, boolean xmlDecl) throws TransformerException, TransformerConfigurationException { byte[] bytes = writeBytes(element, xmlDecl); String encoding = transformer.getOutputProperty(OutputKeys.ENCODING); if (encoding == null) { encoding = "UTF-8"; //$NON-NLS-1$ } try { return new String(bytes, encoding); } catch (UnsupportedEncodingException e) { return new String(bytes); } }