Spring Mvc请求转发

时间:2018-04-01 10:01:43

标签: java spring spring-mvc

@RequestMapping("/modify")
public String modifyAd(AdDto adDto, Model model){
    if (adService.modifyAd(adDto)){
        adDto.setTitle("");
        model.addAttribute(PageCodeEnum.KEY,PageCodeEnum.MODIFY_SUCCESS);
    }else {
        model.addAttribute(PageCodeEnum.KEY,PageCodeEnum.MODEFY_FAILED);
    }
    return "forward:search";
}

我从jsp获得的adDto.title是'芒果冰淇淋11',

我已将标题设为“”

debug before forward

@RequestMapping(value = "/search",method = RequestMethod.POST)
public String queryByTitle(AdDto adDto, Model model){
    List<Ad>adList = adService.queryByTitle(adDto);
    model.addAttribute("adList",adList);
    model.addAttribute("searchParam",adDto);
    return "/content/adList";
}

但是在前进之后,adDto.title没有改变。我不知道为什么。

debug after forward

您可以看到“标题”更改为“芒果冰淇淋11”

2 个答案:

答案 0 :(得分:0)

我认为对另一个问题的回答可能有所帮助:

Spring forward with added parameters?

在转发请求之前重新添加您需要的内容。

使用FlashScope也应该是一个例子:

https://www.javacodegeeks.com/2012/02/spring-mvc-flash-attributes.html

(在示例中它使用&#34; redirec:some / path&#34;但是使用&#34; forward&#34;正如你所做的那样也应该是可能的)

Flash属性的Spring(4.1)文档链接: https://docs.spring.io/spring/docs/4.1.x/spring-framework-reference/html/mvc.html#mvc-flash-attributes

答案 1 :(得分:0)

我在添加以下代码时终于解决了这个问题:

Code