0

XMLを使用したStruts2検証を使用して、顧客が入力したさまざまなフィールドをチェックしようとしています。私のstruts.xmlextends struts-default、およびextendsの非常に単純なアクションクラスTestActionがありますがActionSupport、機能していません。

誰かが私が欠けているものを見るのを手伝ってくれるなら、私は非常に感謝するでしょう。

これが私が持っているものです:

CustomerAction-validation.xml

<?xml version="1.0" encoding="UTF-8"?>

  <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
<validators>
    <field name="customerName">
        <field-validator type="requiredstring">
            <message>Required</message>
        </field-validator>
    </field>
</validators>

struts.xml

<action name="addCustomer" class="com.yell.hibu.action.CustomerAction"
            method="execute">
            <interceptor-ref name="validation"/> 
             <param name="excludeMethods">  
                    input,back,cancel,browse  
                </param>
            <interceptor-ref name="fileUpload">
                <param name="maximumSize">2097152</param>
                <param name="allowedTypes">
                    image/png,image/gif,image/jpeg,image/pjpeg
                </param>
            </interceptor-ref>
            <interceptor-ref name="defaultStack"></interceptor-ref>
            <result name="success">/success.jsp</result>
            <result name="input">/registration.jsp</result>
        </action>

ここに私は1つのフィールドだけのためのRegistration.jspを持っています

<s:form action="addCustomer" id="register-form" method="post"  validate="true" theme="xhtml" enctype="multipart/form-data">
<s:actionerror/>
<s:fielderror/>
<s:textfield name="customer.customerName" label="Customer Name:" cssClass="tooltip"  title="Max 10 characters allowed." maxlength="10"/>

4

1 に答える 1

1

君の

<interceptor-ref name="validation"/> 

が自己閉鎖している場合、

<param name="excludeMethods">  
        input,back,cancel,browse  
</param>

読まれることはありません。

Validation Interceptorドキュメントの例に示されているように、 の に実行する必要があります。Params Interceptor

繰り返しますが、ドキュメントによると、

このインターセプターは、すべての値がアクションに既に設定されていると想定しているため、多くの場合、スタックに適用された最後 (または最後から 2 番目) のインターセプターの 1 つです。

次に、次のようにしてみてください。

<action name="addCustomer" class="com.yell.hibu.action.CustomerAction" 
        method="execute">

    <interceptor-ref name="defaultStack"></interceptor-ref>

    <interceptor-ref name="validation"> 
        <param name="excludeMethods">  
            input,back,cancel,browse  
        </param>
    </interceptor-ref>

    <interceptor-ref name="fileUpload">
        <param name="maximumSize">2097152</param>
            <param name="allowedTypes">
                image/png,image/gif,image/jpeg,image/pjpeg
            </param>
    </interceptor-ref>

    <result name="success">/success.jsp</result>
    <result name="input">/registration.jsp</result>
</action>

うまくいかない場合は、JSP とアクションも投稿してください。

それが役立つことを願っています

于 2013-03-14T12:51:20.103 に答える