redfox26
redfox26

Reputation: 2070

list of string not displayed

I use spring 3. I'm trying to display a value of an object in a jsp.

public class UserForm implements Serializable {

    private List<String> values;
    private String date;
    ...
}

Here is my controller:

@Controller
@RequestMapping("/user.htm")
public class UserController {

    @Autowired
    private IUserService userService;

    @RequestMapping(method = RequestMethod.GET)
    public String userStat(Model model) {

        UserForm stat = userService.populateStatistique();
        stat.setDate("today");
        model.addAttribute("statistiqueForm", stat);
        return "userStat";
    }
}

Here is my jsp:

<form:form commandName="userForm" name="userForm">
    Date: <form:input path="date"></form:input>
    <br/>
    Expediteur: 
    <form:select path="values" items="${values}" />
    <br/>
    <input type="submit" value="create" />
</form:form>

In the jsp I can see the today value for the date field, but the listbox is empty.

any idea?

thanks

Upvotes: 0

Views: 351

Answers (2)

Bozho
Bozho

Reputation: 597114

Well, use addAttribute("values", list) if you want it accessible in the jsp. You are currently not setting it and so it is empty.

If that list is contained in the statistiqueForm object, then use items="${statistiqueForm.values}".

Upvotes: 2

javanna
javanna

Reputation: 60205

You're correctly passing the form object to the jsp page. In that page you have a list box, which has a list of potential values and a list of selected values. The object form contains the list of selected values, but you should also setup the list with all potential values. In fact you reference ${values} in the jsp, but you don't pass it to the jsp. You should add this code to your controller:

model.addAttribute("values", potentialValueList);

I also suggest you to change the name of that list to avoid confusion, so it will be easy to understand the difference from selected values to potential values.

Upvotes: 0

Related Questions