JSP が単なる HTML コード ジェネレーターであるという事実を見逃しているようです。
checked
HTML では、チェックされたチェックボックスは属性の存在によって表されます。
<input type="checkbox" ... checked="checked" />
JSP で行う必要があるのは、目的の HTML 出力を正確に生成することだけです。
<c:if test="${not empty param.selectall}">
<input type="checkbox" ... checked="checked" />
<input type="checkbox" ... checked="checked" />
<input type="checkbox" ... checked="checked" />
...
</c:if>
または、チェック状態と非チェック状態の HTML 全体を複製したくないが、目的の属性のみを生成したい場合:
<input type="checkbox" ... ${not empty param.selectall ? 'checked="checked"' : ''} />
<input type="checkbox" ... ${not empty param.selectall ? 'checked="checked"' : ''} />
<input type="checkbox" ... ${not empty param.selectall ? 'checked="checked"' : ''} />
...
または、実際にコレクションに値があり、それを反復して使用でき<c:forEach>
、単一の値ごとにすべての HTML 入力要素を複製したくない場合は、次のようにします。
<c:forEach items="${bean.availableItems}" var="availableItem">
<input type="checkbox" ... value="${availableItem}" ${not empty param.selectall ? 'checked="checked"' : ''} />
</c:forEach>
エンドユーザーが JS を無効にしている場合に失敗するような不器用な JS ハック/回避策は必要ありません。