Freemarker - Select Option Not Saved December 27, 2023 Post a Comment I have a form in my ftl file and one part of this is this select: <$assign valueSolution 1: Let's build a common ground:First, create a POJO to hold the information of your formpublicclassFoo{ privateString bar; // public getter and setter ommitted } CopyNow, in your Spring MVC controller, put the instance you want to bind to into Spring MVC's model. This is done by annotating a method using @ModelAttribute which returns the required instance. Typically, you'll read current values for your form from a database - For the sake of brevity I'm just creating a new model instance here:@ControllerpublicclassMyController { @ModelAttributepublic Foo readFooFromDB() { // read the current option from the DB or simply create a default option hereFoof=newFoo(); f.setBar("B"); return f; } } CopySpring will now put the Foo instance into it's model using the name foo. You could change that name by assigning another value to your @ModelAttribute annotation.Next add a @RequestMapping method to your controller, which will forward to your Freemarker View:@ControllerpublicclassMyController { .... @RequestMapping("/request/path/") publicStringprocess() { return"mytemplate"; } } CopyFinally, in your template use Spring's FreeMarker macros to render a form including your select:<#import"spring.ftl"as spring /> <form action="/request/path/"> <#assign options = { "A": "Option A", "B": "Option B", "C": "Option C" } /> <@spring.formSingleSelect path="foo.bar" options /> <input type="submit" value="Send" /> </form> CopyThe form should now render the current value of the your Foo instance ("B" in our case) as the selected option.So far, so good. Last step (the one you were originally asking for): If you submit your form, Spring should bind the submitted bar value to your foo instance. To achieve this, simply add the instance as a parameter to your request method and annotate it again with @ModelAttribute. Note that the name of the parameter is important here and must match the name of the instance in Spring's model - foo in our case:@ControllerpublicclassMyController { .... @RequestMapping("/request/path/") publicStringprocess(@ModelAttribute Foo foo) { // Binds all submitted request params to matching properties of your foo instance// validate your foo instance and probably save it in a DBreturn"mytemplate"; } } CopyVoilá Share Post a Comment for "Freemarker - Select Option Not Saved" Top Question Firefox, Chrome, Safari Have Grey Background For Mp4 Html5 Video Any video (that I can make) with a white background becomes… Red Border Still Appears On Inputs After Resetting An HTML 5 Form Firefox I have an HTML 5 form! Great, I'm excited! I decide to … Svg Animation And Firefox I'm struggle with SVG animation drawing, which is work … How To Save Html5 Geolocation Data To Python Django Admin? Is it possible to save the javascript html5 geolocation lat… How To Hide/show Tabs Using Jquery I have four tabs.On loading only the first tab is opened an… Form To Iframe Submission - How Do You Reset The Form After File Upload? I have a form that submits the results to an iframe. The su… How To Limit The Html Table Records In Each Page I am populating a table in my jsp which has more than 20 re… How To Display A Python String As Html In Jupyter Notebook In IPython notebook, I used to be able to display a python … How To Add Placeholder Field? I've been trying to add placeholder in input type='… Bounce Animation On A Scaled Object What is the best way to have an object scale and then perfo…