2

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記載されているように、成功のトピックを試してみましたが、うまくいきました。

4

0 に答える 0