Donnerstag, Mai 28, 2020

Spring MVC i18n <spring:message> gibt JasperException : Keine Nachricht gefunden unter code

Baue ich ein Projekt mit spring mvc 3.1 Gläser, nach der Konfiguration i18n-Ordner von tomcat wirft mir folgende exception :

org.apache.jasper.JasperException: javax.- servlet.ServletException: javax.- servlet.jsp.JspTagException: Keine Nachricht gefunden unter code ‚label.Titel “ für Gebietsschemas ‚en_US‘.

Habe ich versucht, indem Sie die i18n-Ordner des classpath in eclipse(Juno), platziert, Nachrichten*.properties-Dateien unter WEB-INF/i18n WEB-INF/classes/i18n, WEB-INF/classes WEB-INF/lib, WEB-INF/aber keine Verwendung.

spring-context.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd">
    <annotation-driven />
    <resources location="/, classpath:/META-INF/web-resources/"
        mapping="/resources/**" />
    <default-servlet-handler />
    <beans:bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <beans:property name="prefix" value="/WEB-INF/views/" />
        <beans:property name="suffix" value=".jsp" />
    </beans:bean>
    <context:component-scan base-package="com.hoe.spring.controller" />
    <interceptors>
        <beans:bean
            class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"
            p:paramName="lang" />

    </interceptors>
    <beans:bean
        class="org.springframework.context.support.ReloadableResourceBundleMessageSource"
        id="messageSource" p:basenames="WEB-INF/i18n/messages, WEB-INF/i18n/application"
        p:fallbackToSystemLocale="false"  p:fileEncodings="UTF-8"
    p:defaultEncoding="UTF-8" />
    <beans:bean class="org.springframework.web.servlet.i18n.CookieLocaleResolver"
        id="localeResolver" p:cookieName="locale" />
</beans:beans>

Nachrichten.Eigenschaften

label.title=Contact_Manager
label.firstname=First_Name
label.lastname=Last_Name
label.email=Email
label.telephone=Telephone

Seite.jsp

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<spring:message code=**"label.title"** var="cName"/>


label.addcontact=Add_Contact
label.menu=Menu

Was bin ich ? Vielen Dank im Voraus.

InformationsquelleAutor kiran20v | 2013-03-03

5 Kommentare

  1. 1

    Ich platziert die Dateien unter resources/i18n Ordner.

    <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basename" value="classpath:i18n/messages" />
        <property name="defaultEncoding" value="UTF-8" />

  2. 0
      <bean id="messageSource"     class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basenames">
                            <list>
                                    <value>locale.messages</value>
                                    <value>locale.validation.messages</value>
                                    <value>locale.email.messages</value>
                            </list>
         </property>
       </bean>

    Und setzen Sie die Eigenschaft Dateien im locale-Ordner(wie Paket-Struktur)
    Wenn es maven/gradle-Projekt der locale-Ordner unter resource Ordner
    Gebietsschema.die Validierung.message => locale/Validierung/messages_en_US.Eigenschaften

    • <beans:bean class = „org.springframework.Kontext.Unterstützung.ReloadableResourceBundleMessageSource“ id=“messageSource“ p:Basisnamen=“locale.Nachrichten, locale.die Validierung.Nachrichten, locale.E-Mail.Nachrichten“
    • platziert messages_en_US.properties Datei unter WEB-INF/classes/locale/Validierungen/Nachrichten-Verzeichnis. Immer dieselbe Fehlermeldung.
  3. 0

    Können Sie versuchen, die Nachricht zu ändern.Eigenschaften-Datei-Namen, um messages_en_US.Eigenschaften

    • Ich habe diese Dateien(messages_en_US.Eigenschaften, messages_en_IN.Eigenschaften, Nachrichten.Eigenschaften, application_en_US.Eigenschaften, Anwendung.Eigenschaften) auch unter „Ordner“ WEB-INF/i18n/
    • Haben Sie versucht, die Methode, die ich oben angegeben haben. Das ist für mich arbeiten
    • Ja, ich habe versucht, Ihre Möglichkeiten, aber ich erhalte die gleiche Fehlermeldung. Ich fühle ein classpath-problem, hier bei mir läuft der tomcat-server von eclipse-IDE. Ich habe Sie manuell setzen Sie den Klassenpfad (Nachrichten-Ordner) in eclipse. Tun ich habe nichts mehr zu machen ?
  4. 0

    Versuchen Sie, die Dateien unter resources/i18n Ordner Ihrer eclipse und verwenden Sie dann p:basenames="classpath:i18n/messages".

    • Ich habe versucht, alle der oben genannten Lösung, aber vergeblich, keiner von Ihnen arbeiten.
    • Bitte posten Sie die neuesten Informationen wie der tatsächliche Pfad der properties-Datei unter tomcat-server, Eigenschaften, Datei-Namen und die aktualisierte Anwendung, die Kontext-xml-Datei.
  5. 0

    Ich kämpfte mit dem gleichen problem und was ich erkannte, ist, dass messages_{}.properties müssen im Klassenpfad. also, Sie brauchen nicht zu erwähnen, basename-Eigenschaft mit dem Wert „classpath:Nachrichten“. Stattdessen nur schweigen „Nachrichten„. hier ist meine vollständige Konfiguration.

    <bean id="messageSource"
            class="org.springframework.context.support.ResourceBundleMessageSource">
            <property name="basename" value="messages"/>
            <property name="useCodeAsDefaultMessage" value="true"/>
            <property name="defaultEncoding" value="UTF-8" />       
    </bean>
    
    
    <!--  allow localization through cookie and add interceptor to allow changes to locale -->
    
    <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" />
    
    <mvc:interceptors>
        <bean id="localeChangeInterceptor"
              class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
         <property name="paramName" value="lang"/>     
         </bean>          
    </mvc:interceptors>

Kostenlose Online-Tests