2

상호 의존적 인 양식이있는 struts2 프로젝트에서 작업 중입니다.struts2 대화 및 유효성 검사

  • 컨트롤러가 그것은 보유
  • struts.xml에 매핑됩니다 : 나는 (내가 뭔가 잘못있어 경우에 저를 수정하시기 바랍니다), struts2-대화를 발견 자신의 simple-example 을 강화하고 여기까지 대화 메커니즘을 이해 직렬화 ConversationContext 및 보관 서비스는 ConversationContext가

규칙 이름을 지정하여 형태에 매핑 POJO를 보유

  • 지금 내 질문은 유효을 어디에 넣어됩니다 ation?

    컨트롤러는 ConversationSupport를 확장하는 컨트롤러 중 하나이므로 ActionSupport는 validate, prepare 및 addField-& ActionError 메서드를 제공합니다. 그러나 컨트롤러 내에서 유효성 검사를하는 것은 전체 컨텍스트를 확인하는 것이므로 실제로 문제를 해결하지는 못합니다.

    위에서 설명한 것처럼 컨텍스트 내에서 POJO 내에서 주석을 통해 유효성 검사를 시도했는데, 이는 컨텍스트가 플러시되지 않은 것처럼 일부 NullPointerException을 제공하고 struts2의 XML 유효성 검사 접근법이 너무 엄격하다고 생각합니다. (btw 생성 된 자바 스크립트를 제공하기 전에 어떻게 축소시킬 수 있습니까?) 그리고 많은 옵션이있는 이유는 무엇입니까?

    마크의 대화 인터셉터 접근 방식은 내가 실제로 얻지 못한 해결 방법 인 similar problems이 있습니다. 어쩌면 당신이 저를 도울 수 있습니다.

  • 답변

    1

    모델 클래스에서 특수 효과를 사용하려는 경우 다른 유효성 검사 방식과 마찬가지로 플러그인에서 올바르게 작동합니다.

    모델의 유효성을 검사하려면 컨트롤러의 getModel() 메서드에 @VisitorFieldValidator을 추가하십시오. 예제 응용 프로그램에서을 getContact()getPreferences() 메쏘드에 추가하십시오. 그런 다음 유효성을 검사하려는 필드에 validation annotations을 사용할 수 있습니다.

    이 예제의 서비스는 Struts2 컨트롤러에서 주입 서비스를 사용하는 간단한 예제와 대화 프레임 워크와 쉽게 통합 할 수있는 방법이 있지만 직접 관련되거나 필요하지는 않습니다. 현실 세계에서 의존성 주입을 위해 Spring, Guice 또는 CDI).

    ConversationContext 클래스는 주로 프레임 워크에서 내부 용으로 사용됩니다. 어노테이션 및 규칙을 사용하여 상호 작용을 피할 수 있어야합니다. 단순히 모험심이되기를 원하지 않는 한.

    예제 응용 프로그램에서 XML 유효성 검사를 사용하려면 Struts2 리소스로드 도구에서 XML을로드하려면 패키지 이름을 변경하여 "struts2"단어를 제거해야합니다.

    +0

    +1 좋은 설명, 나는 당신이 이것에 대답 할 것을 기대 했었습니다 : –

    +0

    이전 질문 그러나 나는 모든 항아리에 FieldVisitorValidator를 찾을 수 없습니다! –

    +0

    @AlirezaFattahi 내 사과, 그건 오타로 보일 수 있습니다. 복사/붙여 넣기를 사용해야합니다! 그것은'@ VisitorFieldValidator'라고 말해야합니다. 감사! – rees

    관련 문제