jspエラー
エラー:
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'researchList[${num}]' available as request attribute
状況:
selectbox値が変化した場合は、onchange関数を呼び出し、innerHtmlの用途に応じてテーブルを変更しようとします.
問題はinnerHtmlでform:formラベルが新しく使用され、エラーが発生したことです.
-変更前-
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'researchList[${num}]' available as request attribute
状況:
selectbox値が変化した場合は、onchange関数を呼び出し、innerHtmlの用途に応じてテーブルを変更しようとします.
//selectBox가 변경시 이벤트 감지
function chageLangSelect(num,selectVal){
var tableId = "search_table_"+num; //테이블 id
var selectId = "researchList["+num+"].reType"; //셀렉트 박스 id
if (selectVal == '0') {
alert("라디오박스");
var innerHtml =`
<table class="tbl_row_type01" id="search_table_\${num}">
<caption>내용(제목, 작성자, 작성일 등으로 구성)</caption>
<colgroup>
<col style="width:20%;">
<col style="width:30%;">
<col style="width:20%;">
<col style="width:30%;">
</colgroup>
<tbody id="sub_tbody_\${num}">
<tr>
<th scope="row"><strong class="th_tit">설문 타입</strong></th>
<td colspan="3">
<select name="researchList[\${num}].reType" id="researchList[\${num}].reType" onchange="chageLangSelect('\${num}',this.value)" title="설문 타입" cssClass="w100">
<option value="0" label="라디오박스" selected="selected"/>
<option value="1" label="이미지"/>
<option value="2" label="체크박스"/>
</select>
</td>
</tr>
<tr>
<th scope="row"><strong class="th_tit">설문 제목</strong></th>
<td colspan="3">
<input type="text" name="researchList[\${num}].reTitle" class="text w50p" required="required" maxlength="50"/>
<a href="#" class="btn btn_mdl btn_save" onclick="fncAdd('\${num}');">항목 추가</a>
</td>
</tr>
<tr id="add_tr_1">
<th scope="row"><strong class="th_tit">설문 내용</strong></th>
<td colspan="3" class="search_cont">
<input type="radio" name="researchList[0].check" id="researchList[0].check" value="0" />
<input type="text" name="researchList[0].reCont" id="researchList[0].reCont" class="text w50p" required="required" maxlength="50"/>
<a href="#" class="btn btn_i_del" onclick="fncDel('1','1');"><span>삭제</span></a>
</td>
</tr>
<tr id="add_tr_2">
<th scope="row"></th>
<td colspan="3" class="search_cont">
<input type="radio" name="researchList[1].check" id="researchList[1].check" value="0" />
<input type="text" name="researchList[1].reCont" id="researchList[1].reCont" class="text w50p" required="required" maxlength="50"/>
<a href="#" class="btn btn_i_del" onclick="fncDel('1','2');"><span>삭제</span></a>
</td>
</tr>
</tbody>
</table>
`;
$("#research_tables>tbl_wrap:last").append(innerHtml);
}
}
<table class="tbl_row_type01" id="search_table_1">
<caption>내용(제목, 작성자, 작성일 등으로 구성)</caption>
<colgroup>
<col style="width:20%;">
<col style="width:30%;">
<col style="width:20%;">
<col style="width:30%;">
</colgroup>
<tbody id="sub_tbody_1">
<tr>
<th scope="row"><strong class="th_tit">설문 타입</strong></th>
<td colspan="3">
<form:select path="researchList[0].reType" id="researchList[0].reType" onchange="chageLangSelect('1',this.value)" title="설문 타입" cssClass="w100">
<form:option value="0" label="라디오박스"/>
<form:option value="1" label="이미지"/>
<form:option value="2" label="체크박스"/>
</form:select>
</td>
</tr>
<tr>
<th scope="row"><strong class="th_tit">설문 제목</strong></th>
<td colspan="3">
<input type="text" name="researchList[0].reTitle" class="text w50p" required="required" maxlength="50"/>
<a href="#" class="btn btn_mdl btn_save" onclick="fncAdd('1');">항목 추가</a>
</td>
</tr>
<tr id="add_tr_1">
<th scope="row"><strong class="th_tit">설문 내용</strong></th>
<td colspan="3" class="search_cont">
<input type="radio" name="researchList[0].check" id="researchList[0].check" value="0" />
<input type="text" name="researchList[0].reCont" id="researchList[0].reCont" class="text w50p" required="required" maxlength="50"/>
<a href="#" class="btn btn_i_del" onclick="fncDel('1','1');"><span>삭제</span></a>
</td>
</tr>
</tbody>
</table>
解決する問題はinnerHtmlでform:formラベルが新しく使用され、エラーが発生したことです.
-変更前-
<form:select path="researchList[\${num}].reType" id="researchList[\${num}].reType" onchange="chageLangSelect('\${num}',this.value)" title="설문 타입" cssClass="w100">
<form:option value="0" label="라디오박스" selected="selected"/>
<form:option value="1" label="이미지"/>
<form:option value="2" label="체크박스"/>
</form:select>
-変更後-<select name="researchList[\${num}].reType" id="researchList[\${num}].reType" onchange="chageLangSelect('\${num}',this.value)" title="설문 타입" cssClass="w100">
<option value="0" label="라디오박스" selected="selected"/>
<option value="1" label="이미지"/>
<option value="2" label="체크박스"/>
</select>
Reference
この問題について(jspエラー), 我々は、より多くの情報をここで見つけました https://velog.io/@songi_jeon/jsp-오류テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol