java - 了解 spring mvc 中的 View 分辨率

标签 java spring spring-mvc

我试图了解 spring mvc 如何生成标记。例如,考虑简单的 Controller :

@Controller
public class HelloController{

    @RequestMapping("/hello")
    public String hello(){
        return "hello";
    }
}

并说,我们正在应用 dispatcher-servlet.xml 中定义的 UrlBasedViewResolver如下:

<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="prefix" value="/WEB-INF/views/">
    <property name="suffix" value="jsp">
</bean>

什么the javadoc解析器的作用是说我们有三个方法返回 View 的实例界面。 第一个是

protected AbstractUrlBasedView buildView(String viewName) ,

第二个是

protected View createView(String viewName, Locale locale)

第三个是

protected View loadView(String viewName, Locale locale)

只要View接口(interface)有方法 render(Map<String,?> model, HttpServletRequest request, HttpServletResponse response)我假设一旦创建了 View 实例,我们就调用此方法将标记呈现给客户端。但我不确定它是否真的有效。

总的来说,我的问题是什么方法采用 jsp -page 并返回 View 的实例呈现给客户端。

最佳答案

In general, my question is what method takes the a jsp-page and return the instance of View to be rendered to the client.

UrlBasedViewResolver为例,那就是 createView方法,对于 JSP 将返回 InternalResourceView .

就 View 解析框架而言,ViewResolver接口(interface)是入口点,并且有一个方法 resolveViewName它接受 View 名称(示例中的“hello”)并返回 View 对象,然后调用 render

buildView , createViewloadView方法都是特定于 UrlBasedViewResolver 的内部方法实现ViewResolver

关于java - 了解 spring mvc 中的 View 分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27730378/

相关文章:

java - 避免 Spring boot Rest 中不明确的 GetMapping

java - 如何使用Java下载 protected 网页

java - 没有这样的 bean 定义并且不可能创建 bean

java - Spring @ContextConfiguration 无法从不同项目加载测试上下文

java - Spring Boot资源静态文件夹

java - JSF(view) + Spring MVC 糟糕的选择?即使在 JSF 成为正式的 EE 规范之后,还有任何替代品吗?

java - 停止录制声音 - Java

java - 执行后在Java代理中运行代码?帖子主要?

java - 为什么 Spring @Value 与 @Controller 不兼容?

java - 使用 Spring Framework 3 将文件上传到服务器并将文件存储到磁盘