2012-09-22 3 views

답변

4

Scalatra는 이러한 복잡한 기능을 제공하지 않습니다. 구현이 어려우므로의 복잡성은 함께 연주하는 당사자의 수에 따라 달라집니다.

우선 도메인의 개체를 나타내려면 Model이 필요하고 Scalatra는 기본적으로 모델 라이브러리를 제공하지 않습니다. 그런 다음이 모델을 런타임에서 사용하여 HTTP 요청에 설정된 임의의 문자열을 일부 모델의 인스턴스로 변환합니다.

  • 요청이 GET이고 user.id 같은 파라미터를 지정하는 경우, 예를 들어

    바인딩 소프트웨어는 ID가 데이터베이스에서 발견 User 타입의 객체에 문자열로 변환한다.
  • 가 요청하는 POST입니다 user.name, user.passworduser.birthday 같은 세 개의 매개 변수를 지정하고 user.id 지정하지 않는 경우, 런타임은 간단한 User.save()으로 DB에 넣어 될 준비가 유형 User의 객체를 구축 - 어떤 경우 User 클래스
  • 지정된 요구가 PUT (또는 등가 Scalatra의 문서에서 설명)과 먼저 User이 ID에 의해 검색된다 user.id 포함 user.birthday 후 그 생일이면, 검증을 통과한다면 구비 업데이트되고 마지막으로 사용 가능하게됩니다. 컨트롤러 O를 준비 User.save()

당신이 볼 수 있듯이, 이것은 런타임에 모델 라이브러리, 바인딩 도서관, 접착제의 지원을 필요로 호출합니다.

HTML 양식을 생성하려면 모델을 검사하고 HTML 비트를 출력 할 수있는 도우미 라이브러리가 필요합니다. 예를 들어, 라이브러리는 출력

, 입력의 이름으로 <model>.<property>을 사용하는 규칙에 따라,의 User 클래스를 검사는 세 개의 public 필드 name, passwordbirthday을 가지고 있음을 감지하고
<form action="$$$$" method="$$$$"> 
    <input name="user.name" /> 
    <input name="user.password" /> 
    <input name="user.birthday" /> 
    <input type="submit" /> 
</form> 

참고

일부 문맥
  • 이 같은 명명 규칙이를 역 직렬화하는 바인딩 라이브러리에 의해 사용되어야합니다 (예 : 경로에 대한) 배운 후
    • URL과 메소드는 채워질 수있다 당신은 모든 조각을 조립 한 후에는이 양식에 의해 제출 된객체는

    , 당신은 너무 Scalatra 같은 작은, 편안하고 소프트웨어를 사용의 점은 무엇입니까, MVC 프레임 워크를 만들었 등?

  • 관련 문제