SpringMvc是一个表现层框架:作用在于在请求中接收参数,并将处理结果返回给前台页面。
一.web.xml配置文件:
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:Spring-mvc.xml</param-value>
(此处如果不配置的话,将找查servlet-name)
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
二Controller方法返回值(返回到指定页面,返回指定资源)
①ModelAndView
modelAndView.addobject("xxx",xxx); 返回指定资源
modelAndView.setViewName("xxx"); 返回到指定页面
②String()
request.setAttribute("xxx",xx) 返回指定资源
model.setAttribute("xxx",xx) 返回资源
return “xxx” 返回到指定页面
return “forward:xxx” 请求转发
return "redirect:xxx" 返回重定向
forward 能带过去request资源 redirect 不可以
两者的区别在于 在下面会讲解。
③void()
void()返回值类型现在基本不怎么用,因为他破坏了SpringMvc的内部机制;
request.setAttribute("xxx",xx) 返回指定资源
request.getRequestDispatcher("xxx").forward(request,response);
forward和redirect的区别:
1.使用 forward 重定向后浏览器地址栏URL不变. 而redirect 的地址栏将改变为跳转后的新地址.
2.forward跳转只能是同一个Web应用程序的其他Web组件,而 redirect 可以是任意的URL.
3.当客户(浏览器)请求一个使用 forward实现跳转的jsp时,客户(浏览器)与服务器只有一次交互,forward的跳转是由服务器实现,客户根本不知道有跳转这回事;当客户(浏览器)请求一个使用 redirect 实现跳转的jsp时,redirect 会首先发一个response给浏览器, 然后浏览器收到这个response后再发一个requeset给服务器, 然后服务器发新的response给浏览器,客户(浏览器)与服务器发生了两次交互.
4. 使用 redirect跳转页面时,由于(3)的原因,客户请求服务器时url后面的参数在跳转时已经没有了,所以,最终跳转的jsp页面是取不到这些参数的,但是可以通过Model 来传参数给下一个页面。
三.类型的绑定
①基本类型pojo类
基本数据类型
②设定vo类型
基本数据类型和其余特性
③设置类型的转换
日期类型:
一.创建一个xxx的类 implements Converter(xxx,yyy)
xxx代表 传入类型 yyy代表转换类型
public date convert(String source){
Date date = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(source);
}
在SpringMvc的配置文件中设置自定义转换器
<bean id = "converterXXX">
class = "org.springframework.format.support.FormattingConversionServiceFactoryBean"
<property name = "converters">
<set>
<bean class = "刚才创建的xxx类的全路径" / >
</set>
</property>
</bean>
再将这个配置的ID 挂载在配置的注解驱动上。
在driven上面有一个 转换的属性convertor。