2.3.x에서 2.5.12로 Struts를 업그레이드했는데 (2.5.13에서도 마찬가지 임) 나는이 업그레이드 후에 유효성 검사는 일어나지 않습니다.Struts 2.5.12/2.5.13 - struts를 업그레이드 한 후 유효성 검사가 작동을 멈췄습니다.
나는 JSP에 있습니다
<s:form action="details">
<s:textfield name="fullName" size="20" label="full.name" requiredLabel="true" />
<s:checkbox id="terms" name="terms" requiredLabel="true" />
<s:submit name="submit" id="submit" value="Submit" />
</s:form>
액션 이름 TestStrutsAction.java
입니다. 내가 디버깅을 시도하고 나는 액션 클래스의 validate
방법의 모든 필드 오류가 표시되지 않습니다
@Override
public void validate() {
super.validate();
LOG.debug(getFieldErrors());
}
: 나는 나의 행동 클래스에서 유효성 검사를 오버라이드 (override) 한
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
<field name="fullName">
<field-validator type="requiredstring">
<message key="fullname.error"/>
</field-validator>
<field-validator type="regex">
<param name="expression"><![CDATA[^[0-9A-Za-z&\-./\s]*$]]></param>
<message key="fullname.invalid"/>
</field-validator>
</field>
<field name="terms">
<field-validator type="fieldexpression">
<param name="expression">terms eq true</param>
<message key="terms.error"/>
</field-validator>
</field>
</validators>
:처럼 내 검증 XML TestStrutsAction-validation.xml
보인다.
누구든지 업그레이드 후에이 문제가 발생하는 이유를 알고 있습니까? 감사합니다.
* 액션 클래스 *의 validate 메소드의 모든 필드 오류가 표시되지있을 수 있습니다 누군가 도움이 될 수 있습니다 - 당신이 무엇을 의미합니까를? 입력 결과로 이동합니까? –
안녕하세요 @AleksandrM, 오류를 기록하기 위해 내 액션 클래스에서'validate' 메소드를 오버라이드했습니다. jsp 페이지에서 제출할 때 컨트롤이 메서드의 유효성을 검사 할 때 표시되지만 필드 오류가 추가되지 않는다는 것을 알았습니다. 내 질문에'validate' 메소드를 추가하도록 업데이트했습니다. 귀하의 회신에 감사드립니다. – Prasann
[내 대답] (https://stackoverflow.com/a/18504177/573032)에서 보면 유효성 검사 방법이 인터셉터 바로 다음에오고 오류없이 유효성 검사를하면 어떤 필드 오류가 발생했는지 알 수 있습니다. –