我继承了一个使用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的变量,这就是我想要提取但显然失败的....
答案 0 :(得分:1)
因此request.setAttribute将不起作用,请求对象是客户端请求的抽象。操纵它不会改变response
。
您的回复是以下代码:
return new ModelAndView("player");
如果你想改变它,你有两种方式:
找到定义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);
}