2017-02-23 4 views
2

Ich bin Anfänger, Framework zu spielen. Beim Versuch, HTML-Vorlage mit dem Spiel zu generieren, bekomme ich den Fehler illegalen Start des einfachen Muster an der Linie ticket.getTicketIds. Ich habe irgendwann versucht, das Problem zu lösen, aber nichts Gutes.illegaler Start von einfachen Muster - Spiel-Framework

<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> 

Die folgenden POJOs verwendet, um die erforderlichen Werte zu erhalten

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 
} 

Die obj im Template Teil dargestellt wird, ist eine Aufgabe Wrapper Klasse

+0

'ticket.getTicketIds' zeigt ein paar Mal. Welcher? – Rumid

+0

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

+0

Sie repräsentieren String-Werte. – user3673985

Antwort

1

Nur um es zu kompilieren:

  1. Wie @ rouge-one erwähnt, können Sie verschiedene Variablennamen verwenden, z. Wert.

  2. Sie sollten nicht mehrere @ Zeichen verwenden. Wie docs sagt, sollte es am Anfang einer dynamischen Anweisung verwendet werden, z. @for(ticket <- obj.getPurchasedTickets()) {

    so die Arbeits Code sollte wie folgt aussehen:

    <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

Danke. Es funktioniert :) – user3673985

0

Ändern Sie den Attributnamen von val bis value in Zeile 3 Ihrer Vorlage seit val ist ein reserviertes Wort.

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

zum Beispiel siehe unten

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

scala> val (Schlüssel, Wert) = "key1" -> "val1" key: String = Schlüssel1 Wert: String = val1

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

Versucht, aber das Problem bleibt – user3673985

+0

@ user3673985 haben Sie überprüft, ob es andere Instanzen von val oder ähnliche Keyword-Missbrauch gibt. Versuchen Sie, das Ziel zu bereinigen und neu zu kompilieren.wie im Beispiel gezeigt das ist, wie wir "illegaler Anfang des einfachen Musters" bekommen –

+0

Versucht das auch, aber immer noch beharrlich :( – user3673985

Verwandte Themen