SSM-SpringMVC(加载控制,自动转换JSON格式)

SpringMVC

今天从以下几个内容给大家介绍:

  1. SpringMVC简介
  2. SpringMVC的基础配置
  3. 注解驱动
  4. 请求映射
  5. 响应

SpringMVC简介

在介绍SpringMVC之前先看看什么是MVC:
在这里插入图片描述
在这里插入图片描述
SpringMVC其实就是一种基于Java实现MVC模型的轻量级Web框架。

优点:

  • 使用简单
  • 性能突出(相比现有的框架)
  • 灵活性强

SpringMVC的基础配置

  • Controller加载控制:
    SpringMVC的处理器对应的bean必须按照规范格式开发,为了避免加入无效的bean可通过bean加载过滤器进行包含设定或排除设定,表现层bean标注通常设定为@Controller
<context:component-scan base-package="com.ysdn">
<context:include-filter
type="annotation"
expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
@ComponentScan(
value="com.ysdn",
excludeFilters =
@ComponentScan.Filter(
type= FilterType.ANNOTATION,
classes=Controller.class))

在这里插入图片描述
静态资源的加载

<mvc:resources mapping="/img/**" location="/img/"/>
<mvc:resources mapping="/js/**" location="/js/"/>
使用简化格式
<mvc:default-servlet-handler />

在这里插入图片描述
中文乱码处理
这是SpringMVC提供的专用中文过滤器,用于处理乱码问题。

<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

请求映射

在这里插入图片描述

@Controller
@RequestMapping("/user")
public class UserController {
	@RequestMapping("/requestURL2")
	public String requestURL2() {
		return "page.jsp";
	}
}

属性:

@RequestMapping(
		value="/requestURL3", //设定请求路径,与path属性、value属性相同
		method = RequestMethod.GET, //设定请求方式
		params = "name", //设定请求参数条件
		headers = "content-type=text/*", //设定请求消息头条件
		consumes = "text/*", //用于指定可以接收的请求正文类型(MIME类型)
		produces = "text/*" //用于指定可以生成的响应正文类型(MIME类型)
)
public String requestURL3() {
	return "/page.jsp";
}

响应

在这里插入图片描述
在这里插入图片描述
页面访问快捷方式设定:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<property name="prefix" value="/WEB-INF/pages/"/>
	<property name="suffix" value=".jsp"/>
</bean>
public String showPage3() {
	return "page";
}

在这里插入图片描述

携带数据跳转页面设定:

方式一:使用ModelAndView类型作为形参进行数据传递。

@RequestMapping("/showPageAndData1")
public String showPageAndData1(HttpServletRequest request) {
	request.setAttribute("name","yss");
	return "page";
}

方式二:使用ModelAndView类型作为形参进行数据传递。

@RequestMapping("/showPageAndData2")
	public String showPageAndData2(Model model) {
	model.addAttribute("name","ys");
	Book book = new Book();
	book.setName("SpringMVC");
	book.setPrice(66.6d);
	model.addAttribute("book",book);
	return "page";
}

方式三:使用ModelAndView类型作为形参进行数据传递,并且将该对象作为返回值。

@RequestMapping("/showPageAndData3")
public ModelAndView showPageAndData3(ModelAndView modelAndView) {
	modelAndView.addObject("name","ysss");
	Book book = new Book();
	book.setName("SpringMVC ");
	book.setPrice(88.8d);
	modelAndView.addObject("book",book);
	modelAndView.setViewName("page");
	return modelAndView;
}
}

在这里插入图片描述
返回数据:(普通的数据类型我就不再啰嗦了,直接演示返回JSON数据)

使用SpringMVC提供的消息类型转换器将对象和数据自动转换为JSON数据。

@RequestMapping("/showData4")
@ResponseBody
public Book showData4() {
	Book book = new Book();
	book.setName("SpringMVC");
	book.setPrice(88.8d);
	return book;
}

手工添加信息类型转换器:

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
	<property name="messageConverters">
	<list>
	<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
	</list>
	</property>
</bean>

返回JSON数据(集合)

@RequestMapping("/showData5")
@ResponseBody
public List<Book> showData5() {
	Book book1 = new Book();
	book1.setName("SpringMVC入门实战");
	book1.setPrice(88.8d);
	Book book2 = new Book();
	book2.setName("SpringMVC应用");
	book2.setPrice(166.6d);
	ArrayList<Book> books = new ArrayList<Book>();
	books.add(book1);
	books.add(book2);
	return books;
	}

以上就是本次分享的全部内容了,如果有不恰当的地方,欢迎指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值