@Controller(spring中的注解 代表控制层在 配置文件加载的时候会new Bean)
@RequestMapping(配置请求的映射)
@RequestParam(用着页面的name属性与方法的参数名不一致指明)
两个设置:
springmvcservlet.xml(可以随便起名字)
<!-- 开启扫描 --> <context:component-scan base-package="com.demo.contoller"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan> <!-- 开启spring mvc注解 --> <mvc:annotation-driven/> |
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:springmvcservlet.xml</param-value> //与上面的XML文件的名字相同 </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> |
@SessionAttributes(将ModelMap中指定的属性放到session中)
注:名字为”user”的属性再结合使用注解@SessionAttributes可能会报错
@ModelAttribute
@ModelAttribute的使用(使用在调用方法之前,也就是说类中的方法前加上这个注解,那这个方法就要先运行)
1.@ModelAttribute注解void返回值的方法
2.@ModelAttribute注释返回具体类的方法
3.对象合并
1. 视图解析器
添加jstl jar (jstl.jar和stand.jar)
Springmvc-servlet.xml中添加视图解析器
<!-- 配置视图解析器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <!-- 配置前缀 --> <property name="prefix" value="/WEB-INF/jsp/" /> <!-- 配置后缀 --> <property name="suffix" value=".jsp" /> <!-- 使用jstl的配置 --> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> </bean> |
场景:
添加视图解析器的配置后 return 后面跳转的url会自动给url加上前缀和后缀
如果要访问的页面不需要添加前缀和后缀--》使用转发和重定向
如果想从控制器中的一个方法跳转到另外一个方法--》使用转发和重定向
如果想从控制器中的一个方法跳转到另外一个方法--》使用转发和重定向
1. 静态资源处理器(css,js,images)
在springmvc的配置文件中添加放行
<!-- 静态资源处理器 --> <mvc:resources location="/images/" mapping="/images/**"/> |
1. 日期转换器
页面日期自动赋给实体类的属性(Date类型)
1. 创建日期转换器的实体类
package com.demo.converter;
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;
import org.springframework.core.convert.converter.Converter;
public class DateConverter implements Converter<String, Date> {
@Override public Date convert(String arg0) { SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd"); simpleDateFormat.setLenient(false); if (arg0!=null) { try { return simpleDateFormat.parse(arg0); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return null; }
}
|
2. 在springmvc.xml中进行配置
<!-- 全局日期转换器 --> <!-- 进行注册 --> <bean id="formattingConversionServiceFactoryBean" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="converters"> <list> <bean id="dateConverter" class="com.demo.converter.DateConverter"></bean> </list> </property> </bean> |
3. 注册
<mvc:annotation-driven conversion-service="formattingConversionServiceFactoryBean" /> |