Czy sposób dostępu do nazwy widoku w JSP (profile
w przykładzie poniżej) lub muszę dodać tę nazwę do modelu?Spring MVC: Jak uzyskać view-name w JSP?
@RequestMapping(value="/user/account", method=RequestMethod.GET)
return "profile";
}
Czy sposób dostępu do nazwy widoku w JSP (profile
w przykładzie poniżej) lub muszę dodać tę nazwę do modelu?Spring MVC: Jak uzyskać view-name w JSP?
@RequestMapping(value="/user/account", method=RequestMethod.GET)
return "profile";
}
można uzyskać nazwę widok w stronę JSP, jak to pokazano poniżej:
${pageContext.request.servletPath}
Pobiegłem w ten sam problem ostatnio. Może istnieć oficjalny sposób rozwiązania tego problemu, ale nie mogłem go znaleźć. Moim rozwiązaniem było stworzenie przechwytywacza, aby umieścić nazwę widoku w modelu.
Moja Interceptor jest bardzo prosta:
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);
}
}
i rejestrując go w config wiosny, jest również bardzo prosta (za pomocą konfiguracji namespace):
<mvc:interceptors>
<beans:bean class="ViewNameInModelInterceptor" />
</mvc:interceptors>
To nie działa. Zwraca: '/ WEB-INF/pages/profile.jsp', ale potrzebuje' profilu' – marioosh
przepraszam za to, nie znam innego sposobu poza tym, który już opisałeś w początkowej wiadomości. btw, zawsze umieszczam nazwę widoku na modelu, gdy potrzebuję go na mój widok –