2012-07-11 4 views
0

Play 2.0.2 (Play 2.0.1)로 업그레이드하려고하는 앱이 있습니다. 이 메일 링리스트에 발견되었으며, 한 사용자가 fixed the problem있다Play 2.0.2에서 javascriptRouter 사용

[error] /myprojectdir/target/scala-2.9.1/src_managed/main/views/html/Contacts/list.template.scala:75: Cannot find any HTTP Request Header here 
[error] """),_display_(Seq[Any](/*41.2*/javascriptRouter("jsRoutes")(
[error]               ^
[error] one error found 
[error] {file:/myprojectdir/}projectname/compile:compile: Compilation failed 
[error] Total time: 9 s, completed 11.07.2012 11:38:51 

: 나는 플레이 2.0.1에 근무하지만, 컴파일러는 불평을 더 이상

@javascriptRouter("jsRoutes")(
routes.javascript.Contacts.invite, 
routes.javascript.Contacts.remove 
) 

을하지 않는이 코드 조각이있다. 전달해야 할 암시 적 매개 변수가 있다는 것을 알았지 만이를 수행하는 방법을 모릅니다. 내가 추가 노력 (?)이 내 템플릿에 언급 된 example file에 따라, 기본적으로 (

@(currentUser: User, inviteForm: Form[controllers.Contacts.InviteForm])(implicit request: RequestHeader) 

@(currentUser: User, inviteForm: Form[controllers.Contacts.InviteForm]) 

에서 내 템플릿을 첫 번째 라인을 변경하지만이 템플릿의 유형 서명을 변경하는 것 ?). 그것은 내가 무엇을하고 싶은지 전혀 모른다.

제안 사항? (?)가있는 것은 모두 내가 확신 할 수없는 것들입니다. 이전에 스칼라에서 암시 적 변환을 수행 한 적이 있었지만, 여기에서 내가 무엇을 기대하는지, 스칼라를 만들거나 실수를 저 지르는지는 확실하지 않습니다.

편집 : the bugtracker에 해당 티켓이 있습니다.

답변

1

귀하가해야 할 일입니다. 당신이 자바 자바 스크립트 라우팅 방법을 사용해야합니다 자바 컨트롤러를 사용하는 경우 컨트롤러에 간단히

def foo() = Action { 
    ... 
    Ok(views.html.contact.list()) 
} 

에서

def foo() = Action { implicit request => 
    ... 
    Ok(views.html.contact.list()) 
} 
+0

보기에서 무엇을 할 수 있습니까? Java 컨트롤러를 사용하고 있으므로 암묵적인 작업을 수행하면 작동하지 않습니다. – msung

0

으로 업데이트 할 수 있습니다. 참조 this part of the java guide

두 언어를 모두 사용하는 것은 좋지만 라우팅의 경우 컨트롤러의 언어 스타일을 고수해야합니다. 또 다른 옵션은 별도의 scala 컨트롤러를 작성하고 해당 메소드를 호출하는 것입니다.

관련 문제