0

Struts2 バリデーター ツールを使用してフォームを検証しようとしていますが、どうやら xml バリデーターが認識されないため、うまくいかないようです。

これが私のコードです:

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-login-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>

私のコードに何か問題がある場合、誰かが助けて気づくことができますか?

4

1 に答える 1

0

問題はxmlバリデーターの名前にあると思います。バリデーターの名前をlogin-validation.xml. xml バリデータ ファイルに付けることができる名前は次のとおりです。

検証規則を指定できます。

Action クラスごと: ActionName-validation.xml という名前のファイル内

アクションごとの別名: ActionName-alias-validation.xml という名前のファイル内

Action クラスによって実装される継承階層とインターフェース: XWork は、アクションの継承ツリーを検索して、Action の親クラスと実装されたインターフェースのデフォルトの検証を見つけます。

詳細はこちら: http://struts.apache.org/2.0.12/docs/validation.html#Validation-DefiningValidationRules

PD: 「フィールドが間違っていても、「入力」の結果は返されない」とおっしゃいました。フィールドエラーがあれば入力結果を返します(特に指定しない限り)。

于 2012-07-04T18:09:52.493 に答える