0

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」コントローラーにのみ関心があります。

助けてくれてありがとう!

4

1 に答える 1

0

私の質問に答えると、おそらくいつかsbするのに役立つでしょう:

    @RequestMapping(value = "/StatusLista")
    public @ResponseBody String teste(Status Status, 
                                        HttpSession httpSession, 
                                        HttpServletRequest req,
                                        HttpServletResponse res) throws IOException {
        Session sess = (Session) httpSession.getAttribute("hibSess");
        StatusDAO staDao = new StatusDAO(sess);
        List<Status> lista = staDao.findAll();

        Gson gson = new GsonBuilder().setDateFormat("dd-MM-yyyy").setPrettyPrinting().create();
        String gListStatus = gson.toJson(lista);
        return gListStatus;
    }

Controller メソッドにいくつかの変更を加えました (そして、その名前も変更しました)。

于 2013-07-31T20:31:02.043 に答える