java - spring 能不能在方法内决定返回类型
PHP中文网
PHP中文网 2017-04-17 13:10:21
0
2
589

这个是直接对应 index 模型

java    @RequestMapping(value = "/")
    public String index(Map<String, Object> map) {
        map.put("title", "");
        map.put("keywords", "");
        map.put("description", "");

        return "index";
    }

这个是直接返回 index 字符串

java    @RequestMapping(value = "/")
    @ResponseBody
    public String index(Map<String, Object> map) {
        map.put("title", "");
        map.put("keywords", "");
        map.put("description", "");

        return "index";
    }

能不能在方法中控制他返回对应 index 模型还是返回 index 字符串

就是这2个合并

也就是 @ResponseBody 能不能只用在其他地方

如果是下面这样,他会把 title keywords description 直接加在 /login/ 地址栏直接显示,怎么让他不显示,直接就是 跳转到 /login/

java    @RequestMapping(value = "/")
    public String index(Map<String, Object> map) {
        map.put("title", "");
        map.put("keywords", "");
        map.put("description", "");

        return "redirect:/login/";
    }
PHP中文网
PHP中文网

认证0级讲师

reply all(2)
左手右手慢动作

I feel that ResponseEntity can solve the problem of the subject, but it is not recommended. The following is just an example.

@RequestMapping("/entity")
@ResponseBody
public ResponseEntity<String> handle(HttpEntity<byte[]> requestEntity) throws UnsupportedEncodingException {
    System.out.println(requestEntity.getHeaders().getFirst("MyRequestHeader"));
    System.out.println(Arrays.toString(requestEntity.getBody()));

    HttpHeaders responseHeaders = new HttpHeaders();
    responseHeaders.set("MyResponseHeader", "MyValue");
    return new ResponseEntity<>("Hello World", responseHeaders, HttpStatus.CREATED);
}

The code is messy, the writing is not satisfactory, and it is annoying to change it.

It is better to use headers to differentiate. Different headers of the same URL map to different methods.
For example:

@RequestMapping(value = "/",method = RequestMethod.GET, produces = MediaType.APPLICATION_XML_VALUE,headers = {"a=1"})
public String index(Map<String, Object> map) {
    map.put("title", "");
    map.put("keywords", "");
    map.put("description", "");

    return "index";
}

@RequestMapping(value = "/",method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE,headers = {"a=1"})
@ResponseBody
public Map indexJson(Map<String, Object> map) {
    map.put("title", "");
    map.put("keywords", "");
    map.put("description", "");

    return map;
}
巴扎黑

/login should be set as post request

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template