您的位置:首页 > 游戏 > 游戏 > SpringMVC扩展和SSM框架整合

SpringMVC扩展和SSM框架整合

2024/9/24 21:29:30 来源:https://blog.csdn.net/2301_78714573/article/details/140965925  浏览:    关键词:SpringMVC扩展和SSM框架整合

在 SpringMVC 框架中处理 JSON 数据通常需要以下几个步骤:

1. 引入关依赖

首先,需要在项目的依赖管理中引入处理 JSON 数据所需的库,如 Jackson 库。

2. 配置消息转换器

在 SpringMVC 的配置文件中,配置 HttpMessageConverter 来处理 JSON 格式的请求和响应。

<mvc:annotation-driven><mvc:message-converters register-defaults="true"><bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/></mvc:message-converters>
</mvc:annotation-driven>

3. 控制器方法

在控制器的方法中,可以直接返回 Java 对象,SpringMVC 会自动将其转换为 JSON 格式响应给客户端。

@Controller
public class MyController {@RequestMapping(value = "/getUser", method = RequestMethod.GET)@ResponseBodypublic User getUser() {User user = new User();user.setId(1);user.setName("张三");return user;}
}

在上述示例中,@ResponseBody 注解表示将返回的对象转换为 JSON 格式。

4. 接收 JSON 请求参数

使用 @RequestBody 注解来接收客户端发送的 JSON 格式的请求参数。

@RequestMapping(value = "/saveUser", method = RequestMethod.POST)
@ResponseBody
public String saveUser(@RequestBody User user) {// 处理保存用户的逻辑return "保存成功";
}

例如,如果客户端发送的 JSON 数据为 {"id":2,"name":"李四"} ,SpringMVC 会将其自动转换为 User 对象。

在 SpringMVC 中处理 JSON 数据传递时的中文乱码和日期问题,可以通过以下方式解决:

中文乱码问题解决方法

  1. 在 web.xml 中配置编码过滤器:
<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><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param>
</filter>
<filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern>
</filter-mapping>
  1. 在控制器方法中设置响应的编码:
@RequestMapping(value = "/yourUrl", method = RequestMethod.GET)
public void yourMethod(HttpServletResponse response) {response.setContentType("application/json;charset=UTF-8");// 后续处理逻辑
}

日期问题解决方法

  1. 全局配置日期格式:
@Configuration
public class JacksonConfig {@Beanpublic ObjectMapper objectMapper() {ObjectMapper mapper = new ObjectMapper();SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");mapper.setDateFormat(dateFormat);return mapper;}
}
  1. 在实体类的日期字段上使用 @JsonFormat 注解指定格式:
public class YourEntity {@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")private Date yourDateField;
}

例如,如果没有处理好日期问题,可能会出现类似 {"date": 1691321600000} 这样不直观的日期表示。而通过上述处理,就能得到 {"date": "2024-08-06 16:00:00"} 这种易于理解的格式。

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com