是一种在JSP中访问 View 名称的方法(在下面的示例中为profile),或者我需要将此名称添加到模型中?

@RequestMapping(value="/user/account", method=RequestMethod.GET)
    return "profile";
}

最佳答案

我最近也遇到了同样的问题。可能有解决此问题的官方方法,但我找不到。我的解决方案是创建一个拦截器,将 View 名称放入模型中。

我的拦截器非常简单:

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);
    }

}

并且在spring config中注册它也非常简单(使用 namespace 配置):
<mvc:interceptors>
    <beans:bean class="ViewNameInModelInterceptor" />
</mvc:interceptors>

关于spring-mvc - Spring MVC : How to get view-name in JSP?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7241754/

10-14 11:09
查看更多