"," expects a list of products (actually a JavaScript array). But currently the type of products is a\n",[79,1703,1704],{},"java.util.List"," which doesn’t have the map method. Note the datatype of products in the image below.",[23,1707,1708],{},[968,1709],{"alt":1710,"src":1711},"nashorn-debugging","https://media.synyx.de/uploads//2016/03/nashorn-debugging.png",[494,1713,1714],{},[23,1715,1716],{},"“Given a Java array or Collection, this function returns a JavaScript array with a shallow copy of its contents”",[23,1718,1719,1720,1722],{},"So our renderServer function defined in ",[79,1721,895],{}," must be extended to:",[23,1724,1725],{},"Now we’re ready to go 🙂",[23,1727,1728,1729,1732,1733,1738],{},"Rebuild the frontend with ",[79,1730,1731],{},"npm run build",", restart the Spring Boot application, reload ",[33,1734,1735],{},[99,1736,944],{"href":944,"rel":1737},[103]," and\nadmire our awesome product list.",[23,1740,1741],{},[968,1742],{"alt":1743,"src":1744},"awesome-product-list-001","https://media.synyx.de/uploads//2016/03/awesome-product-list-001.png",[18,1746,1137],{"id":1136},[27,1748,1749,1752,1758,1766],{},[30,1750,1751],{},"using Nashorn is no rocket science",[30,1753,1754,1755,1757],{},"load js files via ",[79,1756,1448],{}," to enable debugging (at least in IntelliJ)",[30,1759,1760,1762,1763],{},[33,1761,1704],{}," must be converted to JavaScript array with ",[79,1764,1765],{},"Java.from",[30,1767,1768],{},"manually rebuilding and reloading the ReactJS app sucks (autoreload would be cool, right)",[23,1770,1771],{},[968,1772],{"alt":1773,"src":1774},"js-webpack-nashorn","https://media.synyx.de/uploads//2016/03/js-webpack-nashorn.png",[18,1776,1171],{"id":1170},[27,1778,1779,1782],{},[30,1780,1781],{},"using webpack to enhance developer experience",[30,1783,1784],{},"implementing the sorting feature",[23,1786,1787],{},[863,1788,1183],{},[401,1790,403],{},{"title":77,"searchDepth":200,"depth":200,"links":1792},[1793,1794,1795,1796,1797],{"id":804,"depth":200,"text":805},{"id":1326,"depth":200,"text":1239},{"id":1343,"depth":200,"text":1245},{"id":1136,"depth":200,"text":1137},{"id":1170,"depth":200,"text":1171},[419],"2016-03-11T11:29:12","https://synyx.de/blog/springboot-reactjs-server-side-rendering/",{},"/blog/springboot-reactjs-server-side-rendering",{"title":1213,"description":1222},{"loc":1802},"springboot-reactjs-server-side-rendering","blog/springboot-reactjs-server-side-rendering",[190,1205,1206,1207,435,1208],"This is the first article of a series about server side rendering and progressive enhancement. We will implement a product list that can be sorted by two parameters. Furthermore the…","9kuLSYyMhomGV1MAntBGjImvZlY5UrBUWedp7e_cyRk",[1811,1814,1817,1820,1823,1826,1829,1832,1835,1838,1841,1844,1847,1850,1853,1856,1859,1862,1865,1868,1871,1874,1876,1879,1882,1885,1888,1890,1893,1896,1899,1902,1905,1908,1911,1914,1917,1920,1923,1926,1929,1932,1935,1938,1941,1944,1947,1950,1953,1956,1959,1961,1964,1967,1970,1973,1976,1979,1982,1985,1988,1991,1994,1997,2000,2003,2006,2009,2012,2015,2018,2021,2024,2027,2030,2033,2036,2039,2042,2045,2048,2051,2054,2057,2060,2063,2066,2069,2072,2075,2078,2081,2084,2087,2090,2093,2096,2099,2102,2104,2107,2110,2113,2116,2118,2121,2124,2127,2130,2133,2136,2138,2140,2143,2146,2149,2152,2155,2158,2161,2164,2167,2170,2173,2176,2179,2182,2185,2188,2191,2193,2196,2199,2202,2205,2208,2211,2214,2217,2220,2223,2226],{"slug":1812,"name":1813},"abel","Jennifer Abel",{"slug":1815,"name":1816},"allmendinger","Otto Allmendinger",{"slug":1818,"name":1819},"antony","Ben Antony",{"slug":1821,"name":1822},"arrasz","Joachim Arrasz",{"slug":1824,"name":1825},"bauer","David Bauer",{"slug":1827,"name":1828},"bechtold","Janine Bechtold",{"slug":1830,"name":1831},"boersig","Jasmin Börsig",{"slug":1833,"name":1834},"buch","Fabian Buch",{"slug":1836,"name":1837},"buchloh","Aljona Buchloh",{"slug":1839,"name":1840},"burgard","Julia Burgard",{"slug":1842,"name":1843},"caspar-schwedes","Caspar Schwedes",{"slug":1845,"name":1846},"christina-schmitt","Christina Schmitt",{"slug":1848,"name":1849},"clausen","Michael Clausen",{"slug":1851,"name":1852},"contargo_poetzsch","Thomas Pötzsch",{"slug":1854,"name":1855},"damrath","Sebastian Damrath",{"slug":1857,"name":1858},"daniel","Markus Daniel",{"slug":1860,"name":1861},"dasch","Julia Dasch",{"slug":1863,"name":1864},"denman","Joffrey Denman",{"slug":1866,"name":1867},"dfuchs","Daniel Fuchs",{"slug":1869,"name":1870},"dobler","Max Dobler",{"slug":1872,"name":1873},"dobriakov","Vladimir Dobriakov",{"slug":1875,"name":1875},"dreiqbik",{"slug":1877,"name":1878},"dschaefer","Denise Schäfer",{"slug":1880,"name":1881},"dschneider","Dominik Schneider",{"slug":1883,"name":1884},"duerlich","Isabell Duerlich",{"slug":1886,"name":1887},"dutkowski","Bernd Dutkowski",{"slug":1889,"name":1889},"eifler",{"slug":1891,"name":1892},"essig","Tim Essig",{"slug":1894,"name":1895},"ferstl","Maximilian Ferstl",{"slug":1897,"name":1898},"fey","Prisca Fey",{"slug":1900,"name":1901},"frank","Leonard Frank",{"slug":1903,"name":1904},"franke","Arnold Franke",{"slug":1906,"name":1907},"frischer","Nicolette Rudmann",{"slug":1909,"name":1910},"fuchs","Petra Fuchs",{"slug":1912,"name":1913},"gari","Sarah Gari",{"slug":1915,"name":1916},"gast","Gast",{"slug":1918,"name":1919},"graf","Johannes Graf",{"slug":1921,"name":1922},"grammlich","Daniela Grammlich",{"slug":1924,"name":1925},"guthardt","Sabrina Guthardt",{"slug":1927,"name":1928},"haeussler","Johannes Häussler",{"slug":1930,"name":1931},"hammann","Daniel Hammann",{"slug":1933,"name":1934},"heetel","Julian Heetel",{"slug":1936,"name":1937},"heft","Florian Heft",{"slug":1939,"name":1940},"heib","Sebastian Heib",{"slug":1942,"name":1943},"heisler","Ida Heisler",{"slug":1945,"name":1946},"helm","Patrick Helm",{"slug":1948,"name":1949},"herbold","Michael Herbold",{"slug":1951,"name":1952},"hofmann","Peter Hofmann",{"slug":1954,"name":1955},"hopf","Florian Hopf",{"slug":1957,"name":1958},"jaud","Alina Jaud",{"slug":9,"name":1960},"Robin De Silva Jayasinghe",{"slug":1962,"name":1963},"jbuch","Jonathan Buch",{"slug":1965,"name":1966},"junghanss","Gitta Junghanß",{"slug":1968,"name":1969},"kadyietska","Khrystyna Kadyietska",{"slug":1971,"name":1972},"kannegiesser","Marc Kannegiesser",{"slug":1974,"name":1975},"karoly","Robert Károly",{"slug":1977,"name":1978},"karrasz","Katja Arrasz-Schepanski",{"slug":1980,"name":1981},"kaufmann","Florian Kaufmann",{"slug":1983,"name":1984},"kesler","Mike Kesler",{"slug":1986,"name":1987},"kirchgaessner","Bettina Kirchgäßner",{"slug":1989,"name":1990},"klem","Yannic Klem",{"slug":1992,"name":1993},"klenk","Timo Klenk",{"slug":1995,"name":1996},"knell","Tobias Knell",{"slug":1998,"name":1999},"knoll","Anna-Lena Knoll",{"slug":2001,"name":2002},"knorre","Matthias Knorre",{"slug":2004,"name":2005},"koenig","Melanie König",{"slug":2007,"name":2008},"kraft","Thomas Kraft",{"slug":2010,"name":2011},"krupicka","Florian Krupicka",{"slug":2013,"name":2014},"kuehn","Christian Kühn",{"slug":2016,"name":2017},"lange","Christian Lange",{"slug":2019,"name":2020},"larrasz","Luca Arrasz",{"slug":2022,"name":2023},"leist","Sascha Leist",{"slug":2025,"name":2026},"lihs","Michael Lihs",{"slug":2028,"name":2029},"linsin","David Linsin",{"slug":2031,"name":2032},"maniyar","Christian Maniyar",{"slug":2034,"name":2035},"martin","Björnie",{"slug":2037,"name":2038},"martin-koch","Martin Koch",{"slug":2040,"name":2041},"matt","Tobias Matt",{"slug":2043,"name":2044},"mennerich","Christian Mennerich",{"slug":2046,"name":2047},"menz","Alexander Menz",{"slug":2049,"name":2050},"meseck","Frederick Meseck",{"slug":2052,"name":2053},"messner","Oliver Messner",{"slug":2055,"name":2056},"michael-ploed","Michael Plöd",{"slug":2058,"name":2059},"mies","Marius Mies",{"slug":2061,"name":2062},"mihai","Alina Mihai",{"slug":2064,"name":2065},"moeller","Jörg Möller",{"slug":2067,"name":2068},"mohr","Rebecca Mohr",{"slug":2070,"name":2071},"moretti","David Moretti",{"slug":2073,"name":2074},"mueller","Sven Müller",{"slug":2076,"name":2077},"muessig","Alexander Müssig",{"slug":2079,"name":2080},"neupokoev","Grigory Neupokoev",{"slug":2082,"name":2083},"nussbaecher","Carmen Nussbächer",{"slug":2085,"name":2086},"ochs","Pascal Ochs",{"slug":2088,"name":2089},"oelhoff","Jan Oelhoff",{"slug":2091,"name":2092},"oengel","Yasin Öngel",{"slug":2094,"name":2095},"oezsoy","Enis Özsoy",{"slug":2097,"name":2098},"posch","Maya Posch",{"slug":2100,"name":2101},"ralfmueller","Ralf Müller",{"slug":2103,"name":2103},"redakteur",{"slug":2105,"name":2106},"reich","Michael Reich",{"slug":2108,"name":2109},"reinhard","Karl-Ludwig Reinhard",{"slug":2111,"name":2112},"rmueller","Rebecca Müller",{"slug":2114,"name":2115},"rosum","Jan Rosum",{"slug":2117,"name":2117},"rueckert",{"slug":2119,"name":2120},"ruessel","Sascha Rüssel",{"slug":2122,"name":2123},"sauter","Moritz Sauter",{"slug":2125,"name":2126},"schaefer","Julian Schäfer",{"slug":2128,"name":2129},"scherer","Petra Scherer",{"slug":2131,"name":2132},"schlicht","Anne Schlicht",{"slug":2134,"name":2135},"schmidt","Jürgen Schmidt",{"slug":443,"name":2137},"Tobias Schneider",{"slug":781,"name":2139},"Benjamin Seber",{"slug":2141,"name":2142},"sommer","Marc Sommer",{"slug":2144,"name":2145},"speaker-fels","Jakob Fels",{"slug":2147,"name":2148},"speaker-gierke","Oliver Gierke",{"slug":2150,"name":2151},"speaker-krupa","Malte Krupa",{"slug":2153,"name":2154},"speaker-mader","Jochen Mader",{"slug":2156,"name":2157},"speaker-meusel","Tim Meusel",{"slug":2159,"name":2160},"speaker-milke","Oliver Milke",{"slug":2162,"name":2163},"speaker-paluch","Mark Paluch",{"slug":2165,"name":2166},"speaker-schad","Jörg Schad",{"slug":2168,"name":2169},"speaker-schalanda","Jochen Schalanda",{"slug":2171,"name":2172},"speaker-schauder","Jens Schauder",{"slug":2174,"name":2175},"speaker-unterstein","Johannes Unterstein",{"slug":2177,"name":2178},"speaker-wolff","Eberhard Wolff",{"slug":2180,"name":2181},"speaker-zoerner","Stefan Zörner",{"slug":2183,"name":2184},"stefan-belger","Stefan Belger",{"slug":2186,"name":2187},"steinegger","Roland Steinegger",{"slug":2189,"name":2190},"stern","sternchen synyx",{"slug":2192,"name":2192},"synyx",{"slug":2194,"name":2195},"szulc","Mateusz Szulc",{"slug":2197,"name":2198},"tamara","Tamara Tunczinger",{"slug":2200,"name":2201},"theuer","Tobias Theuer",{"slug":2203,"name":2204},"thieme","Sandra Thieme",{"slug":2206,"name":2207},"thies-clasen","Marudor",{"slug":2209,"name":2210},"toernstroem","Olle Törnström",{"slug":2212,"name":2213},"ullinger","Max Ullinger",{"slug":2215,"name":2216},"ulrich","Stephan Ulrich",{"slug":2218,"name":2219},"wagner","Stefan Wagner",{"slug":2221,"name":2222},"weigel","Andreas Weigel",{"slug":2224,"name":2225},"werner","Fabian Werner",{"slug":2227,"name":2228},"wolke","Sören Wolke",["Reactive",2230],{"$scookieConsent":2231,"$ssite-config":2233},{"functional":2232,"analytics":2232},false,{"_priority":2234,"env":2238,"name":2239,"url":2240},{"name":2235,"env":2236,"url":2237},-10,-15,0,"production","nuxt-app","https://synyx.de",["Set"],["ShallowReactive",2243],{"category-boot":-1,"blog-authors":-1},"/blog/tags/boot"]