Using complex th:attr fields with Thymeleaf -


i have thymeleaf template rather complex data- attribute, so:

<div data-dojo-props="required: true, placeholder:'foo bar baz', more: stuff" ...> 

i'd have thymeleaf provide placeholder, so:

<div th:data-dojo-props="placeholder:'#{foo.bar.baz}'" ...> 

it doesn't work, of course. i'm supposed use th:attr so:

<div th:attr="data-dojo-props=placeholder:'#{foo.bar.baz}'" ...> 

which doesn't work. add : or ' within th:attr, template breaks. tried escaping them, e.g. \: , \', , tried using html entities, e.g. &38;, didn't work.

so tried th:prependattr , th:appendattr:

<div th:prependattr="data-dojo-props=placeholder:'"      th:attr="data-dojo-props=#{foo.bar.baz}"      th:appendattr="data-dojo-props='" ...> 

but can't handle : , ', nor escaping them:

<div th:prependattr="data-dojo-props=placeholder&58;&39;"      th:attr="data-dojo-props=#{foo.bar.baz}"      th:appendattr="data-dojo-props=&39;" ...> 

any way make work i'm missing?

you can use parameters in thymeleaf message property example:

messages.properties:

dojo.props=required: {0}, placeholder: {1}, more: {...} dojo.props.required=true dojo.props.placeholder=foo bar baz 

html message properties:

<div th:attr="data-dojo-props=#{dojo.props(#{dojo.props.required}, #{dojo.props.placeholder})}"></div> 

or if want values object:

<div th:attr="data-dojo-props=#{dojo.props(${dojo.props.required}, ${dojo.props.placeholder})}"></div> 

even selectors work:

<div th:attr="data-dojo-props=#{dojo.props(*{dojo.props.required}, *{dojo.props.placeholder})}"></div> 

Comments

Popular posts from this blog

c++ - Delete matches in OpenCV (Keypoints and descriptors) -

java - Could not locate OpenAL library -

sorting - opencl Bitonic sort with 64 bits keys -