양식의 일부로 사용되는 사용자 지정 구성 요소에 액세스하는 데 문제가 있습니다.Tapestry 5 양식의 사용자 지정 구성 요소 - 유효성 검사 중 액세스
여기에 이야기가 있습니다. 나는 몇 가지 작동 모드가있는 동적 인 형식이 있습니다. 각 모드는 AJAX로 폼 바디에 선택되고로드 될 수 있습니다. 그 모양 (템플릿) 같습니다 :
AJAX 꽤 잘 작동하고 양식을 따라서 "modeSelect"상태를 변경합니다. 그러나 양식을 제출할 때 문제가 발생합니다. 나는 클래스 정의에 다음과 같이 배치 된 구성 요소에 대한 후크가 있습니다.
//----form elements
@Component(id = "form")
private Form form;
@InjectComponent
private CompanyMode company;
@InjectComponent
private PersonalMode personal;
@InjectComponent
private MultiMode multi;
여기서 * 모드 클래스는 양식 요소와 입력 구성 요소가 포함 된 내 자신의 구성 요소입니다. 유효성 검사를하는 동안 그들에게 액세스 할 수 및 양식을 사용자가 제공 한 값을 확인하려면 계획했지만 nullPointerException있어 그들로부터 아무것도 도달하려고 할 때 - 그 구성 요소가 폼의 클래스 정의에서 초기화되지 않은 것 같습니다. 반면에 양식 구성 요소가 올바르게 주입됩니다 (예를 들어 약간의 오류를 작성할 수 있습니다). 나는 지금 조금 잃어버린다. 양식이 포함 된 클래스 페이지에 구성 요소를 제대로 삽입하는 방법은 무엇입니까? 태피스트리 가이드에서
힌트를 보내 주셔서 감사합니다. 일부 서버 측 조건이 완료된 FormFragment. AJAX에 의해 폼을 다시로드하는 것은 구조가 복잡하지 않은 한 괜찮습니다. 다행히도 양식에 아무 것도 삽입 할 필요가 없습니다. 언급 한 FormFragment를 사용하여 모든 것을 한 번에 넣고 가시성을 제어 할 수 있습니다. 다시 한 번 감사드립니다. 내 하루를 저장했습니다.) – joorva
예, 새로운 양식과 함께 새'''t : formdata''' 값을 얻을 수 있기 때문에 전체 양식을 다시로드하는 것이 좋습니다. HTML 소스를 보시면보실 수 있습니다. –
음, 나는 AJAX에서 부분 만 다시로드하는 데 성공하지만 여전히 구조를 동일하게 유지했습니다. 어쨌든 나는 내가 필요로하는 것을 가지고 있으며, 왜 지금은 효과가 있고, 왜 더 일찍부터하지 않았는지를 다소 이해합니다. 감사. – joorva