2014-09-03 1 views
0

방금 ​​플레이 프레임 워크를 시도하고 템플릿 play-java-intro을 사용하여 샘플 애플리케이션을 실행했습니다.그냥 플레이 프레임 워크를 시도, 제출 된 양식의 값이 null입니다

응용 프로그램의 색인 페이지는 "이름"텍스트 상자와 제출 단추로 구성됩니다. 제출 버튼을 클릭하면 텍스트 상자의 "이름"값이 "사람"테이블에 저장됩니다 (데이터베이스는 H2를 사용 중입니다). 그러나 "Name"값을 컨트롤러로 보내지 못했습니다. 컨트롤러에서 Null 값으로 반환되었습니다.

enter image description here 모델 : Person.java

@Entity 
public class Person extends Model { 

    @Id 
    public String id; 

    public String name; 
} 

보기 : index.scala.html

@() 

@main("Welcome to Play") { 
    <script type='text/javascript' src='@routes.Assets.at("javascripts/index.js")'></script> 

    <ul id="persons"></ul> 

    <form method="POST" action="@routes.Application.addPerson()"> 
     <input type="text" name="name" /> 
     <button>Add Person</button> 
    </form> 
} 

감사관 : Application.java

public class Application extends Controller { 

    public static Result index() { 
     return ok(index.render()); 
    } 

    public static Result addPerson() { 
     //The person.name is null here 
     Person person = Form.form(Person.class).bindFromRequest().get(); 
     person.save(); 
     return redirect(routes.Application.index()); 
    } 

    ... 
} 

컨트롤러에서 "Add Person (사용자 추가)"버튼을 클릭하면 addPerson 함수가 호출됩니다. person 개체는 Form.form(Person.class).bindFromRequest().get();에서 반환됩니다. 문제는 반환 된 person 개체의 name 속성이 null 인 것입니다.

누구나 코드에 어떤 문제가 있는지 알고 계십니까?

+0

'Person'을 다시보기로 전달합니까? – kingdamian42

+0

나는 당신이 무엇을 의미하는지 정말로 이해하지 못한다. 코드는 원래 그대로이고 나는 그 부분을 바꾸지 않았다. 이클립스에서 디버거로 확인한 결과,'Person.name'은 null입니다. – null

+0

저는 과거에 스칼라 연극에서만 작업 했으므로 여기서 추억을 남깁니다. 입력 이름'Person.name'을 만들려고 했습니까? 또한 어떤 버전의 게임을 사용하고 있습니까? 2.x.x? – kingdamian42

답변

0

방금 ​​찾은이 answer.

Eclipse의 자동 빌드가 바이트 코드 생성을 방해한다는 것이 밝혀졌습니다. 이클립스에서

  • 이 취소 :

    는 그래서 내가 엉망 정리 한 것입니다 프로젝트 - 입력, 프로젝트 폴더에 자동으로 활성 콘솔에서

  • > 빌드 명령 : 청소를
  • 명령 입력 :
  • 명령 입력 : 실행
+0

IntelliJ를 사용하면서도 여전히이 문제에 직면 해 있습니다! 가능한 모든 수정? – theblackpearl

관련 문제