java - 如何根据条件返回 json 响应并重定向到其他 View ?

标签 java spring return return-type

我有一个搜索条件,这取决于我得到列表的结果。 如果列表仅包含 1 个数据,那么我想返回到该特定数据的编辑 View 。如果列表包含超过 1 个数据,我想返回 jsonResponse 以显示数据表。

我试过了,但是我没有得到数据表,也没有得到 View

if(reservationGridDataPage.getSize() > 1){
    GridJSONResponse jsonResponse = ReservationGridHelper.prepareResponse(reservationGridDataPage);
    jsonResponse.setiTotalDisplayRecords(gridManager.getTotalSearchedReservations(pageRequest, null, entityStateCode, searchParams));
    jsonResponse.setsEcho(sEcho);
    return jsonResponse;
}else{
    Long entityKey = null;
    List<ReservationGridData> content = reservationGridDataPage.getContent();
    for (ReservationGridData t : content) {
        entityKey = t.getId();
    }

    RedirectView redirectView = new RedirectView("/xxx/editRes?id="+entityKey);
    return new ModelAndView(redirectView);
}

最佳答案

只返回类型为String的 View 名称。然后,如果 reservationGridDataPage.getSize() > 1 返回 true,则重定向到使用 @ResponseBody 注释的 Controller 的另一个方法,它将返回您的 json 对象。

@RequestMapping(value = "//... your mapping blah blah ...", method = RequestMethod.POST)
public String method1(){
    if(reservationGridDataPage.getSize() > 1){
        return "redirect:/json-response.do";
    }else{
        Long entityKey = null;
        List<ReservationGridData> content = reservationGridDataPage.getContent();
        for (ReservationGridData t : content) {
            entityKey = t.getId();
        }

        //...
        //some other codes

        return "the-name-of-my-edit-view";
    }
}

@RequestMapping(value = "/json-response.do", method = RequestMethod.GET)
public @ResponseBody GridJSONResponse jsonResponseController(){
    //... some other codes
    GridJSONResponse jsonResponse = ReservationGridHelper.prepareResponse(reservationGridDataPage);
    jsonResponse.setiTotalDisplayRecords(gridManager.getTotalSearchedReservations(pageRequest, null, entityStateCode, searchParams));
    jsonResponse.setsEcho(sEcho);
    //...

    return GridJSONResponse;
}

关于java - 如何根据条件返回 json 响应并重定向到其他 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17780399/

相关文章:

java - Selenium - 如何获取运行时生成的 iframe id

java - 如何使用 Spring Boot 修复计划任务问题

java - 想要在密码上添加 @JsonIgnore 属性以响应 Json

python - 在方法之间共享值

c++ - 为什么超过 255 的返回码在 C++ 中返回不同的数字?

Javascript - getDomElement 链接到这里的哪里?

java - Android Studio : add a custom jar as dependency

java - 如何传递对 promise 的响应集合

java - 如何在 Spring Boot 中将 application.properties 文件外部化为例如外部依赖 JAR?

java - hibernate 持久化: Column not found