Spring MVC扩展和SSM框架整合

目录

Spring MVC的扩展主要体现在以下几个方面

1.JSON数据的传递处理

2. JSON数据传递过程中的中文乱码和日期问题

SSM框架整合

Spring MVC是Spring框架的一部分,它实现了MVC(模型-视图-控制器)设计模式,用于处理Web层请求响应。

Spring MVC的扩展主要体现在以下几个方面

控制器(Controller):

  • 使用@Controller注解定义控制器类。
  • 使用@RequestMapping(或其变体如@GetMapping@PostMapping等)注解定义请求映射路径。
  • 控制器方法可以通过@RequestParam@PathVariable等注解接收请求参数。
  • 使用@ResponseBody注解将方法的返回值直接作为HTTP响应体返回。

数据交互:

  • 支持多种数据格式,如JSON、XML等,通过配置相应的消息转换器(如Jackson)实现。
  • 使用@RequestBody@ResponseBody注解处理请求体和响应体中的数据。

异常处理:

  • 通过@ExceptionHandler注解在控制器中定义异常处理方法,实现全局或局部异常处理。

拦截器(Interceptor):

  • 实现HandlerInterceptor接口,可以定义请求预处理、请求处理和请求后处理的方法,用于日志记录、权限校验等。

视图解析:

  • 配置视图解析器(如InternalResourceViewResolver),将控制器返回的视图名称解析为具体的视图页面。

1.JSON数据的传递处理

步骤1:修改控制层

    @ResponseBody
    @GetMapping("/exist")
    public String exist(String account) {
        int exist = -1;
        try {
            boolean flag = sysUserService.exist(account);
            if (flag) {
                exist = 1;
            } else {
                exist = 0;
            }
        } catch (RuntimeException e) {
            exist = -1;
        }
        return JSONObject.of("exist", exist).toString();
    }

步骤2:修改视图层

	account.bind("blur", function () {
		// Ajax后台验证account是否已存在
		$.ajax({
			type: "GET", // 请求类型
			url: path + "/user/exist", // 请求的url
			data: {account: account.val()}, // 请求参数
			dataType: "json", // ajax接口(请求url)返回的数据类型
			success: function (data) { // data:返回数据(json对象)
				if (data.exist == 1) { // 账号已存在,错误提示
					validateTip(account.next(), {"color": "red"}, imgNo + " 该用户账号已存在", false);
				} else if (data.exist == 0) { // 账号可用,正确提示
					validateTip(account.next(), {"color": "green"}, imgYes + " 该账号可以使用", true);
				} else if (data.exist == -1) { // 错误
					validateTip(account.next(), {"color": "red"}, imgNo + data.msg, false);
				}
			},
			error: function (data) { // 当访问时候,404、500 等非200的错误状态码
				validateTip(account.next(), {"color": "red"}, imgNo + " 您访问的页面不存在", false);
			}
		});
	}).bind("focus", function () {
		//显示友情提示
		validateTip(account.next(), {"color": "#666666"}, "* 用户编码是您登录系统的账号", false);
	}).focus();

2. JSON数据传递过程中的中文乱码和日期问题

JSON中文乱码问题和JSON日期格式问题

方式一:在控制器方法上设置编码格式

    @ResponseBody
    @GetMapping(value = "/{id}/view",produces = {"application/json;charset=UTF-8"})
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JSONField(format = "yyyy-MM-dd")
    private Date birthday;

方式二:装配消息转换器

    <mvc:annotation-driven>
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>application/json;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
            <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html;charset=UTF-8</value>
                    </list>
                </property>
                <property name="features">
                    <list>
                        <value>WriteDateUseDateFormat</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

SSM框架整合

SSM框架整合是指将Spring、Spring MVC和MyBatis三个开源框架结合使用,以搭建企业级Java Web应用的后端架构。

依赖管理:

  • 在项目的pom.xml文件中添加Spring、Spring MVC和MyBatis的依赖,以及数据库驱动、连接池等必要依赖。

配置文件:

  • Spring配置文件:配置数据源、事务管理器、扫描的包等。
  • MyBatis配置文件:配置别名、SQL日志、数据源等,并编写Mapper XML文件定义SQL语句。
  • Spring MVC配置文件:配置视图解析器、拦截器、消息转换器等。

整合MyBatis:

  • 使用@Mapper注解或@MapperScan注解扫描Mapper接口,并配置SqlSessionFactoryBeanMapperScannerConfigurer
  • 在Spring配置文件中配置SqlSessionFactoryTransactionManager,并指定Mapper接口的位置。

整合Spring MVC:

  • 配置DispatcherServlet,并设置其加载的Spring配置文件。
  • 配置视图解析器,指定视图文件的位置和类型。

业务逻辑层(Service):

  • 设计Service接口和实现类,用于封装业务逻辑。
  • 在Spring配置文件中配置Service的Bean,并注入必要的依赖(如Mapper)。

控制器层(Controller):

  • 设计Controller类,用于接收请求、调用Service层处理业务逻辑,并返回视图或数据。
  • 使用@RequestMapping等注解定义请求映射路径和请求方法。

Spring MVC扩展和SSM框架整合为Java Web开发提供了强大的支持。通过合理的配置和编码,可以实现高效、灵活、可扩展的Web应用。在实际开发中,还需要注意代码的规范性和可维护性,以及性能优化和安全性等问题。

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值