0

我想要做這樣的事情:

<head> 
    <title> 
    #set($windowTitleKey = $tiles.insertAttribute({'name':'window_title_key', 'ignore': true}))  
    #set($translatedPageName = "#springMessage($windowTitleKey)")   
    #springMessageText("SEO_page_title_default", [$translatedPageName]) 
    </title> 
</head> 

第一個 「設置」 行工作,也是如此的springMessageText線。

此行不起作用:#set($translatedPageName = "#springMessage($windowTitleKey)")它將$ compiledPageName設置爲$springMacroRequestContext.getMessage($code)

什麼是實現嵌套翻譯目標的另一種方式?

回答

0

我最終需要編寫一個自定義的幫手。真是麻煩。我期待完全放棄速度。

在速度觀點:

#set($windowTitleKey = $tiles.insertAttribute({'name':'window_title_key', 'ignore': true})) 
#set($translatedPageName = $TranslationsHelper.getTranslation("$windowTitleKey")) 
#springMessageText("SEO_window_title_default", ["$translatedPageName"]) 

在TranslationsHelper.java:

public class TranslationsHelper extends ReloadableResourceBundleMessageSource 
    {  
      public static String getTranslation(String messageKey, Object[] args) 
      { 
        MessageSource ms = getMessageSource(); 
        Locale locale = LocaleContextHolder.getLocale(); 
        return ms.getMessage(messageKey, args, locale); 
      } 
      public static MessageSource getMessageSource() 
      { 
        WebApplicationContext webAppContext = ContextLoader.getCurrentWebApplicationContext(); 
        return (MessageSource) webAppContext.getBean("messageSource");   
      } 
    } 
0

所有你需要的是愛#evaluate

+0

我知道#evaluate卻看不出哪裏/我怎麼會在這裏使用它。你在說我該怎麼辦? – Ryan

+0

'#evaluate($ translatedPageName)'工作嗎? –

相關問題