2017-08-03 2 views
-1

私はStruts 2.3.3から2.5.12へプロジェクトの1つを増やしています。アップグレードされたプロジェクトでは<s:text />タグができませんモデルクラスからのフィールドの値を表示し、名前を表示するだけです。私がStruts 2.3.3を使用すると、完璧に動作します。Struts 2.5.12:テキストタグは値の代わりにモデルクラスからのフィールドの名前を表示します

マイActionクラスのようなある:

public class MyAction { 
    private Member member; 

    public Member getMember() { 
     return member; 
    } 
} 

私のモデルクラスは似ています:JSPでは

public class Member implements Serializable { 
    private Address address; 

    public Address getAddress() { 
     return address; 
    } 
} 

public class Address implements Serializable { 
    private String city; 

    public String getCity() { 
     return city; 
    } 
} 

、私が持っている:

<s:text name="member.address.city" /> 

私はページ上に表示出力​​です。ここで私は都市の価値を期待しています。

AddressクラスのgetCity()メソッドに制御が到着し、cityフィールドの値がLondonになっていますが、まだUIに表示されません。

誰でも問題が分かっていますか? docsによると

+0

」はi18n用です。 –

答えて

0

という名前のメッセージはプロパティファイルに見つからない場合は、 のボディは、タグはデフォルトのメッセージとして使用されます。本文が使用されていない場合は、 スタックが検索され、値が返された場合は、出力に が書き込まれます。 スタックに値が見つからない場合は、メッセージ のキーがに書き込まれます。

+0

こんにちは@RomanC、これはあなたの返信いただきありがとうございます。私はプロパティファイルから値を読み取るのではなく、モデルクラスから値を読み取っています。また、私が質問で述べたように、member.address.cityフィールドにはロンドンの値があり、デバッグモードでも同じことが分かります。しかし、まだキーの名前が画面に表示されます。それはなぜロンドンを印刷していないが、単にキーの名前を印刷するか? – Prasann

+0

値が見つからず、strutsタグがキーを印刷しているときは、 's:text'タグの代わりに' getText() 'を使うことができます。 –

+0

こんにちは@RomanC、私はタグが値を表示することができることを確認します。私はStruts 2.5.8の移行ガイドで、タグの改善があり、デフォルトでValueStackに対してdefaultMessageを評価しないことが分かりました。これは問題かもしれません。問題のリファレンス - https://issues.apache.org/jira/browse/WW-4711 – Prasann

関連する問題