[英]In SpringMVC, is there anyway to select a controller method using a form element value?
[英]Selecting default Boolean value in <form:select> in SpringMVC
我在Spring MVC中有一個問題。 選擇表單中的某些內容並提交表單非常有效,為非布爾值選擇默認值也可以,但是在為布爾值選擇默認值時遇到問題。
我的jsp文件看起來像這樣:
<form:form commandName="filterData" id="user_filter_form" action="${listUrl}" method="POST">
<form:label path="active">Active</form:label><br/>
<form:select path="active">
<option value="">--</option>
<option value="true">Yes</option>
<option value="false">No</option>
</form:select>
<form:label path="email">E-mail</form:label><br/>
<form:input path="email" type="search"/>
<button class="b not-ui" type="submit" style="margin-right: 25px">Search</button>
</form:form>
模型對象是這樣的:
public class UserFilterData {
private Boolean active;
private String email;
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Boolean getActive() {
return active;
}
public void setActive(Boolean active) {
this.active = active;
}
}
就像我說的,提交工作正常,但是當我創建這樣的控制器時,“電子郵件”字段填充為“ test@example.com”,但是selectbox選擇了第一個選項“ ---”
@RequestMapping(value = "/filter")
public String filterAction(Model model) {
UserFilterData data = new UserFilterData();
data.setEmail("test@example.com");
data.setActive(Boolean.TRUE);
model.addAttribute("filterData", data);
return "users/index;
}
我還嘗試將jsp中的“ true”更改為$ {true}或TRUE或1,但沒有成功。 如果我使用${filterData.active}
在jsp中回顯${filterData.active}
,則結果為true
,但未選擇適當的選項。 有人知道我在做什么錯嗎?
您可能需要使用表單選項標簽。
<form:option value="true" label=""/>
<form:option value="false" label=""/>
您沒有正確使用Spring標記。
更改代碼的一種簡單方法是:
<form:select path="active">
<form:option value="">--</option>
<form:options items="${activeValues}" itemLabel="active" itelLabel="active" >
</form:select>
@RequestMapping(value = "/filter")
public String filterAction(Model model) {
UserFilterData data = new UserFilterData();
data.setEmail("test@example.com");
data.setActive(Boolean.TRUE);
model.addAttribute("filterData", data);
model.addAttribute("activeValues", Lists.newArrayList("yes", "no"));
return "users/index;
}
您使用標記的方式,Spring將不知道何時將selected
值添加到呈現的HTML option
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.