如何访问从服务器返回的字符串

时间:2016-06-30 12:48:45

标签: jquery spring-mvc

我继承了一个使用spring的遗留Web应用程序。我可以看到HTML代码调用java类,java类返回一个ModelAndView对象。这完全没问题,但我目前还不了解的是,如何在HTML代码中访问特定的String值?我正在寻找的是具体的语法 - 我尝试了以下内容:



$.get("https://mymachine:444/myapp/TestAction.action", {param:selectedParam})
	.done(function( pbURL ) {
		alert( "Data Loaded: " + {pbURL} );
    });


// and the java...
String pbURL = "https://blablahblah";
request.setAttribute("pbURL", pbURL);

return new ModelAndView("player");




java中相应的代码片段会填充一个名为pbURL的变量,这就是我想要提取但显然失败的....

2 个答案:

答案 0 :(得分:1)

因此request.setAttribute将不起作用,请求对象是客户端请求的抽象。操纵它不会改变response

您的回复是以下代码:

return new ModelAndView("player");

如果你想改变它,你有两种方式:

  • 不再返回ModelAndView,而是使用directl响应对象并将其写入。
  • 找到定义player视图的位置(player.jsp可能?)并在HTML / JSON /中传递参数???由春天产生。为此,您需要以下代码:

    ModelAndView mav = ModelAndView(“player”);  mav.setAttribute(“pbUrl”,pbUrl);  return mav;

然后假设您的播放器引用了jsp:

<input type="hidden" id="pbUrl" value="${pbUrl}"/>

如果然后在整页中插入此HTML,您可以使用document.getElementById('pbUrl').value

答案 1 :(得分:1)

您可以使用ResponseEntity而不是modelandview将字符串返回给客户端,就像这样

@RequestMapping(value ="/returnString",method = RequestMethod.GET)
public ResponseEntity<String> returnString() {
    HttpHeaders responseHeaders = new HttpHeaders();
    responseHeaders.add("Content-Type", "text/html; charset=UTF-8");
    return new ResponseEntity<String>("player", responseHeaders, HttpStatus.CREATED);
}