I have a Hashmap (String, List<Offers>)
, passed to a Thymeleaf page. I am getting this map on the page and I can access it.
How can I do map.get(key)
with Thymeleaf? I just need to fetch the values based on a certain key and then parse and print that value, which I know and have the logic for.
I am running a Broadleaf application and Thymeleaf is the UI engine for it.
The way to access the value:
You have to put the key between doubled underscores to make a pre-processing for the key variable.
The way to access the map value for a certain key
keyaccess
, assuming you have the mapmymap
in your model:That would give you the list associated to your entry, now you could iterate it.
In case you need, you could iterate a map in the same way you could iterate any other supported iterable objects, from the documentation:
remarksMap is TreeMap and "id" is Long type value
Using
${map.get(key)}
(wherekey
is a variable) works for me.${map['key']}
only seems to work for String literal keys -- if thekey
you're looking up is a variable then${map[key]}
doesn't seem to work.Accessing Map entries given a list of keys
Here's a full example, looking up items in a HashMap
map
givenlistOfKeys
an ordered List of the keys of elements I want to get from the map. Using a separatelistOfKeys
like this lets me control the order of iteration, and optionally return only a subset of elements from the map:Looping through every entry in a Map
If you do not have an ordered list of keys, but just want to loop through every item in the Map, then you can loop directly through the map's
keySet()
(But you will have no control of the ordering of keys returned if your map is aHashMap
):This usage can be expressed even more concisely by simply iterating through the
entrySet
of the map, and accessing each returned entry'skey
andvalue
members:You can simply use
${map.get('key')}
In my situation, where I had a
HashMap<String, String>
, I had to do the lookup like this