玩!框架。如何获取JPA对象中的字段子集并在模板中处理它

时间:2012-07-06 10:53:58

标签: javascript ajax json playframework playframework-2.0

我正在尝试仅检索我的JPA对象的一部分属性,以便在我的Play中使用!模板。

这是我的控制器应用程序:

public static List<Object> all2D() {
    EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("defaultPersistenceUnit");
    EntityManager entityManager = entityManagerFactory.createEntityManager();

    TypedQuery<Object> query = entityManager.createQuery("SELECT title, unitPrice FROM Item i", Object.class);
    return query.getResultList();
}

这是我之前使用的代码,用于从JPA对象中获取每个字段,称为Item

<script type="text/javascript">

$(function(){
    get_itemz();       
});

var get_itemz = function() {       
    $.ajax({
        url: '@routes.Application.getJson()',
        processData:false,
        type: 'GET',
        beforeSend:function(jqXHR, settings){                   
            jqXHR.setRequestHeader("Content-Type", "application/json");                 
        },
        success: function(data, textStatus, jqXHR){                 
            process_itemz(data);   
        },
        error: function(jqXHR, textStatus, errorThrown){                
        },
        complete: function(jqXHR,textStatus){                   
        }   
    });
};

var process_itemz = function(itemz){      
    var contentDiv=$("div#content");
    contentDiv.append("<ul>");            
    $.each(itemz,function(i,item){
        contentDiv.append("<li>" + item.name + "</li>");
    });
    contentDiv.append("</ul>");                 
};
</script>

我如何转换javascript以处理对象列表并打印名称和unitPrice?

1 个答案:

答案 0 :(得分:0)

我知道您要求使用Javascript,但如果Javascript不是强制性的,则使用scala.html的替代方法可能大致如下。

由于您已经生成了列表,因此只需将其传递给您的模板。

@(objects: List[Object])

然后,因为您只想打印名称和单价,只需遍历列表并输出您的字段。

@for(event <- eventsList){
     object.name object.unitPrice    
}

你也可以在表格中使用for循环,但这应该或多或少地完成你想要做的只是简单地引用模板中的元素。