ssm+maven搭建及扩展修改(三.对前俩节基础架构弊端及解析)

第一节ssm+maven搭建及扩展修改(一.搭建基础架构)

第二节ssm+maven搭建及扩展修改(二.架构页面除去jsp采用html5)

         之前用的老式的架构,不是前后端分离,这里,我想大家都能看到之前的代码,它的返回类型是ModelAndView(Model、ModelMap和ModelAndView),当然你可以去封装它。

          其实,前后端分离的区别就在于在controller层的接口类上添加了@ResponseBody

String 指定返回的视图页面名称,结合设置的返回地址路径加上页面名称后缀即可访问到。
 

注意:如果方法声明了注解@ResponseBody ,则会直接将返回值输出到页面。 例如:

@RequestMapping(value = "/something", method = RequestMethod.GET) 
@ResponseBody 
public String helloWorld()  { 
return"Hello World"; 
} 
上面的结果会将文本"Hello World "直接写到http响应流。

@RequestMapping("/welcome") 
public String welcomeHandler() { 
  return"center"; 
} 
对应的逻辑视图名为“center”,URL= prefix前缀+视图名称 +suffix后缀组成。
void  如果返回值为空,则响应的视图页面对应为访问地址

@RequestMapping("/welcome") 
publicvoid welcomeHandler() {} 
此例对应的逻辑视图名为"welcome"。

       当然,只是写法不同,架包什么的都不用变,在前后台分离架构里,html与服务不在同一工程,那么ModelAndView的指定到目标页面的写法是无法使用的,因此,前后台分离的写法,页面之间跳转均是跳转后通过携带的数据或比如id查询后得到的数据再展示。而,前后台不分离的可以通过请求后ModelAndView内部指定目标页面和数据去展示

       在当前,流行的前后台分离写法里,通常都采用@RestController定义controller层,省去了每个请求的接口都写@ResponseBody的麻烦。

package org.test.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import org.test.bean.Person;
import org.test.service.IPersonService;

@RestController
@RequestMapping("/personController")
public class PersonController {
    
    private IPersonService personService;
    
    public IPersonService getPersonService() {
        return personService;
    }

    @Autowired
    public void setPersonService(IPersonService personService) {
        this.personService = personService;
    }
   
}

如感兴趣,可以看看Model、ModelMap和ModelAndView之间的区别及一些用法,比如页面跳转及携带参数,这部分,将会在java面试(Model、ModelMap和ModelAndView之间的区别及一些用法)这一栏中追加写好,敬请期待。谢谢!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值