2017-02-23 494 views
2

Я новичок, чтобы играть в рамки. При попытке создания html-шаблона с игрой я получаю ошибку незаконный запуск простого шаблона на линии ticket.getTicketIds. Проводили какое-то время, пытаясь решить проблему, но ничего хорошего.Незаконный старт простого рисунка - игровой фрейм

<tbody> 
    @for(ticket <- @obj.getPurchasedTickets()) { 
     @for((key,val) <- @obj.getTicketsCalculation()) { 
     @if(key.equals(ticket.getTicketId())) { 
      <tr> 
      <td class="desc">@ticket.getTicketName()<br></br> 
      @if(ticket.getTicketIds() != null && !ticket.getTicketIds().isEmpty()) { 
       @for(ticketid <- ticket.getTicketIds){ 
        #@ticketid 
       } 
      } 
      </td> 
      <td class="unit">@ticket.getPrice()</td> 
      </tr> 
      } 
     } 
    } 
</tbody> 

Следующие POJOs используются для получения необходимых значений

public class PurchasedTicket { 

    private String ticketId; // represents the ticket's id 
    private String ticketName; 
    private Integer numberOfTickets; 
    private Double price; 
    private List<String> ticketIds; // list of tickets bought with this ticket 

    // setters and getters 

}

public class Wrapper{ 

    private Map ticketsCalculation; 
    private List<PurchasedTicket> purchasedTickets; 

    // setters and getters 
} 

Объект сос представлены в матричной части является объектом Упаковочный класс

+0

'ticket.getTicketIds' показывает пару раз. Который из? – Rumid

+0

The one in @for (ticketid <- ticket.getTicketIds) { # @ ticketid } – user3673985

+0

Они представляют собой строковые значения. – user3673985

ответ

1

Просто, чтобы сделать его компиляции:

  1. Как упоминалось выше, вы можете использовать другое имя переменной, например. стоимость.

  2. Нельзя использовать несколько знаков @. Как указывает docs, он должен использоваться в начале динамического оператора, например. @for(ticket <- obj.getPurchasedTickets()) {

    поэтому рабочий код должен выглядеть следующим образом:

    <tbody> 
        @for(ticket <- obj.getPurchasedTickets()) { 
         @for((key, value) <- obj.getTicketsCalculation()) { 
          @if(key.equals(ticket.getTicketId())) { 
           <tr> 
            <td class="desc">@ticket.getTicketName()<br></br> 
             @if(ticket.getTicketIds() != null && !ticket.getTicketIds().isEmpty()) { 
              @for(ticketid <- ticket.getTicketIds){ 
               #@ticketid 
              } 
             } 
            </td> 
            <td class="unit">@ticket.getPrice()</td> 
           </tr> 
          } 
         } 
        } 
    </tbody> 
    
+0

Спасибо. Это работает :) – user3673985

0

изменить имя атрибута от val до value в строке 3 вашего шаблона с val является зарезервированным словом.

(key,value) <- @obj.getTicketsCalculation() 

, например, смотри ниже

scala> val (key, value) = "key1" -> "val1" 
key: String = key1 
value: String = val1 

Скале> вал (ключ, значение) = "ключ1" -> "VAL1" ключ: String = ключ1 значение: String = знач1

scala> val (key, val) = "key1" -> "val1" 
<console>:1: error: illegal start of simple pattern 
val (key, val) = "key1" -> "val1" 
     ^
+0

Пробовал, но проблема не устранена – user3673985

+0

@ user3673985 Вы ​​проверили, есть ли другие примеры использования val или аналогичного ключевого слова. попробуйте очистить цель и перекомпилировать с нуля.как показано в примере, как мы получаем «незаконный старт простого шаблона» –

+0

Пробовали те же, но все еще выдают :( – user3673985