Class SpringStandardDialect

All Implemented Interfaces:
IDialect, IExecutionAttributeDialect, IExpressionObjectDialect, IProcessorDialect

public class SpringStandardDialect extends StandardDialect

SpringStandard Dialect. This is the class containing the implementation of Thymeleaf Standard Dialect, including all th:* processors, expression objects, etc. for Spring-enabled environments.

This dialect is valid both for Spring WebMVC and Spring WebFlux environments.

Note this dialect uses SpringEL as an expression language and adds some Spring-specific features on top of StandardDialect, like th:field or Spring-related expression objects.

The usual and recommended way of using this dialect is by instancing SpringTemplateEngine instead of TemplateEngine. The former will automatically add this dialect and perform some specific configuration like e.g. Spring-integrated message resolution.

Note a class with this name existed since 1.0, but it was completely reimplemented in Thymeleaf 3.0

Since:
3.0.3
Author:
Daniel Fernández
  • Field Details

  • Constructor Details

    • SpringStandardDialect

      public SpringStandardDialect()
  • Method Details

    • getEnableSpringELCompiler

      public boolean getEnableSpringELCompiler()

      Returns whether the SpringEL compiler should be enabled in SpringEL expressions or not.

      Expression compilation can significantly improve the performance of Spring EL expressions, but might not be adequate for every environment. Read the official Spring documentation for more detail.

      Also note that although Spring includes a SpEL compiler since Spring 4.1, most expressions in Thymeleaf templates will only be able to properly benefit from this compilation step when at least Spring Framework version 4.2.4 is used.

      This flag is set to false by default.

      Returns:
      true if SpEL expressions should be compiled if possible, false if not.
    • setEnableSpringELCompiler

      public void setEnableSpringELCompiler(boolean enableSpringELCompiler)

      Sets whether the SpringEL compiler should be enabled in SpringEL expressions or not.

      Expression compilation can significantly improve the performance of Spring EL expressions, but might not be adequate for every environment. Read the official Spring documentation for more detail.

      Also note that although Spring includes a SpEL compiler since Spring 4.1, most expressions in Thymeleaf templates will only be able to properly benefit from this compilation step when at least Spring Framework version 4.2.4 is used.

      This flag is set to false by default.

      Parameters:
      enableSpringELCompiler - true if SpEL expressions should be compiled if possible, false if not.
    • getRenderHiddenMarkersBeforeCheckboxes

      public boolean getRenderHiddenMarkersBeforeCheckboxes()

      Returns whether the <input type="hidden" ...> marker tags rendered to signal the presence of checkboxes in forms when unchecked should be rendered before the checkbox tag itself, or after (default).

      A number of CSS frameworks and style guides assume that the <label ...> for a checkbox will appear in markup just after the <input type="checkbox" ...> tag itself, and so the default behaviour of rendering an <input type="hidden" ...> after the checkbox can lead to bad application of styles. By tuning this flag, developers can modify this behaviour and make the hidden tag appear before the checkbox (and thus allow the lable to truly appear right after the checkbox).

      Note this hidden field is introduced in order to signal the existence of the field in the form being sent, even if the checkbox is unchecked (no URL parameter is added for unchecked check boxes).

      This flag is set to false by default.

      Returns:
      true if hidden markers should be rendered before the checkboxes, false if not.
      Since:
      3.0.10
    • setRenderHiddenMarkersBeforeCheckboxes

      public void setRenderHiddenMarkersBeforeCheckboxes(boolean renderHiddenMarkersBeforeCheckboxes)

      Sets whether the <input type="hidden" ...> marker tags rendered to signal the presence of checkboxes in forms when unchecked should be rendered before the checkbox tag itself, or after (default).

      A number of CSS frameworks and style guides assume that the <label ...> for a checkbox will appear in markup just after the <input type="checkbox" ...> tag itself, and so the default behaviour of rendering an <input type="hidden" ...> after the checkbox can lead to bad application of styles. By tuning this flag, developers can modify this behaviour and make the hidden tag appear before the checkbox (and thus allow the lable to truly appear right after the checkbox).

      Note this hidden field is introduced in order to signal the existence of the field in the form being sent, even if the checkbox is unchecked (no URL parameter is added for unchecked check boxes).

      This flag is set to false by default.

      Parameters:
      renderHiddenMarkersBeforeCheckboxes - true if hidden markers should be rendered before the checkboxes, false if not.
      Since:
      3.0.10
    • getVariableExpressionEvaluator

      public IStandardVariableExpressionEvaluator getVariableExpressionEvaluator()
      Overrides:
      getVariableExpressionEvaluator in class StandardDialect
    • setVariableExpressionEvaluator

      public void setVariableExpressionEvaluator(IStandardVariableExpressionEvaluator variableExpressionEvaluator)
      Overrides:
      setVariableExpressionEvaluator in class StandardDialect
    • getConversionService

      public IStandardConversionService getConversionService()
      Overrides:
      getConversionService in class StandardDialect
    • getExpressionObjectFactory

      public IExpressionObjectFactory getExpressionObjectFactory()
      Specified by:
      getExpressionObjectFactory in interface IExpressionObjectDialect
      Overrides:
      getExpressionObjectFactory in class StandardDialect
    • getProcessors

      public Set<IProcessor> getProcessors(String dialectPrefix)
      Specified by:
      getProcessors in interface IProcessorDialect
      Overrides:
      getProcessors in class StandardDialect
    • getExecutionAttributes

      public Map<String,Object> getExecutionAttributes()
      Specified by:
      getExecutionAttributes in interface IExecutionAttributeDialect
      Overrides:
      getExecutionAttributes in class StandardDialect
    • createSpringStandardProcessorsSet

      public static Set<IProcessor> createSpringStandardProcessorsSet(String dialectPrefix)

      Create a the set of SpringStandard processors, all of them freshly instanced.

      Parameters:
      dialectPrefix - the prefix established for the Standard Dialect, needed for initialization
      Returns:
      the set of SpringStandard processors.
    • createSpringStandardProcessorsSet

      public static Set<IProcessor> createSpringStandardProcessorsSet(String dialectPrefix, boolean renderHiddenMarkersBeforeCheckboxes)

      Create a the set of SpringStandard processors, all of them freshly instanced.

      Parameters:
      dialectPrefix - the prefix established for the Standard Dialect, needed for initialization
      renderHiddenMarkersBeforeCheckboxes - true if hidden markers should be rendered before the checkboxes, false if not.
      Returns:
      the set of SpringStandard processors.
      Since:
      3.0.10