@Controllerクラスでメッセージを取得しようとするとすべてうまく動作しますが、 を試してみると、@Serviceまたは@Componentクラスで同じ結果が得られます。コントローラ外のメッセージソースからメッセージを取得できません
org.springframework.context.NoSuchMessageException:
No message found under code 'email.ativacao.title' for locale 'pt_BR'.
マイコントローラー:
@Controller
public class TestController {
@Autowired
TestService service;
@Autowired
TestComponent component;
@Autowired
private MessageSource message;
@RequestMapping(value = "/send", method = RequestMethod.GET)
public String go() {
String message = message.getMessage
("email.ativacao.title", null, new Locale("pt", "BR"));
service.getMessage();
component.getMessage();
return "signsucess";
}
}
マイサービス:
@Service
public class TestService {
@Autowired
private MessageSource message;
public void getMessage() {
//Error
String message = message.
getMessage("email.ativacao.title", null, new Locale("pt", "BR"));
}
}
マイコンポーネント:
@Component
public class TestComponent {
@Autowired
private MessageSource message;
public void getMessage() {
//Error
String message = message.
getMessage("email.ativacao.title", null, new Locale("pt", "BR"));
}
}
私の設定は:
<!-- i18n -->
<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.
LocaleChangeInterceptor" p:paramName="lang"/>
</mvc:interceptors>
<!-- Mesage Source Config -->
<bean id="messageSource"
class="org.springframework.context.support.
ReloadableResourceBundleMessageSource" p:fallbackToSystemLocale="true" >
<property name="basename" value="WEB-INF/i18n/messages" />
</bean>
<!-- Mapeia o cookie que irá salvar as opções de idioma -->
<bean class="org.springframework.web.servlet.i18n.CookieLocaleResolver"
id="localeResolver" p:cookieName="locale"/>
MessageSourceは@Serviceと@Component両方にnullではないが、彼らは メッセージ(上記の例外)を取得することはできません。私のプロパティ:
のWebContent/WEB-INF/i18nの
- messages_pt_BR
- messages_en_US
私は実際に問題を見つけることができません。これを解決するための提案はありますか?ありがとう。
は、同じコンテキストで宣言されたコントローラBeanとサービス/コンポーネントBeanですか? – Kent
@Kentいいえ、そうではありません。私の設定は4 xmlで分割されています。コントローラーのコンポーネントスキャンは1つのxmlにあり、コンポーネントスキャンはサービスとコンポーネントが別のxmlにあります。私はそれらをまとめるので、今彼らは正常に動作しています。答えを書きますか?私はそれを受け入れることをうれしく思います。 – raonirenosto
同じコンテキストが同じxmlファイルを意味するわけではありません。 – Kent