Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Spring控制器以键值对的形式发送响应?_Spring_Spring Mvc - Fatal编程技术网

从Spring控制器以键值对的形式发送响应?

从Spring控制器以键值对的形式发送响应?,spring,spring-mvc,Spring,Spring Mvc,在我们的应用程序中,我们从第三方获取请求对象作为表单数据。我们正在Spring控制器中处理表单数据并将响应发送回。在SpringController中,我们编写了如下逻辑 @RequestMapping(value = "/oci/html/setup", method = RequestMethod.POST, produces = {MediaType.TEXT_HTML_VALUE }, consumes = { MediaType.APPLICATION_FORM_URLENCODED

在我们的应用程序中,我们从第三方获取请求对象作为表单数据。我们正在Spring控制器中处理表单数据并将响应发送回。在SpringController中,我们编写了如下逻辑

@RequestMapping(value = "/oci/html/setup", method = RequestMethod.POST, 
produces = {MediaType.TEXT_HTML_VALUE }, consumes = { MediaType.APPLICATION_FORM_URLENCODED_VALUE })
@ResponseStatus(value= HttpStatus.OK)
@ResponseBody
public String handleOciSetUpRequest1(OciSetupRequest reqObject)
{

    if (LOG.isDebugEnabled())
    {
        LOG.debug("Oci Setup Request Object: " + reqObject.toString());
    }

    final OciSetupResponse response = getOciService().processOciSetUpRequest(reqObject);

    return response.toString();

}
请求对象:

identity: 1234
sharedSecret: password
预期响应对象:

SessionId=1236547878
URL=https://sample.com
这里我们需要以键值对html响应的形式发送响应。任何人都可以帮忙 如何从Spring控制器以键值对的形式发送html响应

如果提供的样本代码将不胜感激

提前感谢

使用地图:

@ResponseBody
public Map<String, String> handleOciSetUpRequest1(OciSetupRequest reqObject)
{

    if (LOG.isDebugEnabled())
    {
        LOG.debug("Oci Setup Request Object: " + reqObject.toString());
    }

    final OciSetupResponse response = getOciService().processOciSetUpRequest(reqObject);

    Map<String, String> responseMap - new HashMap();
    map.put("SessionId", "someValue");
    map.put("URL", "someValue");

    return responseMap; 
    //returns JSON {"SessionId":"someValue", "URL":"someValue"}
}
@ResponseBody
公共地图句柄OCISetupRequest1(OCISetupRequestReqObject)
{
if(LOG.isDebugEnabled())
{
调试(“Oci设置请求对象:+reqObject.toString());
}
最终OciSetupResponse=getOciService().processOciSetUpRequest(reqObject);
Map responseMap-新的HashMap();
map.put(“SessionId”,“someValue”);
map.put(“URL”,“someValue”);
返回响应映射;
//返回JSON{“SessionId”:“someValue”,“URL”:“someValue”}
}
使用地图:

@ResponseBody
public Map<String, String> handleOciSetUpRequest1(OciSetupRequest reqObject)
{

    if (LOG.isDebugEnabled())
    {
        LOG.debug("Oci Setup Request Object: " + reqObject.toString());
    }

    final OciSetupResponse response = getOciService().processOciSetUpRequest(reqObject);

    Map<String, String> responseMap - new HashMap();
    map.put("SessionId", "someValue");
    map.put("URL", "someValue");

    return responseMap; 
    //returns JSON {"SessionId":"someValue", "URL":"someValue"}
}
@ResponseBody
公共地图句柄OCISetupRequest1(OCISetupRequestReqObject)
{
if(LOG.isDebugEnabled())
{
调试(“Oci设置请求对象:+reqObject.toString());
}
最终OciSetupResponse=getOciService().processOciSetUpRequest(reqObject);
Map responseMap-新的HashMap();
map.put(“SessionId”,“someValue”);
map.put(“URL”,“someValue”);
返回响应映射;
//返回JSON{“SessionId”:“someValue”,“URL”:“someValue”}
}

我看到您尝试在响应正文中返回,最好是通过rest控制器,并添加异常处理,您将拥有:

@RestController
public class SomeClassController {

    @PostMapping("/oci/html/setup")
    public ResponseEntity<?> reportRecords(OciSetupRequest reqObject) {
     Map<String, Object> response = new HashMap<>();
        try {
             if (LOG.isDebugEnabled())
             {
                LOG.debug("Oci Setup Request Object: " + reqObject.toString());
             }

             final OciSetupResponse response = getOciService().processOciSetUpRequest(reqObject);
             response.put("SessionId", "1236547878");
             response.put("URL", "https://sample.com");
            return new ResponseEntity<>(response, HttpStatus.OK);
        } catch (Exception e) {
            e.printStackTrace();
            response.put("message", e.getMessage());
            return new ResponseEntity<>(response, HttpStatus.INTERNAL_SERVER_ERROR);
        }
    }   
}
@RestController
公共类控制器{
@后期映射(“/oci/html/setup”)
公共响应报告记录(OCISetupRequestReqObject){
Map response=newhashmap();
试一试{
if(LOG.isDebugEnabled())
{
调试(“Oci设置请求对象:+reqObject.toString());
}
最终OciSetupResponse=getOciService().processOciSetUpRequest(reqObject);
答复.付诸表决(“SessionId”,“1236547878”);
response.put(“URL”https://sample.com");
返回新的ResponseEntity(response,HttpStatus.OK);
}捕获(例外e){
e、 printStackTrace();
response.put(“message”,即getMessage());
返回新的ResponseEntity(response,HttpStatus.INTERNAL_SERVER_ERROR);
}
}   
}

我看到您尝试在响应正文中返回,最好是通过rest控制器,并添加异常处理,您将拥有:

@RestController
public class SomeClassController {

    @PostMapping("/oci/html/setup")
    public ResponseEntity<?> reportRecords(OciSetupRequest reqObject) {
     Map<String, Object> response = new HashMap<>();
        try {
             if (LOG.isDebugEnabled())
             {
                LOG.debug("Oci Setup Request Object: " + reqObject.toString());
             }

             final OciSetupResponse response = getOciService().processOciSetUpRequest(reqObject);
             response.put("SessionId", "1236547878");
             response.put("URL", "https://sample.com");
            return new ResponseEntity<>(response, HttpStatus.OK);
        } catch (Exception e) {
            e.printStackTrace();
            response.put("message", e.getMessage());
            return new ResponseEntity<>(response, HttpStatus.INTERNAL_SERVER_ERROR);
        }
    }   
}
@RestController
公共类控制器{
@后期映射(“/oci/html/setup”)
公共响应报告记录(OCISetupRequestReqObject){
Map response=newhashmap();
试一试{
if(LOG.isDebugEnabled())
{
调试(“Oci设置请求对象:+reqObject.toString());
}
最终OciSetupResponse=getOciService().processOciSetUpRequest(reqObject);
答复.付诸表决(“SessionId”,“1236547878”);
response.put(“URL”https://sample.com");
返回新的ResponseEntity(response,HttpStatus.OK);
}捕获(例外e){
e、 printStackTrace();
response.put(“message”,即getMessage());
返回新的ResponseEntity(response,HttpStatus.INTERNAL_SERVER_ERROR);
}
}   
}

请提供OCISetupResponse的源代码控制器的实际输出是什么?请提供OCISetupResponse的源代码控制器的实际输出是什么?您好Edy Huiza,谢谢您的回复。我已尝试使用您的代码,但返回以下错误。java.lang.IllegalArgumentException:找不到类型为class java.util.HashMapSo的返回值的转换器。因此,我已将方法return type修改为String,并将响应作为类似于response.toString()的字符串对象发送。更改后其工作方式你好,Edy Huiza,谢谢您的回复。我已尝试使用您的代码,但返回以下错误。java.lang.IllegalArgumentException:找不到类型为class java.util.HashMapSo的返回值的转换器。因此,我已将方法return type修改为String,并将响应作为类似于response.toString()的字符串对象发送。变更后,其工作