2017-01-10 2 views
1

Im Folgenden zu sehen ist mein Controller-Code:, wie mehrere Werte von der Steuerung zurückzukehren

@RequestMapping(value = "/productProgramsDataTable", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) 
    @ResponseBody 
    public ResponseEntity<List<ProductsDataTableItemDto>> getInitiaorTasks(String productStatusType, String productStatusForEachProduct) { 
    final long l1 = System.currentTimeMillis(); 
    ResponseEntity<List<ProductsDataTableItemDto>> retDetail = null; 
    List<ProductsDataTableItemDto> ppdList = null; 
    List<String> statusVar = null; 
    try { 
     ppdList = programPlannerListService.productPrograms(); 
     statusVar.add(productStatusType); 
     statusVar.add(productStatusForEachProduct); 
    } catch (final Exception e) { 
     e.printStackTrace(); 
    } 
    retDetail = new ResponseEntity<>(ppdList,HttpStatus.OK); 
    return retDetail; 
    } 

Zusammen mit retDetail I productStatusType und productStatusForEachProduct

Wie ist es möglich zurückkehren wollen diese Werte an jQuery zurückgeben?

+0

Da Sie JSON produzieren zugegriffen werden kann, müssen Sie ein betrachtet zu erzeugen Wrapping-Objekt mit productStatusType und productStatusForEachProduct? –

Antwort

0

Versuchen Sie, eine Bean zu erstellen, die alle Objekte enthält, die Sie zurückgeben müssen, mit einem Getter und einem Setter für jeden von ihnen, so dass Sie sie in der Methode setzen und abrufen können, wann immer Sie sie benötigen. Etwas von der Art

public class Container{ 
    ResponseEntity<List<ProductsDataTableItemDto>> retDetail; 
    String productStatusType; 
    String productStatusForEachProduct; 

    // Getters and setters 
} 

Damit Sie tun können:

Container result = new Container(); 
result.setRetDetail(retDetail); 
result.setProductStatusType(productStatusType); 
result.setProductStatusForEachProduct(productStatusForEachProduct); 
return result; 

Dann Rückkehr Typ Container ändern.

Eine andere Möglichkeit ist, einen Konstruktor mit den drei Feldern in der Klasse Container zu setzen und damit das Ergebnis zu erzeugen.

2

In Ihrem Controller Sie Daten hinzufügen, die von JSP/JS Model model

model.addAttribute("productStatusForEachProduct", productStatusForEachProduct); 
model.addAttribute("productStatusType", productStatusType); 
model.addAttribute("retDetail", ppdList); 

Dann in Ihrer JSP

<script> 
    var productStatusForEachProduct = "${productStatusForEachProduct}"; 
    var productStatusType = "${productStatusType}"; 
    var retDetail= "${retDetail}"; 
</script> 
Verwandte Themen