Spring MVC - Set\Populate 带有 Japascript 对象的 JSTL\JSP 对象的内容
Spring MVC - Set\Populate the content of a JSTL\JSP object with a Japascript object
我想通过 Spring MVC 项目中的 javascript 对象设置 jstl/jsp 对象的值,这个问题可能已经提出了,但我不是在网上找到任何满意的答案,我刚开始使用 Spring MVC 所以也许这是一个愚蠢的问题,简而言之,我想用 Array/Object 的内容填充 jstl ModelAtrribute 集合的内容java脚本。
这些是我想使用的 类 java:
Marker.java
public class Marker {
private String name;
private String url;
private String latitude;
private String longitude;
private String popupContent;
public Marker(){}
public Marker(String name,String url,String latitude,String longitude,String popupContent){
this.name = name;
this.url = url;
this.latitude = latitude;
this.longitude = longitude;
this.popupContent = popupContent;
}
//Getter and setter
}
MarkerList.java
@JsonIgnoreProperties(ignoreUnknown = true)
public class MarkerList implements Serializable {
List<Marker> markers;
public List<Marker> getMarkers() {
return markers;
}
public void setMarkers(List<Marker> markers) {
this.markers= markers;
}
}
控制器Marker.java
@Controller
@PreAuthorize("hasRole('ROLE_USER')")
public class MarkerController {
//Autowired and setting of all other variables.
//Call the page JSP.
@RequestMapping(value="/map",method= RequestMethod.GET)
public String loadMap2(Model model){
model.addAttribute("markerList",markerList);
return "riconciliazione2/mappa/leafletMap";
}
@RequestMapping(value="/map3",method = RequestMethod.POST)
public String result4(@RequestParam(required=false, value="urlParam")String url,
@ModelAttribute(value="markerList") MarkerList arrayParam
){
//I want to find a object MarkerList populate with some Marker.
return "redirect:/map13";
}
Test.jsp
//some code html....
<script>
markerList = [];
marker = {name:'test',url:'test',latitude:'test',longitude:'test',popupContent:'test'};
markerList.push(marker);
<!--How populate the JSTL "markerList" variable??????, i want if possible doing something like this. -->
var index = 0;
for(var mark in markerList){
<c:set var="${marker.name}" scope="session" value="${mark.name.toString()}"/>
<!-- Other parameter -->
<c:out value="${marker.name}" />
<!-- Other parameter -->
<!-- How can i add the new Marker with the value setted ???-->
${markerList}.add(${marker})
}
</script>
<!-- I want to use the new content of the markerList object with some operation -->
<c:forEach items="${markerList}" var="idMarker">
<input id="nameForm" name="nameParam" type="hidden" value="<c:out value="${idMarker.name}" />"/>
</c:forEach>
<c:url var="url" value="/map3" />
<form:form action="${url}" method="post" id="/map3" modelAttribute="markerList">
<form:input type="hidden" name="markerList" value=${markerList}/>
<input type="text" name="urlParam" value="" title="urlParam"/>
<input type="submit" name="urlFormParam" value="urlForm" />
</form:form>
<c:url var="url" value="/map3" />
<form:form action="${url}" method="post" id="/map3" modelAttribute="markerList">
<form:input type="hidden" name="markerList" value=${markerList}/>
<input type="text" name="urlParam" value="" title="urlParam"/>
<input type="submit" name="urlFormParam" value="urlForm" />
</form:form>
//some code html....
我如何 "send" 将 java 脚本对象 "markerLis" 传输到 Spring MVC 的控制器 ModelAttribute "MarkerList"?
注意: 我知道我可以 post 像 json 响应一样的 java 脚本对象并使用 "RequestBody" 和 Spring MVC 的 "ResponseBody" 注释用于接收 json 响应。
更新说明: 所以没有任何 ajax 电话(我知道我伤害了自己很多)。
我问这个问题只是出于好奇。
提前联系。
您可以拨打 ajax 电话。
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var response = JSON.parse(xmlhttp.responseText);
...
//process response code
...
}
}
xmlhttp.open("GET", "URL of spring", true);
xmlhttp.send();
如果你使用jquery:
$.ajax({
type: "GET",
url: "URL from spring",
success: function( response ){
...
// Code to process the response
...
}
});
更新
您可以动态生成表单并提交。或添加到您的 HTML
正文
<script>
var f = document.createElement("form");
f.setAttribute('method',"post");
f.setAttribute('action',"submit.php");
var i = document.createElement("input"); //input element, text
i.setAttribute('type',"text");
i.setAttribute('name',"username");
var s = document.createElement("input"); //input element, Submit button
s.setAttribute('type',"submit");
s.setAttribute('value',"Submit");
f.appendChild(i);
f.appendChild(s);
//and some more input elements here
//and dont forget to add a submit button
document.getElementsByTagName('body')[0].appendChild(f);
</script>
我想通过 Spring MVC 项目中的 javascript 对象设置 jstl/jsp 对象的值,这个问题可能已经提出了,但我不是在网上找到任何满意的答案,我刚开始使用 Spring MVC 所以也许这是一个愚蠢的问题,简而言之,我想用 Array/Object 的内容填充 jstl ModelAtrribute 集合的内容java脚本。
这些是我想使用的 类 java:
Marker.java
public class Marker {
private String name;
private String url;
private String latitude;
private String longitude;
private String popupContent;
public Marker(){}
public Marker(String name,String url,String latitude,String longitude,String popupContent){
this.name = name;
this.url = url;
this.latitude = latitude;
this.longitude = longitude;
this.popupContent = popupContent;
}
//Getter and setter
}
MarkerList.java
@JsonIgnoreProperties(ignoreUnknown = true)
public class MarkerList implements Serializable {
List<Marker> markers;
public List<Marker> getMarkers() {
return markers;
}
public void setMarkers(List<Marker> markers) {
this.markers= markers;
}
}
控制器Marker.java
@Controller
@PreAuthorize("hasRole('ROLE_USER')")
public class MarkerController {
//Autowired and setting of all other variables.
//Call the page JSP.
@RequestMapping(value="/map",method= RequestMethod.GET)
public String loadMap2(Model model){
model.addAttribute("markerList",markerList);
return "riconciliazione2/mappa/leafletMap";
}
@RequestMapping(value="/map3",method = RequestMethod.POST)
public String result4(@RequestParam(required=false, value="urlParam")String url,
@ModelAttribute(value="markerList") MarkerList arrayParam
){
//I want to find a object MarkerList populate with some Marker.
return "redirect:/map13";
}
Test.jsp
//some code html....
<script>
markerList = [];
marker = {name:'test',url:'test',latitude:'test',longitude:'test',popupContent:'test'};
markerList.push(marker);
<!--How populate the JSTL "markerList" variable??????, i want if possible doing something like this. -->
var index = 0;
for(var mark in markerList){
<c:set var="${marker.name}" scope="session" value="${mark.name.toString()}"/>
<!-- Other parameter -->
<c:out value="${marker.name}" />
<!-- Other parameter -->
<!-- How can i add the new Marker with the value setted ???-->
${markerList}.add(${marker})
}
</script>
<!-- I want to use the new content of the markerList object with some operation -->
<c:forEach items="${markerList}" var="idMarker">
<input id="nameForm" name="nameParam" type="hidden" value="<c:out value="${idMarker.name}" />"/>
</c:forEach>
<c:url var="url" value="/map3" />
<form:form action="${url}" method="post" id="/map3" modelAttribute="markerList">
<form:input type="hidden" name="markerList" value=${markerList}/>
<input type="text" name="urlParam" value="" title="urlParam"/>
<input type="submit" name="urlFormParam" value="urlForm" />
</form:form>
<c:url var="url" value="/map3" />
<form:form action="${url}" method="post" id="/map3" modelAttribute="markerList">
<form:input type="hidden" name="markerList" value=${markerList}/>
<input type="text" name="urlParam" value="" title="urlParam"/>
<input type="submit" name="urlFormParam" value="urlForm" />
</form:form>
//some code html....
我如何 "send" 将 java 脚本对象 "markerLis" 传输到 Spring MVC 的控制器 ModelAttribute "MarkerList"?
注意: 我知道我可以 post 像 json 响应一样的 java 脚本对象并使用 "RequestBody" 和 Spring MVC 的 "ResponseBody" 注释用于接收 json 响应。
更新说明: 所以没有任何 ajax 电话(我知道我伤害了自己很多)。
我问这个问题只是出于好奇。
提前联系。
您可以拨打 ajax 电话。
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var response = JSON.parse(xmlhttp.responseText);
...
//process response code
...
}
}
xmlhttp.open("GET", "URL of spring", true);
xmlhttp.send();
如果你使用jquery:
$.ajax({
type: "GET",
url: "URL from spring",
success: function( response ){
...
// Code to process the response
...
}
});
更新
您可以动态生成表单并提交。或添加到您的 HTML
正文<script>
var f = document.createElement("form");
f.setAttribute('method',"post");
f.setAttribute('action',"submit.php");
var i = document.createElement("input"); //input element, text
i.setAttribute('type',"text");
i.setAttribute('name',"username");
var s = document.createElement("input"); //input element, Submit button
s.setAttribute('type',"submit");
s.setAttribute('value',"Submit");
f.appendChild(i);
f.appendChild(s);
//and some more input elements here
//and dont forget to add a submit button
document.getElementsByTagName('body')[0].appendChild(f);
</script>