Dav*_*ave 9 java spring spring-mvc
我正在使用Spring 3.1.0.RELEASE.我的命令对象中有这个字段...
public Set<EventFeed> getUserEventFeeds() {
return this.userEventFeeds;
}
Run Code Online (Sandbox Code Playgroud)
在我的Spring JSP页面上,我想显示所有可能的事件源的复选框列表,然后检查复选框,如果用户在其集合中有一个.我希望在每个复选框周围都有一些特殊的HTML格式,所以我正在尝试......
<form:form method="Post" action="eventfeeds.jsp" commandName="user">
...
<c:forEach var="eventFeed" items="${eventFeeds}">
<tr>
<td><form:checkbox path="userEventFeeds" value="${eventFeed}"/></td>
<td>${eventFeed.title}</td>
</tr>
</c:forEach>
...
Run Code Online (Sandbox Code Playgroud)
但是,如果一个项目在集合中,则默认情况下不会检查这些项目.我该怎么做呢?这是我在控制器类中使用的活页夹...
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(EventFeed.class, new EventFeedEditor());
}
private class EventFeedEditor extends PropertyEditorSupport {
@Override
public void setAsText(String text) throws IllegalArgumentException {
setValue(eventFeedsDao.findById(Integer.valueOf(text)));
}
@Override
public String getAsText() {
return ((EventFeed) getValue()).getId().toString();
}
}
Run Code Online (Sandbox Code Playgroud)
@Dave,有一种叫做form:checkBoxes.你可以尝试一下.
<form:checkboxes path="userEventFeeds" items="${eventFeeds}" itemLabel="id" itemValue="value"/>
Run Code Online (Sandbox Code Playgroud)
我的假设是你应该在EventFeed类中定义"id"和"value".
我只是通过使用String [] availableList和String [] selectedList来尝试这个.它就像魅力一样.你也可以尝试一下.
有趣的是,这有效:
<form:checkbox path="services" value="${type}" checked="checked"/>
Run Code Online (Sandbox Code Playgroud)
您可以通过在类中放置选定的默认属性true来完成此操作
class User {
boolean userEventFeeds = true;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24344 次 |
| 最近记录: |