Class SpringStandardDialect

  • All Implemented Interfaces:
    org.thymeleaf.dialect.IDialect, org.thymeleaf.dialect.IExecutionAttributeDialect, org.thymeleaf.dialect.IExpressionObjectDialect, org.thymeleaf.dialect.IProcessorDialect

    public class SpringStandardDialect
    extends org.thymeleaf.standard.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.

    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.0
    Author:
    Daniel Fernández
    • Constructor Detail

      • SpringStandardDialect

        public SpringStandardDialect()
    • Method Detail

      • 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 org.thymeleaf.standard.expression.IStandardVariableExpressionEvaluator getVariableExpressionEvaluator()
        Overrides:
        getVariableExpressionEvaluator in class org.thymeleaf.standard.StandardDialect
      • getConversionService

        public org.thymeleaf.standard.expression.IStandardConversionService getConversionService()
        Overrides:
        getConversionService in class org.thymeleaf.standard.StandardDialect
      • getExpressionObjectFactory

        public org.thymeleaf.expression.IExpressionObjectFactory getExpressionObjectFactory()
        Specified by:
        getExpressionObjectFactory in interface org.thymeleaf.dialect.IExpressionObjectDialect
        Overrides:
        getExpressionObjectFactory in class org.thymeleaf.standard.StandardDialect
      • getProcessors

        public Set<org.thymeleaf.processor.IProcessor> getProcessors​(String dialectPrefix)
        Specified by:
        getProcessors in interface org.thymeleaf.dialect.IProcessorDialect
        Overrides:
        getProcessors in class org.thymeleaf.standard.StandardDialect
      • getExecutionAttributes

        public Map<String,​Object> getExecutionAttributes()
        Specified by:
        getExecutionAttributes in interface org.thymeleaf.dialect.IExecutionAttributeDialect
        Overrides:
        getExecutionAttributes in class org.thymeleaf.standard.StandardDialect
      • createSpringStandardProcessorsSet

        public static Set<org.thymeleaf.processor.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<org.thymeleaf.processor.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