2

現在のSpring MVCアプリケーションは、定数文字列メッセージ/ラベルのLを統合i18nしています。で を取得するJSTために必要ないくつかの回避策があります。これにより、すべてのラベル値を でパックできます。code templateservice layerString ArrayList

例えば:

にはmessage.properties、プロパティのリストがあります。

task_START=Start
task_ORDER=Order
task_CANCEL=Cancel
.....
task_FINISH=Finish

task.list=START,ORDER,FINISH

サービス層では、上記を分解しtask.listてコード テンプレートtask_[value](これは JSTL の形式ですが、これが Java コードで機能するかどうかはわかりません) を取得して、すべての分解を String ArrayList として配置する必要があります。

{"Start", "Order", "Finish"}

私のコードでは、すでに持っています:

@Value("${task.list}")
String taskString;

List<String> tasks= new ArrayList<String>();

@PostConstruct
public void init() {
    String[] taskArray = taskString.split(",");
    for(String task:taskArray){
            // need match code template here
        tasks.add(task.trim()); 
    }
    Collections.sort(tasks);
}

上記のコードでは、プロパティ名の代わりに正確なプロパティ値をリストに挿入するためにテンプレートの一致が必要ですが、JSTL のようにこれを達成するにはどうすればよいですか?

4

1 に答える 1

1

次のようなメソッドのいずれかを注入MessageSourceして使用するだけです。getMessage

@Autowired
private MessageSource messageSource;


someMethod(){
    String task = ...;
    String code = messageSource.getMessage("task_["+ task +"]", LocaleContextHolder.getLocale());
}
于 2013-04-04T22:01:24.887 に答える