2017-05-03 9 views
0

最近、私は新しいコンセプトのアプリケーションを開発しています。データへのアクセスと操作が完了しました(私の質問に対するあなたの応答にも感謝します)、今私は自分自身をプレゼンテーションレイヤー/フロントエンドに連れていかなければなりません。Java SpringのデータをJsonに変換して、ブートストラップでjspに渡します。

私の上司は、処理されたデータをJsonに変換してから、ブートストラップ経由で(ブラウザ経由で)ユーザーに提示したいと考えています。

この世界は私にとって新しいものです(私はガイドとチュートリアルを読んだことがありますが実際にそれを渡したという意味ではありません)、現在逃げ出していることはどうすれば可能ですか? Bootstrapを使用してhtmlテーブルでそれらを表現し、データが取得されたらこのテーブルを動的に生成できるかどうかを判断します。

私はこのシナリオをより正確に公開しています。Springブートを使用して開発されたこのアプリケーションは基本的にdbを照会し、ビデオ結果をユーザーに表示する必要があります。データアクセスはJDBCテンプレートを使用して実装され、テスト中はすべてが順調に進んでいます。 Json形式データの変換に関しては、Jacksonフレームワークを見て、このサイトで、これを使用して生成されたデータを上記の形式に変換する方法の多くの興味深い例が見つかりました。ですから、これについて疑う余地はありません。

このデータをJSPに提出し、ブートストラップを使用する必要があるとします。アプリケーションで「JSONとページャーのデータをテーブルに取得する」ことをどのように伝えることができますか?例えば

、ファイアウォールオブジェクトを表す次のJavaクラスがあるとします。今

/** 
* A firewall delimits a perimeter that needs to be protected and is characterized by 
* Id, ip, informations and name. 
* 
* @author *** 
*/ 

public class Firewall 
{ 
    private String id; 
    private String ip; 
    private String info; 
    private String name; 

    /** 
    * Empty constructor, which instantiates a Firewall specimen without setting default values 
    */ 
    public Firewall() {} 

    /** 
    * Constructor instantiating a Firewall specimen specifying its initial values 
    * 
    * @param id the firewall's id code 
    * @param ip the firewall's ip code 
    * @param info the info about firewall 
    * @param name firewall's name 
    */ 
    public Firewall(String id, String ip, String info, String name) 
    { 
     super(); 
     this.id = id; 
     this.ip = ip; 
     this.info = info; 
     this.name = name; 
    } 

    /** 
    * Return firewall's identification code 
    * @return firewall id 
    */ 
    public String getId() 
    { 
     return id; 
    } 

    /** 
    * Set the firewall's id. 
    * @param id the value for firewall's id 
    */ 
    public void setId(String id) 
    { 
     this.id = id; 
    } 

    /** 
    * Return firewall's ip 
    * @return firewall's ip 
    */ 
    public String getIp() 
    { 
     return ip; 
    } 

    /** 
    * Set firewall's ip 
    * @param ip the value for firewall's ip 
    */ 
    public void setIp(String ip) 
    { 
     this.ip = ip; 
    } 

    /** 
    * Return firewall's info 
    * @return info 
    */ 
    public String getInfo() 
    { 
     return info; 
    } 

    /** 
    * Set the firewall's info 
    * @param info value forfirewall's info 
    */ 
    public void setInfo(String info) 
    { 
     this.info = info; 
    } 

    /** 
    * Return the firewall's name 
    * @return name 
    */ 
    public String getName() 
    { 
     return name; 
    } 

    /** 
    * Set the firewall's name 
    * @param nome value for firewall's name 
    */ 
    public void setName(String name) 
    { 
     this.name = name; 
    } 
} 

、これは自分のデータをすべてのファイアウォールのリストを公開するための簡単なコントローラであることとします

@Controller 
public class PolarisController 
{ 
    @Autowired 
    private FirewallsJDBCTemplate firewalls; 

    @RequestMapping(value="/firewalls") 
    @ResponseBody... //here I put the annotation for conversion using jackson 
    public ModelAndView listFirewall(ModelAndView model) throws IOException 
    { 
     /** 
     * This is the list of firewall obtained by the method implemented 
     * in the DAO class. 
     */ 
     List<Firewall> listFirewall = firewalls.getFirewall(null, null, null, null); 
     model.addObject("listFirewall", listFirewall); 
     model.setViewName("firewall"); 

     return model; 
    } 
} 

最後に、firewall.jspという名前のjspがあります(コントローラクラスのモデル名に従います)。このJSPでは、dbの質問によって生成されたデータを格納するテーブルを置く必要があります。このページではBootstrapを使用する必要があります。どのように私はこの作業を行うことができますか?

+0

データを送信するにはなぜ@@ RequestBodyを使用しますか?これはあなたの要求に対する応答なので、 '@ ResponseBody'がより適しているとは思わないでしょうか? – akuma8

+0

確か;それは私の文章ミスです、私は謝罪し、修正します。 –

答えて

1

JSONを提供するAPIとJSPビューを混在させません。 Spring Model(AndView)を使用してJSP/Thymeleafビューを使用するか、JSONを処理するAPIを構築し、ビューやモデルを処理するためにangleのようなフロントエンドのjavascriptフレームワークを使用することをお勧めします。

私があなたの状況にあったなら、私はテンプレートエンジンとしてThymeleafを使い、JSONのものを削除します。フロントエンドでの経験不足について言及して以来、私はこのルートが飛躍的なものではないと考えています。 Spring Github が見つかりました。this guide

+0

私はあなたの提案を感謝し、ありがとうございます。私は上司と対峙し、私はあなたの考えを提案します。 –

関連する問題