我试图了解 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
, createView
和loadView
方法都是特定于 UrlBasedViewResolver
的内部方法实现ViewResolver
。
关于java - 了解 spring mvc 中的 View 分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27730378/