您的位置:首页 > 编程语言 > Java开发

关于springmvc的知识点整理

2017-08-07 08:18 330 查看
一、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地址,如下商品修改提交后重定向到商品查询方法,参数无法带到商品查询方法中。

:[b]return"redirect:queryItem.action"
[/b]
3)forward转发

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

如:return"forward:editItem.action"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: