2

当前的 spring MVC 应用程序集成i18nJSTL 用于常量字符串消息/标签。这里有一些需要解决的方法来获取code template,service layer以便可以将所有标签值打包String 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 回答