使用JSP作为视图
JSP作为JavaWeb应用程序的视图技术已经超过15年了,想在仍然是使用量最大的视图技术。
- 视图解析器:
InternalResourceViewResolver是最简单和最常用的JSP视图解析器。这种视图解析器遵循一种约定,会在视图名上添加前缀和后缀,进而确定一个Web应用中视图资源的物理路径。 - 视图位置 在通常的Web应用中,我们把JSP文件放到Web应用的WEB-INF目录下,防止对它的直接访问。
InternalResourceViewResolver视图解析器的配置:
基于Java的配置:
@Bean public ViewResolver viewResolver(){
InternalResourceViewResolver viewResolver = new
InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/views/");
viewResovler.setSuffix(".jsp"); return viewResolver; }基于XML的配置:
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/views/" p:suffix=".jsp" />
这样,books/detail将会解析为“/WEB-INF/views/books/detail.jsp”。注意,当逻辑视图包含斜线时,这个斜线也会带到资源的路径名中。这样,我们可以很方便地将视图模板组织为层级目录结构,而不是将它们都放到同一个目录中。
使用Spring的JSP库
标签库是为JSP添加功能的强大方式,能够避免在脚本块中直接编写Java代码。Spring提供了两个JSP标签库,用来帮助定义SpringMVC Web的视图。其中一个标签库会用来渲染HTML表单标签,这些标签可以绑定model中的某个属性。另外一个标签库包含了一些工具类标签,我们随时都可以非常便利地使用它们。在这两个标签库汇中,表单绑定的标签库更加有用。
将表单绑定到模型上
Spring的表单绑定JSP标签库包含了14个标签,它们中的大多数都用来渲染HTML中的表单标签。但是,它们与原生HTML标签的区别在于它们会绑定模型中的一个对象,能够根据模型中对象的属性填充值。标签库中还包含了一个为用户展现错误的标签,它会将错误信息渲染到最终的HTML之中。为了使用表单绑定库,需要在JSP中对其进行声明:
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="sf" %>
上面我们将前缀设置为了“sf”,它