mi sono imbattuto in questo stesso problema di recente. Potrebbe esserci un modo ufficiale per risolvere questo problema, ma non sono riuscito a trovarlo. La mia soluzione era creare un intercettore per posizionare il nome della vista nel modello.
mio intercettore è molto semplice:
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class ViewNameInModelInterceptor extends HandlerInterceptorAdapter {
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
if (modelAndView != null) {
modelAndView.addObject("springViewName", modelAndView.getViewName());
}
super.postHandle(request, response, handler, modelAndView);
}
}
e la registrazione nella configurazione primavera, è anche piuttosto semplice (utilizzando la configurazione dello spazio dei nomi):
<mvc:interceptors>
<beans:bean class="ViewNameInModelInterceptor" />
</mvc:interceptors>
Non funziona. Restituisce: '/ WEB-INF/pages/profile.jsp', ma ho bisogno di' profile' – marioosh
scusate per quello, non so un altro modo tranne che avete già descritto nel vostro messaggio iniziale. btw, metto sempre il nome della vista sul modello quando ne ho bisogno a mio avviso –