私は現在、Jasper がリソース バンドル オブジェクトから値を取得する方法のカスタマイズされた動作に取り組んでいます。私が知っているように、REPORT_RESOURCE_BUNDLE としてリソース バンドルを渡すことができ、レポート内の $R{SOME_TEXT} はリソース バンドルの値として置き換えられます。
私がやりたいのは、次のように機能するカスタマイズされた getString() メソッドを実行することです。
public String getString(){
if (map.get("SOME_KEY_A")!=null){
return map.get("SOME_KEY_A");
}else{
return map.get("SOME_KEY");
}
}
SOME_KEY_A は特定の値です。定義されていない場合、バンドルは SOME_KEY (デフォルト値) に関連付けられたテキストを返します。
getString() または getObject() をオーバーライドしようとしましたが、それらは最終的なものであり、オーバーライドできません。ResourceBundle の両方のメソッドが handleGetObject() を呼び出していますが、このメソッドに上記のロジックを追加しても Jasper レポートの動作は変わりません。
Jasper がローカライズされたテキストを取得するために呼び出すメソッドを知っている人はいますか? ありがとう!