谁在Spring4REST控制器中执行ViewResolver的工作&;谁应要求提供意见?

谁在Spring4REST控制器中执行ViewResolver的工作&;谁应要求提供意见?,rest,spring-mvc,spring-restcontroller,Rest,Spring Mvc,Spring Restcontroller,简单控制器&平铺视图解析器=>它可以工作 /** * For Exple: * Spring Controller * & Tiles View Resolver * It Works Well */ @Controller public class Home { @Autowired private IManager<BaseObject> manager; public void setManager(IManager<BaseObject&g

简单控制器&平铺视图解析器=>它可以工作

/**
 * For Exple:
 * Spring Controller
 * & Tiles View Resolver
 * It Works Well
 */
@Controller
public class Home {
  @Autowired
  private IManager<BaseObject> manager;
  public void setManager(IManager<BaseObject> manager) {
      this.manager = manager;
  } 
  @RequestMapping(value = "/listprovider", method = RequestMethod.GET)
  public String listProvider(ModelMap model) {
      model.addAttribute("listprovider",this.manager.getAllProvider());
      return "listProviderPage";
      // listProviderPage ==> the name of the rendered (Tiles)View.
      // it works well
  }
}
/**
*关于解释:
*弹簧控制器
*平铺视图解析程序(&T)
*它工作得很好
*/
@控制器
公屋{
@自动连线
私人IManager;
公共void集合管理器(IManager){
this.manager=经理;
} 
@RequestMapping(value=“/listprovider”,method=RequestMethod.GET)
公共字符串listProvider(ModelMap模型){
model.addAttribute(“listprovider”,this.manager.getAllProvider());
返回“listProviderPage”;
//listProviderPage=>渲染(平铺)视图的名称。
//它工作得很好
}
}
但是使用RestController,呈现的只是一个JSON,而不是一个视图页面,我希望同时呈现视图页面和JSON数据

/**
 * But with
 * Spring4 RestController
 * 
 */
@RestController
public class Home {
  @Autowired
  private IManager<BaseObject> manager;
  public void setManager(IManager<BaseObject> manager) {
      this.manager = manager;
  } 
  @RequestMapping(value = "/listprovider", method = RequestMethod.GET)
  public String listProvider() {
      return this.manager.getAllProvider(); // Message Converter To Json
      // what about the view?
      // what is the secret of view resolver in **Spring Rest**
  }
}
/**
*但是
*Spring4控制器
* 
*/
@RestController
公屋{
@自动连线
私人IManager;
公共void集合管理器(IManager){
this.manager=经理;
} 
@RequestMapping(value=“/listprovider”,method=RequestMethod.GET)
公共字符串listProvider(){
将此.manager.getAllProvider();//消息转换器返回到Json
//风景怎么样?
//在**Spring Rest中,视图解析器的秘密是什么**
}
}

@RestController是@Controller和@ResponseBody的组合

当您使用@RestController时,响应会隐式转换为Json格式,无需显式声明@responseBy

它被定义为只发送定义格式的数据,使用它无法检索任何视图

若要从@restcontroller检索页面,则需要使用ModelandView或 编写一个新的控制器,并用@controller注释并返回视图名称,以便它查找视图解析器并呈现适当的页面

您需要在spring配置文件中配置视图解析器,如下所示

@Bean
    public UrlBasedViewResolver urlBasedViewResolver()
    {
        UrlBasedViewResolver res = new InternalResourceViewResolver();
        res.setViewClass(JstlView.class);
        res.setPrefix("/WEB-INF/");
        res.setSuffix(".jsp");
        return res;
    }
所以,当您从控制器返回页面名称时,视图解析器在WEB-INF文件夹中查找适当的jsp页面并返回视图

以下链接供参考


@RestController是@Controller和@ResponseBody的组合

当您使用@RestController时,响应会隐式转换为Json格式,无需显式声明@responseBy

它被定义为只发送定义格式的数据,使用它无法检索任何视图

若要从@restcontroller检索页面,则需要使用ModelandView或 编写一个新的控制器,并用@controller注释并返回视图名称,以便它查找视图解析器并呈现适当的页面

您需要在spring配置文件中配置视图解析器,如下所示

@Bean
    public UrlBasedViewResolver urlBasedViewResolver()
    {
        UrlBasedViewResolver res = new InternalResourceViewResolver();
        res.setViewClass(JstlView.class);
        res.setPrefix("/WEB-INF/");
        res.setSuffix(".jsp");
        return res;
    }
所以,当您从控制器返回页面名称时,视图解析器在WEB-INF文件夹中查找适当的jsp页面并返回视图

以下链接供参考


我知道Vaibs,但问题是如何使用Spring Rest Controller管理视图?谁/什么负责春季休息中的渲染视图?如何在即将到来的请求和视图响应之间进行映射?我知道Vaibs,但问题是如何使用SpringREST控制器管理视图?谁/什么负责春季休息中的渲染视图?如何在未来请求和视图响应之间进行映射?