2012-12-30 5 views
1

나의 실체는 다음과 같습니다되어 userShoppingList, 제품 및 카테고리를 다음과 같이재생이 템플릿은

package models; 

import java.util.*; 

import play.db.ebean.*; 
import play.data.validation.Validation; 
import play.data.validation.Constraints.*; 

import javax.persistence.*; 

import com.avaje.ebean.Ebean; 

/** 
* Entity managed by Ebean 
*/ 


@Entity 
public class UserShoppingList extends Model{ 

     @Id 
     public Long id; 

     @Required 
     public String listName; 

     @ManyToOne 
     public User user; 

     @ManyToMany 
     public List<Product> products = new ArrayList<Product>(); 

     //getters and setters 

//(I have included them, not shown here) 

package models; 

import java.util.*; 

import play.db.ebean.*; 
import play.data.validation.Constraints.*; 
import javax.persistence.*; 

/** 
* Product entity managed by Ebean 
*/ 

@Entity 
public class Product extends Model{ 
    @Id 
    public Long Id; 

    @ManyToOne 
    public Category category; 

    @Required 
    public String brandName; 

    @Required 
    public String productName; 


    // -- Queries 

    public static Model.Finder<Long,Product> find = new Model.Finder(Long.class, Product.class); 

package models; 

import java.util.List; 

import javax.persistence.*; 

import play.db.ebean.*; 
import play.data.validation.*; 
import play.db.jpa.*; 

/** 
* Category entity managed by JPA 
*/ 
@Entity 

public class Category { 
    @Id 
    public Long id; 


    @Constraints.Required 
    public String categoryName; 

    // --getters and setters 

내 템플릿 :

@(shoppinglist: List[models.Product], categorylist: List[Category], 
userShoppingListsForm: Form[models.UserShoppingList]) 

@import helper._ 


@main("Shopping list products") { 

    var productlist = shoppinglist.getProducts() 

    <h1>Shopping List</h1> 


    @for(c <- categorylist){ 

    <ul> 

      <li class = "categoryrow">@categorylist.getCategoryName()</li> 



      @for(p <- productlist) { 


      <ul> 
       <li class="productcolumn"> 
        @p.getBrandName() 
       </li> 

       <li class="productcolumn"> 
        @p.getProductName() 
       </li>    

       <li class="command"> 
        id = @p.getId()! 
        @form(routes.ShoppingLists.deleteProduct(id)) { 
        <input type="submit" value="Delete"> 
        } 
       </li> 

      </ul> 

      } 



     </ul> 

     } 



     <h2>Add a product to list</h2> 

     @form(routes.ShoppingLists.newUserShoppingList()) { 

      @inputText(userShoppingListsForm("listName")) 

      <input type="submit" value="Create"> 

     } 



} 

나는 다음과 같은 오류가 점점 오전 :

value getCategoryName is not a member of java.util.List[models.Category]

누가 내게 더 나은 방법은 자바 기반 플레이 2 프레임 워크에 대한 액세스 권한을 템플릿을 만들 제안 할 수 있습니다 y membefrs는 목록 자체입니다 (예 : "UserShoppingList"의 제품은?

도움을 주시면 대단히 감사하겠습니다. 감사 만

+0

하는 후속 물어는 - 질문, 당신은 답변 아래에 코멘트로 추가하고 원래 질문으로 편집해야합니다. 감사! – irrelephant

답변

0

당신은 목록 요소에 대한 게터를 사용할 수 있지만 전체 List

에 사용하려는 아마이 잘 솔루션입니다 :

<li class = "categoryrow">@c.getCategoryName()</li> 
+0

많은 감사. 내 주요 문제는 서식 파일에서 형식 목록의 엔터티 멤버에 액세스하는 것입니다. 코드 @for (p <- productlist) {오류 표시 : 찾을 수 없음 : value productlist를 참조하십시오. 템플릿에서 "\t var productlist = shoppinglist.getProducts()"로 정의했습니다. – user1938501