【问题标题】:How to create a Backbone model from a POJO or a JavaBean?如何从 POJO 或 JavaBean 创建 Backbone 模型?
【发布时间】:2012-05-17 05:37:51
【问题描述】:

我有一个名为 Person.java 的 POJO,是否有任何 bash 或实用程序允许我从 Person.java 创建一个名为 person.js 的 Backbone 模型,所以我不必再次重新键入所有字段?

谢谢。

【问题讨论】:

    标签: java model-view-controller backbone.js pojo utility


    【解决方案1】:

    如果您使用 Jackson JSON 处理器 http://jackson.codehaus.org/ 将 POJO 模型代码转换为 JSON,则不必在 Backbone 模型上重新创建任何属性。一个简单的例子:

    public String getPerson(){
        Person personPOJOInstance = new Person();
        ObjectMapper mapper = new ObjectMapper();
        StringWriter sw = new StringWriter();
    
        try{
            mapper.writeValue(sw, personPOJOInstance);
            pojoJSON = sw.getBuffer().toString();
        }
        catch(IOException exc){
    
        }
        return pojoJSON;
    }
    

    如果您使用 Spring MVC 控制器并使用以下 @RequestMapping 注释标记您的控制器方法,您甚至不必担心这样做,如下所示:

    @RequestMapping(method= RequestMethod.GET, produces = "application/json", value="/path/to/controller/method")
    public @ResponseBody getPerson(){
        return new Person();
    }
    

    最后,你的主干模型很简单:

    var Person = Backbone.Model.extend({
        url: '/path/to/controller/method'
    });
    

    您不需要在 Backbone 模型上指定任何默认属性,尽管这样做可能是个好主意。

    现在,当您获取模型时,您可以访问来自 Backbone 模型上原始 POJO 的任何属性,如下所示:

    //instantiate and fetch your model.
    var person = new Person();
    person.fetch();
    ...
    //access properties on your model.
    var name = person.get('name');
    

    【讨论】:

      【解决方案2】:

      在 github 中有一个很有前途的项目,它有望做到这一点:

      https://github.com/juhasipo/JMobster

      【讨论】:

      • 不久前我从 Backbone 切换到了 AngularJS,但还是谢谢你 :)
      猜你喜欢
      • 1970-01-01
      • 2018-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-01
      • 2013-04-26
      相关资源
      最近更新 更多