我想在页面加载的下拉列表中显示所选值。 我的编辑页面显示一个值,国家/地区。现在用户属于美国,因此默认情况下应在页面加载时选择USA。我可以使用javascript或jquery。
我在互联网上找不到任何帮助,但是他们使用了scriplets(< %%>)并且我不想使用它们。
我正在传递一个具有Id和Value的List。另外我还有另一个对象。 我可以通过在jsp中引入for循环并显示值来编写代码,但可能是我在那里做了一些错误。还想知道是否有更好的方法来做到这一点。
我正在使用Spring MVC。
感谢。
答案 0 :(得分:5)
“现在用户属于美国,因此默认情况下应在页面加载时选择美国。”您知道之前的用户属于某个国家/地区。
假设你有一个pojo Country:
public class Country{
String countryName;
String countryId;
//setters and getters
}
public class YourForm{
List<Country> countryList;
String selectedCountryId;
...
//setters and getters
}
在委托给jsp的控制器方法中:
...
YourForm form = new YourForm();
//set your countrylist to form
//set country user belongs to - selectedCountryId - since you know before hand user belongs to some country.
model.addAttribute("yourForm", form):
...
现在在jsp中访问它:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
</head>
<body>
<form:form id="yourForm" modelAttribute="yourForm" method="post">
<tr>
<td width="50%" class="label">
<form:select id="countryId" path="selectedCountryId" title='Select Country'>
<option value="">Please Select</option>
<form:options items="${countryList}" itemValue="countryId" itemLabel="countryName"/>
</form:select>
</td>
</tr>
</body>
由于已在控制器中设置selectedCountryId,您将在jsp中看到该国家/地区已自动选中。