struts2アプリケーションのチェックボックスを使用して削除機能を実装したいと思います。jspページでdisplayタグを使用してレポートを表示しています。選択したレポートを削除するには、レポートにチェックボックスを付ける必要があります。私は私のjspページでこのコードを試しました:
<s:form name="listPage">
<display:table name="egnreports" class="table" id="egnreports" requestURI="" export="true" pagesize="30">
<display:column>
<s:checkbox name="checked" fieldValue='%{egnreports.id}' />
</display:column>
<display:column value="<%=egnreports_rowNum%>" title="S.No." />
<display:column property="createDate" sortable="true" titleKey="egnreport.createDate" style="width:13.5%"/>
<-- Other Table data here -->
</display:table>
</s:form>
<c:out value="${buttons}" escapeXml="false" />
私のアクションクラスでは、これを使用しました:
private String[] checked;
public String[] getChecked() {
return checked;
}
public void setChecked(String[] checked) {
this.checked=checked;
}
選択した値を取得して対応するレポートを削除しようとすると、nullポインター例外が発生します。
for (String code : checked) {
System.out.println(code + " is selected");
System.out.println("id="+egnreport.getId());
egnreportManager.remove(egnreport.getId());
saveMessage(getText("ireport.deleted"));
}
使用する場合
<display:column>
<input type="checkbox" name="checked" value="${egnreports.id}"/>
</display:column>
s:checkboxタグの代わりに、(firebugを使用して)レポートページに値を表示できますが、それでもアクションクラスに値が入力されません。
を使用して
<input type="checkbox" name="checked" value="${egnreports.id}"/>
私は得る
<td> <input type="checkbox" value="5" name="checked"> </td>
レンダリングされたhtmlとして、
<s:checkbox name="checked" fieldValue='%{egnreports.id}' />
私は得る
<td>
<div id="wwgrp_egnDeskReports_checked" class="wwgrp">
<div id="wwctrl_egnDeskReports_checked" class="wwctrl">
<input id="egnDeskReports_checked" type="checkbox" value="" name="checked">
<input type="hidden" value="" name="__checkbox_checked">
</div>
</div>
</td>
また、idの値を取得するために"${egnreports.id}"
withを使用することはできません。s:checkbox
どこで私は間違えましたか?誰かがこれで私を助けることができますか?