Pre-populating radio buttons in JSP
Asked Answered
C

2

5

How can I pre-populate a HTML radio button using JSP, depending on the value in the database?

Cask answered 15/11, 2011 at 17:34 Comment(0)
Z
8

You just need to let JSP print the checked attribute of the HTML <input type="radio"> element. Easiest way to do that is using the conditional operator ?: in EL. Here's a kickoff example:

<input type="radio" name="foo" value="one" ${bean.foo == 'one' ? 'checked' : ''}/>
<input type="radio" name="foo" value="two" ${bean.foo == 'two' ? 'checked' : ''}/>
...

Or if you have all available input values in some collection like List<String>, then do:

<c:forEach items="${foos}" var="foo">
  <input type="radio" name="foo" value="${foo}" ${bean.foo == foo ? 'checked' : ''}/>
</c:forEach>

Either way, it should ultimately end up as follows in the generated HTML if ${bean.foo} equals to "two":

<input type="radio" name="foo" value="one" />
<input type="radio" name="foo" value="two" checked />
...

See also:

Zoophyte answered 15/11, 2011 at 17:45 Comment(3)
Excellent, thanks again BalusC - I will take this away and use these examples! Appreciate your help.Cask
Hey BalusC, in the second example you provided could you just give me a heads up on what the difference is between ${foos} and ${foo} I don't think I understand beans & foos enough to be able to follow your examples.Cask
The ${foos} is the collection. The ${foo} is the currently iterated item. See also #1728103, #3178233 and stackoverflow.com/tags/servlets/infoZoophyte
H
1

Pure JSP Scriplets

<input type="radio" name="gender" value="male" <% if (resultSet.getString("gender").equals("male")) out.print("checked"); else out.print(""); %> />
<input type="radio" name="gender" value="female" <% if (resultSet.getString("gender").equals("female")) out.print("checked"); else out.print(""); %> />
Hypoblast answered 11/11, 2018 at 13:21 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.