2015-12-24 2 views
0

Я получаю эту ошибку:Spring MVC - один код сообщения работает, другой нет, и оба находятся в том же файле

No message found under code 'DuplicateKey.user.username' for locale 'sk_SK'. 

Есть много вопросов по SO о сообщениях файлов не загружается должным образом, но моя проблема что файл загружен правильно. В мой ресурс расслоении У меня есть два файла: messages.properties messages_sk_SK.properties

Содержание messages_sk_SK.properties являются:

Size.user.username=Meno musi mat 5 az 80 znakov. 
DuplicateKey.user.username=Uzivatel s takym menom uz existuje. 

Первое сообщение отлично работает. Код от моего лица:

@Size(min = 5, max = 80) 
private String username; 

Второе сообщение об ошибке также для имени пользователя. Вот код моего контроллера:

@RequestMapping(value = "/signup", method = RequestMethod.POST) 
public String signupPost(@Valid User user, BindingResult result) { 
    if (result.hasErrors()) { 
     return "signup"; 
    } 

    user.setAuthority("user"); 
    user.setEnabled(true); 

    try { 
     userService.create(user); 
    } catch (DuplicateKeyException e) { 
     result.rejectValue("username", "DuplicateKey.user.username"); 
     return "signup"; 
    } 

    return "accountcreated"; 
} 

DuplicateKeyException выбрано дублирующееся имя пользователя. Как это возможно?

+0

Я предполагаю, что ваш 'messages.properties' выбран файл для любой другой местности? Включает ли этот файл одно и то же сообщение и работает ли он правильно? – DaveyDaveDave

+0

Он имеет те же два кода ошибки, но сообщения находятся на английском языке. Я следую одному учебнику, и сначала у меня был только файл messages.properties и сообщение Size.user.username. Он работал нормально. После того, как я добавил код result.rejectValue (...) и второе сообщение в нем, я получил то же исключение, что и сейчас, «Нет сообщения найдено ...». Поэтому я создал файл sk_SK и разместил там оба сообщения, но на словацком языке. Теперь имя файла Size.user.us отображается правильно на словацком языке, но я получаю ту же ошибку для DuplicateKey.user.username, что и раньше. – pzakutansky

+0

ОК, поэтому, чтобы быть полностью понятным, 'DuplicateKey.user.username' никогда не работал, ни для локали? – DaveyDaveDave

ответ

0

ОК, я решил. Согласно комментариям в учебном пособии, за которым я следую (link), вы должны сделать это другим способом в IntelliJ IDEA (они используют Eclipse в учебнике). Я сделал перемещение сообщений файлы в папке ресурсов, так что теперь моя структура НАПРАВЛ

src 
    - main 
    - java (sources) 
    - resources (messages files) 
    - webapp (WEB-INF, JSPs etc.) 

и в моей конфигурации XML:

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> 
    <property name="basenames" value="messages"/> 
</bean> 

Вы должны щелкнуть правой кнопкой мыши на каталоге ресурсов и Марк каталог As - > Папка ресурсов. Файлы сообщений должны появляться внутри другого узла, называемого «Связи ресурсов». Теперь он работает так, как должен. Если он не находит сообщение в messages_sk_SK.properties, он пытается найти его в messages.properties.

dir structure

 Смежные вопросы

  • Нет связанных вопросов^_^