2

アクションのプロパティ ファイルでカスタム型変換を使用しようとしています。

アクション クラスは、Bean プロパティの ModelDriven を実装しています。

public class WelcomeAction extends ActionSupport implements ModelDriven<MyBean>{

public String execute(){
    return SUCCESS;
}

private MyBean bean = new MyBean();

@Override
public MyBean getModel() {
    return bean;
}
}

Bean クラスは次のとおりです。

public class MyBean{

private Rectangle rectangle;
public Rectangle getRectangle() {
    return rectangle;
}

public void setRectangle(Rectangle rectangle) {
    this.rectangle = rectangle;
}

}

そしてWelcomeAction-conversion.properties、コンバーター構成を次のように使用して、アクションクラスと並行してファイルを作成します。

bean.rectangle=struts2.typeconverters.RectangleTypeConverter

キーをBean、長方形などとして配置しようとしましたが、コンバータークラスを使用していないため、機能しません。

@TypeConverter注釈またはグローバルコンバーターを使用すると、正常に機能します。

私のStruts 2バージョンは2.3.15.1で、何が問題なのか分かりません。

更新: 問題を作成しましたhttps://issues.apache.org/jira/browse/WW-4249

実装の正しい方法を取得しました: http://www.journaldev.com/2221/struts-2-ognl-tutorial-with-custom-type-converter-example

4

3 に答える 3

0

Action クラスがモデル駆動型を使用している場合は、カスタム型コンバーターについて次の方法論に従う必要があります。

http://struts.apache.org/release/2.3.x/docs/type-conversion.html (Bean またはモデルへの型コンバーターの適用というタイトルのセクションを参照)。

あなたの例では、変換プロパティ ファイル名を MyJavaBean-conversion.properties に変更し、MyJavaBean.java と同じパッケージに配置しました。

MyJavaBean-conversion.properties で、キーを次のように変更しました。

      rectangle=com.journaldev.struts2.typeconverters.RectangleTypeConverter 

次に、.war ファイルをビルドし、Tomcat 7 で例を実行しました。四角形の変換は正しく機能しました。

http://struts.apache.org/release/2.3.x/docs/type-conversion.htmlで説明されている方法論を使用できるとは思いません(タイプコンバーターをアクションに適用するというタイトルのセクションを参照)。 Action クラスは ModelDriven を使用しています。以前の Struts 2 バージョンでそれが機能した場合は、お知らせください。

ブルース・フィリップス

于 2013-11-29T14:06:55.820 に答える
0

bean.rectangle=struts2.typeconverters.RectangleTypeConverter- これは間違っています

プロパティ名だけでなく、フルパスとともに適切なクラス名を使用する必要があります。

mypackage.Rectangle=struts2.typeconverters.RectangleTypeConverter- struts2 という名前のパッケージがあることを願っていますが、そのようなパッケージ名は厳密には避けます。

于 2013-09-25T21:36:24.797 に答える