@[toc]
一、 数据回写
数据回写:在做数据更新的时候服务端查询的数据自动填充到表单中。
1.1 、默认方式
controlller
@RequestMapping("/fun")
public String fun(String bookName,String author,Integer publicYear,Model model){
if ("xx".equals(bookName)&&"qw".equals(author)&&"2019".equals(publicYear)) {
return "/book.jsp";
}
model.addAttribute("bookName", bookName);
model.addAttribute("author", author);
model.addAttribute("publicYear", publicYear);
return "forward:/book.jsp";
}
页面中的回写
<form action="add" method="post">
书名:<input type="text" name="bookName" value="${book.bookName}"><br>
作者:<input type="text" name="author" value="${book.author}"><br>
出版年份<input type="text" name="publicYear" value="${book.publicYear}"><br>
<input type="submit" value="提交">
</form>
model
/**
*
* @param book
* 会自动保存在Model对象中 key是 book
* m.addAttribute("book", book);
* @return
*/
@RequestMapping("/update")
public String update(Book book) {
System.out.println(book);
book.setBookName("ps");
return "/book.jsp";
}
3.@ModelAttribute注解实现
3.1 修改参数回显变量名
@RequestMapping("/add")
public String add(@ModelAttribute("bk")Book book) {
System.out.println(book);
book.setBookName("abc");
return "/book.jsp";
}
页面
<form action="add" method="post">
书名:<input type="text" name="bookName" value="${bk.bookName}"><br>
作者:<input type="text" name="author" value="${bk.author}"><br>
出版年份<input type="text" name="publicYear" value="${bk.publicYear}"><br>
<input type="submit" value="提交">
</form>
配置全局变量名
@RequestMapping("/add")
public String add(@ModelAttribute("bk")Book book) {
System.out.println(book);
book.setBookName("abc");
return "/book.jsp";
}
/**
* 每个方法都会方法的数据
*
* @return
*/
@ModelAttribute("list")
public List<String> getList() {
return Arrays.asList("aa", "bb", "cc");
}
${list}<br>
<form action="add" method="post">
书名:<input type="text" name="bookName" value="${bk.bookName}"><br>
作者:<input type="text" name="author" value="${bk.author}"><br>
出版年份<input type="text" name="publicYear" value="${bk.publicYear}"><br>
<input type="submit" value="提交">
</form>
异常处理
项目中的异常需要统一处理,正常情况下,需要提前准备好一个错误页面,当项目出错了,将该页面展示给用户。
步骤:
定义异常处理器
package com.sxt.resolver;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
/**
* 全局异常处理器
* @author Administrator
*
*/
@Component
public class GlobalExecptionResolver implements HandlerExceptionResolver {
/**
* 全局异常处理的方法
* return 返回null不执行,按照没有拦截的方式处理
*/
@Override
public ModelAndView resolveException(HttpServletRequest request,
HttpServletResponse response,Object handler,
Exception ex) {
System.out.println("异常发生了");
ModelAndView m=new ModelAndView();
m.setViewName("/error.jsp");
return m;
}
}
需要处理的异常的地方抛出异常
测试
JSON数据交互
jackson处理
jar包
@Controller
public class SpringController {
@RequestMapping("/fun1")
@ResponseBody
public Book fun1(){
Book b=new Book();
b.setBookId(1001);
b.setBookName("ps");
b.setAuthor("sp");
return b;
}
@RequestMapping("/fun2")
@ResponseBody
public String[] fun2(){
return new String[]{"a","b","c"};
}
@RequestMapping("/fun3")
@ResponseBody
public List<String> fun3(){
return Arrays.asList("bb","aa","cc");
}
@RequestMapping("/fun4")
@ResponseBody
public Map<String, Object> fun4(){
Map<String, Object>map=new HashMap<>();
Book b=new Book();
b.setBookId(1001);
b.setBookName("ps");
b.setAuthor("sp");
map.put("b1", b);
Book b2=new Book();
b2.setBookId(1001);
b2.setBookName("ps");
b2.setAuthor("sp");
map.put("b2", b2);
map.put("total", 2);
return map;
}
}
接收JSON数据
导入juery文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="js/juery.min.js"></script>
</head>
<body>
<input type="button" value="提交JSON数据" οnclick="fun1();">
<script type="text/javascript">
function fun1() {
$.ajax({
type : 'POST',
url : "test2",
contentType : "application/json",//如果想以json格式把数据提交到后台的话,这个必须有,否则只会当做表单提交
data : JSON.stringify({
"bookId" : "2019",
"bookName" : "ps"
}),//JSON.stringify()必须有,否则只会当做表单的格式提交
dataType : "json",//期待返回的数据类型
success : function(data) {
alert("success:" + data);
},
error : function(data) {
alert("error" + data);
}
});
}
</script>
</body>
</html>
fastjson数据交互
配置文件(注册fastjson)
<!-- 开启扫描 -->
<context:component-scan base-package="com.sxt.*"/>
<!-- 开启SpringMVC注解的方式 -->
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"></bean>
</mvc:message-converters>
</mvc:annotation-driven>
处理中文乱码
在web.xml文件中配置
<!-- spring框架提供的字符集过滤器 -->
<!-- spring Web MVC框架提供了org.springframework.web.filter.CharacterEncodingFilter用于解决POST方式造成的中文乱码问题 -->
<filter>
<filter-name>encodingFilter</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>
<init-param>
<param-name>forceRequestEncoding</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
相关推荐
标题提到的"springmvc-json-view需要的jar"是指为了实现Spring MVC中JSON视图支持,开发者需要在项目中引入特定的Java库(JAR文件)。下面我们将详细探讨这些JAR文件及其在JSON处理中的作用。 首先,`json-lib-2.4-...
3. 错误处理:通过`@ExceptionHandler`处理JSON序列化时可能出现的异常,提供友好的错误反馈。 总结,Spring MVC与Jackson的结合,使JSON处理变得简单而高效。理解并熟练掌握这两者的配合,对于开发高质量的Web应用...
考虑到JSON-P(JSON with Padding)和XSS(跨站脚本攻击)的安全风险,我们需要确保在处理JSON数据时进行适当的输入验证和输出编码。 综上所述,"springmvc-json_v2.zip"可能包含了Spring MVC项目中JSON处理的各种...
总之,"springmvc-base-input-02" 项目涵盖了 Spring MVC 的基本输入处理,包括依赖管理、请求分发、模型绑定、数据验证和异常处理等关键概念。通过深入研究这个项目,开发者可以进一步理解如何构建一个健壮的、处理...
6. **异常处理**:SpringMVC提供了一种优雅的异常处理方式,允许我们在全局或特定Controller级别定义异常处理器。这有助于统一错误页面展示,提高用户体验。 7. **上传下载支持**:SpringMVC内置了处理文件上传和...
1. **模型-视图-控制器(MVC)架构**:SpringMVC遵循MVC设计模式,将业务逻辑、数据处理和用户界面分离,提高代码的可读性和可维护性。模型处理业务逻辑,视图负责渲染数据,控制器作为两者之间的桥梁,接收请求并...
可以构建一个功能强大的Java Web应用,通过SpringMVC处理请求,Struts(尤其是Struts2)提供额外的MVC功能,MyBatis作为数据访问层处理数据库操作,而JUnit则帮助进行单元测试,确保整个系统的稳定性和正确性。...
9. **错误处理**:确保在前后端都有适当的错误处理机制,例如前端的表单验证和后端的异常处理,以提供良好的用户体验。 综上所述,"springmvc-easyui-tree增删改"涵盖了SpringMVC后端处理和EasyUI前端展示的多个...
通过aop拦截获取json请求数据,对数据进行处理判断,如果不合法则抛出异常,配置全局异常处理类,在异常处理类中直接将处理结果返回调用处,减少每次在方法中解析json数据然后在判断,减少代码冗余
16. **JSON 支持**:通过 Jackson 或 Gson 等库,Spring MVC 可以方便地处理 JSON 格式的数据交换。 在 "springmvc-demo" 项目中,开发者可能已经创建了一个简单的 Controller,处理一个或多个 HTTP 请求,并展示了...
Spring MVC 是一个强大的...此外,项目可能还涵盖了Spring MVC的其他高级特性,如拦截器和全局异常处理,以及与数据库的交互。通过学习这个项目,开发者能够深入理解并掌握Spring MVC框架在构建RESTful服务中的应用。
- **发送和接收JSON数据**:SpringMVC支持通过配置处理器适配器和消息转换器来处理JSON格式的数据。这通常涉及到Ajax请求,利用jQuery或其他库向服务器发送异步请求,并接收JSON响应数据。 6. **异常处理**: ...
- **目标**:Swagger致力于提供一套标准的、人可读的JSON格式来描述API,并提供了工具集用于生成、测试和使用这些API。 - **核心概念**:Swagger的核心是OpenAPI Specification(之前称为Swagger Specification)...
9. **日志和异常处理**:配置日志框架(如Log4j或Logback),并设置全局的异常处理器,提供友好的错误信息。 10. **部署运行**:将项目打包成WAR文件,部署到Tomcat或其他应用服务器上运行。 通过这个整合过程,...
总结起来,Spring MVC对JSON的支持主要依赖于Jackson库,通过`@ResponseBody`和`@RequestBody`注解实现数据交换,配合注解进行类型转换控制,同时允许开发者自定义序列化和反序列化行为,以及配置错误处理机制。...
综上所述,"springmvc-mongodb"项目展示了如何在SpringMVC环境中利用MongoDB进行数据存储和检索,为开发者提供了一个基础但全面的参考实现,便于进一步学习和扩展。在实际开发中,还可以根据需求增加更多的功能,如...
综上所述,"springmvc3+json参数传递后台接收json参数"涵盖了Spring MVC 3中处理JSON数据的核心概念和实践方法,包括JSON数据格式、`@RequestBody`注解、前端JSON数据封装、批量处理、错误处理和配置支持等方面的...
通过以上例子,你可以了解到SpringMVC的基本工作流程,包括接收请求、处理逻辑、数据绑定、异常处理和视图渲染等核心概念。随着深入学习,你会发现SpringMVC的灵活性和可扩展性,使其成为现代Java Web开发的首选框架...
Spring MVC提供了诸如请求映射、视图解析、数据绑定和异常处理等功能,使得Web应用的开发更为高效和灵活。 Hibernate则是一个对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互。通过Hibernate,...