jqgrid の保存時に、アクションは a をキャッチしてconstraint violation exception
「エラー」を返します。ただし、このonEditInlineErrorTopics
関数は jsp では呼び出されません。例外は、 「重複レコード」というユーザー メッセージに変換する必要があります
。コードは次のとおりです。
JSP グリッド コード
<sjg:grid id="gridtable"
dataType="json"
href="%{remoteurl}"
loadonce="true"
pager="true"
navigator="true"
scroll="true"
navigatorAdd="false"
navigatorEdit="false"
navigatorView="false"
navigatorDelete="true"
navigatorDeleteOptions="{height:220,reloadAfterSubmit:true,url:'%{deleteurl}'}"
gridModel="gridModel"
rowList="10,15,20"
rowNum="15"
navigatorRefresh="false"
navigatorSearch="false"
editurl="%{editurl}"
editinline="true"
navigatorInlineEditButtons="true"
gridview="true"
viewrecords="false"
shrinkToFit="true"
onEditInlineErrorTopics="onediterror">
これらのタグも試してみました
errorElementId, errorText
&onErrorTopics
アクション ヘッダー (注釈)
@ParentPackage(value = "basicstruts2")
@Action(value = "/editDetails",
results = {
@Result(name="success",type="json"),
@Result(name="error",type="json"),
@Result(name="none",type="json"),
@Result(name="input",type="json")
})
アクションキャッチブロック
catch(Exception e){
addActionError("Duplicate Records. Please enter again.");
return "error";
}
Json
作成される文字列は次
のとおりです。{"JSON":"error","field1":"1","field2":3,"oper":"edit","field3":5,"field4":"9","field5":null,"field6":null,"field7":"19","field8":156}
catch ブロックをスローしようとexception
しましたが、ポップアップにスタック トレースが表示されます。
ここのショーケースにonEditInlineSuccessTopics
記載されているように、成功のトピックを試してみましたが、うまくいきました。