Since you're using spring, add the following bean to your application context:
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="/WEB-INF/messages/messages" />
<property name="cacheSeconds" value="0" />
</bean>
In your /WEB-INF/messages folder, create all the messages.properties files that you need i.e. messages_en_GB.properties, messages_DE.properties etc.
Then in your jsps, use the following spring provided tag:
<spring:message code="some.property.name" />
By default the locale should be the locale your user has set in their browser. To allow them to select a different Locale (and thus the correct language), you can also add this to your application context:
<!-- Saves a locale change using a cookie -->
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" />
<mvc:interceptors>
<!-- Changes the locale when a 'locale' request parameter is sent; e.g. /?locale=de -->
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
</mvc:interceptors>
Then, you just need links that include a locale property like /?local=de
to change to a German translation.