2013-01-21 3 views
2

DynamicForm을 추출 :

new DynamicForm().bindFromRequest() 

을 그리고 난이 오류 :

Caused by: java.lang.RuntimeException: There is no HTTP Context available from here. 
    at play.mvc.Http$Context.current(Http.java:27) ~[play_2.9.1.jar:2.0.4] 
    at play.mvc.Controller.request(Controller.java:28) ~[play_2.9.1.jar:2.0.4] 
    at play.data.Form.requestData(Form.java:87) ~[play_2.9.1.jar:2.0.4] 
    at play.data.DynamicForm.bindFromRequest(DynamicForm.java:46) ~[play_2.9.1.jar:2.0.4] 
    at controllers.Login$$anonfun$login$1.apply(Login.scala:19) ~[classes/:2.0.4] 
    at controllers.Login$$anonfun$login$1.apply(Login.scala:18) ~[classes/:2.0.4] 

나는 그것이 작동하는 매핑 정상 양식을 PARAMS을 결합하려고하면 는 :

val form = Form(
    tuple(
     "identity" -> nonEmptyText, 
     "password" -> nonEmptyText, 
     "loginType" -> nonEmptyText 
    ) 
) 
    form.bindFromRequest 

이 내 로그인 아약스 게시물에 대한 좋다. 하지만 다른 아약스 게시물에 대해서는 여전히 DynamicForm을 사용하고 Map [String, String]을 사용하고 싶습니다. 어떤 생각이 어떤 문제입니까?

답변

1

내 개발팀과 나는 같은 문제가 있었다. 이 경우 우리는 Java를 사용하여 java.util 콜렉션 패키지와 다음 코드 행을 사용하여 요청 매개 변수를 맵에 바인딩합니다.

final Map<String, String[]> myForm = request().body().asFormUrlEncoded(); 

스칼라에 대해서는 잘 모르겠지만 스칼라에서 자바 컬렉션을 사용하는 방법이 있다고 생각합니다.

+0

답장을 보내 주셔서 감사합니다. 코드는 오랫동안 변경되어 더 이상 DynamicForm이 필요하지 않습니다. 나는 그것을 검증 할 수는 없지만 선의로 대답을 받아 들일 것입니다. – samz

관련 문제