iterator 탭 내부에 Struts2의 checkbox 탭을 사용합니다
코드
Todo.java
@Entity
public class Todo {
@Id
private long id;
private boolean checked;
private String content;
private Date created;
// getter/setter略
}
TodoAction.javapublic class TodoAction extends ActionSupport {
private List<Todo> todoList;
private Collection<String> checkList;
public List<Todo> getTodoList() { return todoList; }
public void setTodoList(List<Todo> todoList) { this.todoList = todoList; }
public Collection<String> getCheckList() { return checkList; }
public void setCheckList(Collection<String> checkList) { this.checkList = checkList; }
@Action("display")
public String display() {
User user = (User) session.get("user");
userName = user.getName();
TodoEjb ejb = new TodoEjb();
todoList = ejb.findByUser(user);
return SUCCESS;
}
@Action("update")
public String update() {
for (String check : checkList) {
long id = Long.parseLong(check);
for (Todo todo : todoList) {
if (todo.getId() == id) {
todo.setChecked(true);
break;
}
}
}
TodoEjb ejb = new TodoEjb();
ejb.update(todoList);
return "update";
}
}
todo.jsp<s:iterator value="todoList">
<tr class="row">
<td class="col-sm-1 text-center">
<s:checkbox name="checkList" value="checked" fieldValue="%{id}" />
</td>
<td class="col-sm-9">
<s:property value="content" />
</td>
<td class="col-sm-2 text-center">
<s:date name="created" format="yyyy/MM/dd HH:mm" />
</td>
</tr>
</s:iterator>
실행 결과
DB의 값이 이런 느낌이라고 가정하면
id
user_id
checked
content
created
0
testuser1
1
저것을 하다
2015-04-23 15:58:20
1
testuser1
0
저것
2015-04-23 13:49:14
result.html
<tr class="row">
<td class="col-sm-1 text-center">
<input type="checkbox" name="checkList" value="0" checked="checked" id="update_checkList"/>
<input type="hidden" id="__checkbox_update_checkList" name="__checkbox_checkList" value="0" />
</td>
<td class="col-sm-9">あれをやる</td>
<td class="col-sm-2 text-center">2015/04/23 15:58</td>
</tr>
<tr class="row">
<td class="col-sm-1 text-center">
<input type="checkbox" name="checkList" value="1" id="update_checkList"/>
<input type="hidden" id="__checkbox_update_checkList" name="__checkbox_checkList" value="1" />
</td>
<td class="col-sm-9">あれとあれをやる</td>
<td class="col-sm-2 text-center">2015/04/23 13:49</td>
</tr>
<s:checkbox> 탭 속성
value
출력된 체크 상자의 checked 속성에 반영됩니다.
boolean을 통해 자동 형식 변환을 한 결과
true
일 때checked="checked"
로 변경됩니다.fieldValue
출력된 콤보 상자의value 속성에 반영됩니다.
name
선택한 복선상자의value 속성 (
여러 개를 선택할 수 있기 때문에 동작 측면에서
Collection<String>
에서 수신합니다.String은 쉼표 + 반각 공백 구분자로 들어갈 수도 있습니다.
하지만 아무것도 검사하지 않았다면
null
.총결산
대충 이런 느낌.
<s:checkbox value="true" fieldValue="1" name="checkList" />
<s:checkbox value="false" fieldValue="2" name="checkList" />
<s:checkbox value="true" fieldValue="3" name="checkList" />
↓ (Response)<input type="checkbox" name="checkList" value="1" checked="checked" />
<input type="checkbox" name="checkList" value="2" />
<input type="checkbox" name="checkList" value="3" checked="checked" />
↓ (Submit)checkList = ["1", "3"]
Reference
이 문제에 관하여(iterator 탭 내부에 Struts2의 checkbox 탭을 사용합니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/clomie/items/0be00e7563951aeec310텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)