关于springmvc的知识点整理

来源:互联网 发布:算法导论pdf 编辑:程序博客网 时间:2024/05/17 19:57

一、spring的配置

1.配置组件扫描器

  <context:component-scan base-package="com.taotao.service"></context:component-scan>  

2..配置注解映射器和注解适配器

<mvc:annotation-driven>

3.配置视图解析器

<beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver">

           <propertyname="viewClass"

                 value="org.springframework.web.servlet.view.JstlView"/>

           <propertyname="prefix"value="/WEB-INF/jsp/"/>

           <propertyname="suffix"value=".jsp"/>

</bean>

二、springmvc的参数绑定

1.默认支持的参数类型

httpServletRequest     通过request对象获取请求信息

HttpServletResponse  通过response处理响应信息

HttpSession     通过session对象得到session中存放的对象

Model/ModelMap    ModelMap是Model接口的实现类,通过Model或ModelMap向页面传递数据

2.绑定简单类型

参数类型推荐使用包装数据类型,因为基础数据类型不可以为null

整形:Integer、int

字符串:String

单精度:Float、float

双精度:Double、double

布尔型:Boolean、boolean

说明:对于布尔类型的参数,请求的参数值为true或false。

处理器方法:

public String editItem(Modelmodel,Integer id,Boolean status) throwsException

请求url:

http://localhost:8080/xxx.action?id=2&status=false

3.绑定pojo

请求的参数名称和pojo的属性名称一致,会自动将请求参数赋值给pojo的属性

注意:提交的表单中不要有日期类型的数据,否则会报400错误。如果想提交日期类型的数据需要用到后面的自定义参数绑定的内容

4.绑定包装pojo

5.自定义参数绑定 如日期类型的参数

自定义Converter

publicclass DateConverterimplements Converter<String,Date> {

 

      @Override

      public Dateconvert(Stringsource) {

           SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss");

           try {

                 returnsimpleDateFormat.parse(source);

           } catch (ParseExceptione) {

                 e.printStackTrace();

           }

           returnnull;

      }

}

配置Converter

      <!--加载注解驱动 -->

      <mvc:annotation-drivenconversion-service="conversionService"/>

      <!--转换器配置 -->

      <beanid="conversionService"

           class="org.springframework.format.support.FormattingConversionServiceFactoryBean">

           <propertyname="converters">

                 <set>

                      <beanclass="cn.itcast.springmvc.convert.DateConverter"/>

                 </set>

           </property>

      </bean>

6.高级参数绑定

(1)绑定数组 如批量删除数据

(2)将表单中的数据绑定到list  如批量修改数据i

如在包装类中定义属性 private List<Items> itemList

在jsp中<c:foreach varstatus ='s'>

itemList[${s.index}].name

三 springmvc的注解

@RequestMapping

通过RequestMapping注解可以定义不同的处理器映射规则。

1.url路径映射

@RequestMapping(value="/item")或@RequestMapping("/item)

value的值是数组,可以将多个url映射到同一个方法

2.窄化请求映射

在class上添加@RequestMapping(url)指定通用请求前缀, 限制此类下的所有方法请求url必须以请求前缀开头,通过此方法对url进行分类管理。

3.请求方法限定


@RequestParam

使用@RequestParam常用于处理简单类型的绑定

value参数名字,即入参的请求参数名字,如value='item_id'表示请求的参数区中的名字为item_id的参数的值将传入;

required是否必须,默认是true,表示请求中一定要有相应的参数,否则将报;

TTP Status 400 - Required Integer parameter'XXXX' is not present

defaultValue:默认值,表示如果请求中没有同名参数时的默认值

四 springmvc方法的返回值

1.返回ModelAndView

controller方法中定义ModelAndView对象并返回,对象中可添加model数据、指定view。

2.返回void

在controller方法形参上可以定义request和response,使用request或response指定响应结果:

1)、使用request转向页面,如下:

request.getRequestDispatcher("页面路径").forward(request, response);

2)、也可以通过response页面重定向:

response.sendRedirect("url")

3)、也可以通过response指定响应结果,例如响应json数据如下:

response.setCharacterEncoding("utf-8");

response.setContentType("application/json;charset=utf-8");

response.getWriter().write("json串");

3.返回字符串

1)逻辑视图名

controller方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址 如:return"item/editItem"

2)Redirect重定向

Contrller方法返回结果重定向到一个url地址,如下商品修改提交后重定向到商品查询方法,参数无法带到商品查询方法中。

return"redirect:queryItem.action"

3)forward转发

controller方法执行后继续执行另一个controller方法,如下商品修改提交后转向到商品修改页面,修改商品的id参数可以带到商品修改方法中。

如:return"forward:editItem.action"

原创粉丝点击