2012-03-29 6 views
0

Ich habe eine Route wie folgt definiert:Play 2.0 Routing funktioniert nicht mit lang?

GET  /question/:q_id    controllers.Questions.viewQuestion(q_id: Long) 

Da ist in meinem Controller Ich habe dies:

public static Result viewQuestion(long q_id) { 
    System.out.println("made it here"); 
    return ok(ViewQuestion.render(Question.findById(q_id))); 
} 

Allerdings habe ich die println nie wird aufgerufen und eine völlig leere Seite serviert wird. Irgendwelche Hinweise, was passieren könnte?

+0

Was, wenn Sie die 'Controller entfernen passiert. 'Teil der Route? –

+1

Actuully Ich glaube, ich habe gerade behoben, es war ein Scala -> Java-Problem, als ich die Argumente in 'viewQuestion()' Form 'Long' zu' Long' änderte es begann zu arbeiten. – wbarksdale

Antwort

3

Der Fehler scheint auf eine Konvertierung zwischen dem Scala Long Typ und dem Java long Typ zurückzuführen zu sein.

ich dieses Problem behoben durch meine viewQuestion() -Methode verketten:

public static Result viewQuestion(Long q_id) { 
    long id = (long) q_id; 
    //do stuff with id 
    ... 
} 

Ich glaube, ich brauche mehr darüber zu erfahren, wie Scala und Java interagieren ...

+0

Ich glaube nicht, dass Scala das primitive long als Java verwendet, sondern stattdessen die Klasse Long verwendet. Deshalb hat Ihre Konvertierung nicht funktioniert. –