3

アプリケーションにモデル駆動型の検証を実装しましたが、次の警告が表示されて検証が機能しません。

警告: 訪問したオブジェクトは null です。VisitorValidator は検証を適切に処理できません。VisitorValidator が正しく機能するためには、訪問したオブジェクトが null でないことを確認してください

理由はありますか?

これが私のアクションクラスです。

package actions;

import beans.CarListing;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

public class ListCarAction extends ActionSupport implements ModelDriven{
    public String execute() {
        System.out.println("ListCarAction x" + carListing.getUrl());
        return SUCCESS;
    }

    private CarListing carListing = new CarListing();

    public Object getModel() {
        return carListing;
    }
}

ここに私のListCarAction-validation.xmlがあります

<!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="model">
        <field-validator type="visitor">
            <param name="appendPrefix">false</param>
            <message>Car Listing: </message>
        </field-validator>
    </field>
</validators>

そして、これが CarListing-validation.xml という名前の Bean バリデーター XML です。

<!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="url">
        <field-validator type="requiredstring">
            <message>URL is required field.</message>
        </field-validator>
        <field-validator type="stringlength">
            <param name="minLength">1</param>
            <param name="minLength">30</param>
            <message>The URL must be at least 1-30 characters.</message>
        </field-validator>
    </field>
</validators>
4

1 に答える 1

1
  1. 次のすべてのインターセプターをこの順序で含む、正しく構成されたインターセプター スタックをアクションに使用していることを確認します: modelDrivenparamsvalidation。その中には他にもインターセプターがいます。重要なのは、それらが互いに位置を切り替えていないことだけです)

  2. ファイルがパッケージではなく、ファイルに沿ってパッケージにCarListing-validation.xml配置されていることを確認してください。代わりに、他のxmlファイルがあります。beansCarListing.classactions

于 2014-07-23T09:07:59.260 に答える