2012-07-04 5 views
0

Struts2 유효성 검사 도구를 사용하여 양식의 유효성을 검사하려고하는데 xml 유효성 검사기가 인식되지 않아 작동하지 않는 것 같습니다.Struts2 유효성 검사가 작동하지 않습니다.

여기 내 코드입니다 :

struts.xml :

<interceptors> 
    <interceptor name="login_interceptor" class="org.apache.struts.gesprod.produccion.BLLogin"> 
    </interceptor> 
    <interceptor-stack name="login_stack"> 
     <interceptor-ref name="login_interceptor" /> 
     <interceptor-ref name="defaultStack" /> 
    </interceptor-stack> 
</interceptors> 

<default-interceptor-ref name="login_stack"></default-interceptor-ref> 

<global-results> 
    <result name="input">/errores/error_input.jsp</result> 
    <result name="error_sql">/errores/error_sql.jsp</result> 
    <result name="no_logged">/login.jsp</result> 
</global-results> 
... 
<action name="login" class="org.apache.struts.gesprod.produccion.BLUsuario" method="loginUsuario"> 
    <result name="success" type="redirect">/welcome.jsp</result> 
    <result name="incorrecto_login">/login.jsp</result> 
    <result name="input">/login.jsp</result> 
</action> 

의 login.jsp :

<div id="login"> 
    <s:fielderror /> 
    <s:form id="login_form" action="login" validate="true"> 
     <s:hidden name="intento_log" value="true" /> 
     <s:textfield name="usuario.username_usuario" label="Usuario"/> 
     <s:password name="usuario.password_usuario" label="Password"/> 
     <s:submit value="Ingresar"/> 
    </s:form> 
</div> 

그리고 Action 클래스와 같은 패키지에 배치 XML 유효성 검사기.

BLUsuario-로그인-validation.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE validators PUBLIC 
    "-//OpenSymphony Group//XWork Validator 1.0.2//EN" 
    "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> 
<validators> 
    <field name="usuario.username_usuario"> 
     <field-validator type="requiredstring"> 
      <message>Show error!</message> 
     </field-validator> 
    </field> 
</validators> 

내 코드에 문제가 있다면 누군가의 도움과 통지 할 수 있습니까?

+0

글쎄, 나는 "입력"결과가 전역으로 매핑되어 있음을 알게되었습니다. 이것은 귀하의 문제의 일부일 수 있습니다. 유효성 검사가 실행되고 실패하면 입력 결과를 반환합니다. 따라서 login.jsp에 필드 오류를 표시하려면 입력 작업을 위해 입력 결과를 해당 JSP에 맵핑해야합니다. – rees

+0

@rees 감사합니다. 나는 당신이 제안한 바를 행했으며, 당연시해야한다고 생각합니다. 그러나 필드가 잘못되어도 "입력"결과가 반환되지 않는 것처럼 여전히 유효성 검사를 수행하지 않습니다. –

답변

0

문제는 XML 유효성 검사기의 이름에 있다고 생각합니다. 검사기 이름을 login-validation.xml으로 바꿔야합니다. 당신이 당신의 XML 유효성 검사기 파일을 넣을 수 있습니다 이름은 다음과 같습니다

유효성 검사 규칙을 지정할 수 있습니다 Action 클래스 당

: 파일에 이름 ActionName-validation.xml

당에게 동작 별칭 : ActionName-alias-validation.xml 파일의

작업 클래스에 의해 구현 된 상속 계층 구조 및 인터페이스 : XWork는 액션의 부모 클래스에 대한 기본 검증을 찾기 위해 행동의 상속 트리를 검색하고 인터페이스는

을 구현 당신은 여기에서 자세한 내용을 볼 수 있습니다 http://struts.apache.org/2.0.12/docs/validation.html#Validation-DefiningValidationRules

PD를 : 당신은 "은"고 말했다 입력 "결과가 필드가 틀린 경우에도 반환되지 않습니다". 다른 필드를 지정하지 않으면 필드 오류가 있으면 입력 결과가 반환됩니다.

+0

나는 사용자 정의 유효성 검사에서 지정한 것과 관련하여 필드가 틀린 경우 입력 결과가 반환되지 않는다는 것을 의미했습니다. 예를 들어 int가있는 String을 넣으면 결과는 'Input'입니다. –

+0

많은 도움을 주셔서 감사하지만 그 중 하나가 작동하지 않았다. 유효성 검사 요격기를 디버그 할 수있는 방법이 있습니까? –

+0

잘 모르겠습니다. 지금 가지고있는 것을 가지고 질문을 편집 할 수 있습니까? 간단한 테마를 사용하고 있습니까? jsp에''태그를 넣으면 오류가 발생합니까? 당신은 어떤 요격기를 선언 했습니까? – Pigueiras

관련 문제