Spring MVC コントローラーを使用してこのチュートリアルを模倣することはできません。
DataGrid は、取得した Java/Spring Controller データを使用してその行を作成していません。上記の例と非常によく似たコードのJSP全体を再現しているわけではありません。
以下の Spring "ControlTeste" は、DB からデータを取得し、(Gson を使用して) Json 文字列を作成し、それを応答として送信します。チュートリアルでは、このタスクは PHP で行われます (「コントローラー」レイヤーなしで、ビューから直接)。
@RequestMapping(value = "/ControlTeste", method = RequestMethod.GET)
public @ResponseBody String teste(Status Status, HttpSession httpSession) {
Gson gson = new GsonBuilder().setDateFormat("dd-MM-yyyy").setPrettyPrinting().create();
Session sess = (Session) httpSession.getAttribute("hibSess");
StatusDAO staDao = new StatusDAO(sess);
List<Status> lista = staDao.findAll();
String gStatus = new String();
try{
gStatus = gson.toJson(lista);
System.out.println(gStatus);
}
catch(Exception e){
e.printStackTrace();
}
return gStatus;
}
生成される Json は次のとおりです。
{
"id": 2,
"descricao": "Novo Status",
"sigla": "STA",
"estadoFinal": true,
"erro": true
}
DataGrid の構成 (JSP 内) は次のとおりです。
<script type="text/javascript">
$('#dg').edatagrid({
url: 'ControlTeste',
saveUrl: 'StatusCreate',
updateUrl: 'StatusUpdate',
destroyUrl: 'StatusDelete'
});
<table id="dg" title="Cadastro de Status" class="easyui-datagrid"
style="width: 700px; height: 250px" url="ControlTeste"
toolbar="#toolbar" pagination="true" rownumbers="true"
fitColumns="true" singleSelect="true">
<thead>
<tr>
<th field="id" width="20">ID</th>
<th field="sigla" width="40">Sigla</th>
<th field="descricao" width="50">Descrição</th>
<th field="erro" width="30">Erro?</th>
<th field="estadoFinal" width="30">Estado Final?</th>
</tr>
</thead>
</table>
<div id="toolbar">
<a href="javascript:void(0)" class="easyui-linkbutton"
iconCls="icon-add" plain="true" onclick="novo()">Novo</a> <a
href="javascript:void(0)" class="easyui-linkbutton"
iconCls="icon-edit" plain="true" onclick="editar()">Editar</a> <a
href="javascript:void(0)" class="easyui-linkbutton"
iconCls="icon-remove" plain="true" onclick="remover()">Remover</a>
</div>
現在、DataGrid に入力するデータを取得する責任があるため、「ControlTeste」コントローラーにのみ関心があります。
助けてくれてありがとう!