将Java Spring数据转换为Json并使用Bootstrap

时间:2017-05-03 10:04:05

标签: twitter-bootstrap jsp spring-boot jackson

在这些日子里,我为我开发了一个带有一些新概念的应用程序。数据访问和操作已经完成(还要感谢您对我的问题的回复),现在我必须自己尝试演示层/前端。

对于我们的网络应用程序,我的老板希望将处理后的数据转换为Json,然后通过Bootstrap呈现给用户(通过浏览器进行交互)。

从假设这个世界对我来说是新的(从某种意义上说,我已经阅读了指南和教程但从未真正将其传递给),目前正在逃避的是:如何,如果可能的话,给我Json格式的信息,使用Bootstrap用html表表示它们,以及获取数据后是否可以动态生成此表。

我更准确地公开场景:我们的应用程序是使用Spring Boot开发的,基本上是查询数据库并且必须向用户显示视频结果。数据访问是使用JDBC模板实现的,一切都在测试期间进行。 至于Json格式数据的转换,我看到了Jackson框架,并在这个网站上发现了许多有趣的例子,说明如何使用它将生成的数据转换成上述格式。所以毫无疑问。

现在假设我们必须将这些数据提交给JSP并希望使用Bootstrap;我怎样才能告诉我的应用程序"在表格中获取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。我该如何执行此任务?

1 个答案:

答案 0 :(得分:1)

我不会将JSP视图与提供JSON的API混合使用。我建议使用Spring模型(AndView)使用JSP / Thymeleaf视图,或者构建一个提供JSON的API,然后使用像角度这样的前端javascript框架来处理视图和模型。

如果我在你的情况下,我会继续使用Thymeleaf作为模板引擎并放弃JSON的东西。既然你提到缺乏前端经验,我认为这条路线不是一个飞跃。可以在Spring Github找到好的例子 通过this guide

找到