Class Html

All Implemented Interfaces:
AttachNotifier, DetachNotifier, HasElement, HasStyle, Serializable

public class Html extends Component
A component which encapsulates a given HTML fragment with a single root element.

Note that it is the developer's responsibility to sanitize and remove any dangerous parts of the HTML before sending it to the user through this component. Passing raw input data to the user will possibly lead to cross-site scripting attacks.

This component does not expand the HTML fragment into a server side DOM tree so you cannot traverse or modify the HTML on the server. The root element can be accessed through Component.getElement() and the inner HTML through getInnerHtml().

The HTML fragment cannot be changed after creation. You should create a new instance to encapsulate another fragment.

Note that this component doesn't support svg element as a root node. See separate Svg component if you want to display SVG images.

Since:
1.0
Author:
Vaadin Ltd
See Also:
  • Constructor Details

    • Html

      public Html(InputStream stream)
      Creates an instance based on the HTML fragment read from the stream. The fragment must have exactly one root element.

      A best effort is done to parse broken HTML but no guarantees are given for how invalid HTML is handled.

      Any heading or trailing whitespace is removed while parsing but any whitespace inside the root tag is preserved.

      Parameters:
      stream - the input stream which provides the HTML in UTF-8
      Throws:
      UncheckedIOException - if reading the stream fails
    • Html

      public Html(String outerHtml)
      Creates an instance based on the given HTML fragment. The fragment must have exactly one root element.

      A best effort is done to parse broken HTML but no guarantees are given for how invalid HTML is handled.

      Any heading or trailing whitespace is removed while parsing but any whitespace inside the root tag is preserved.

      Parameters:
      outerHtml - the HTML to wrap
  • Method Details

    • setHtmlContent

      public void setHtmlContent(String html)
      Sets the content based on the given HTML fragment. The fragment must have exactly one root element, which matches the existing one.

      A best effort is done to parse broken HTML but no guarantees are given for how invalid HTML is handled.

      Any heading or trailing whitespace is removed while parsing but any whitespace inside the root tag is preserved.

      Parameters:
      html - the HTML to wrap
    • getInnerHtml

      public String getInnerHtml()
      Gets the inner HTML, i.e. everything inside the root element.
      Returns:
      the inner HTML, not null