㈠ springmvc接收json格式參數需要什麼配置
$("#btSaveTemplate").click(function()
{
// alert($("#templateName").val());
var data = {"info":{"templateName":$("#templateName").val(),"templateNo":"tmp156464"}};
var data2 = {"templateName":$("#templateName").val()};
$.ajax({
type: "get",//使用get/post方法訪問後台
dataType: "json",//返回json格式的數據
url: "lotty/add",//要訪問的後台地址
data: data,
success: function(msg){//msg為返回的數據,在這里做數據綁定
if(msg == '1'){
alert('操作成功');
location.reload();
}
},
error: function(jqXHR, textStatus, errorThrown) {
alert("error:" + textStatus + " exception:" + errorThrown);
}
});
後台spring確實收到了請求,並且執行了相應的方法,如下:
java代碼
@ResponseBody
@RequestMapping(value="/add", method=RequestMethod.GET)
public String doAdd([color=red][b]String info[/b][/color],Model model) throws Exception;
紅色粗體的地方,用String接收是null,改用List和HashMap都不行,後來在SPRING的JAR包中,翻到一個MappingJacksonJsonView,嘗試了下,還是空值。之後,我在方法里加了HttpServletRequest參數,郁悶的是:request裡面的parameter部分為空
我想可能是SPRING注入處理JSON類的地方出錯了,但是這個也不太可能。因為我傳最基本的純key-value結構的JSON數據,後台能成功捕獲到(我的做法比較笨,前台有多少個key,controller方法里有多少個對應參數的那種)
這是我SPRING的相關配置:
Java代碼
<bean id="" class="org.springframework.http.converter.json."/>
然後注入:
Java代碼
<bean class="org.springframework.web.servlet.mvc.annotation.">
<property name="messageConverters">
<list>
<ref local=""/>
</list>
</property>
</bean>
到此,實在不知道其他的解決方法了。
我的想法是,在實際應用中如果做批量插入的話,可以一次提交一個大的JSON數據,在後台里解析成JSONObject對象,再逐步取值。試了大半天,沒有結果,上來問問大家,SPRING3裡面JSON做參數的一些經驗。
問題補充:
amcucn 寫道
簡單點的方法以就是直接將你要傳的json數據當成一個字元串提交到後台,後台使用JSONObject相關的方法 可以直接轉成對應的MAP對象。然後你就可以處理了。大致的想法就是繞過springmvc本身的json處理類,把你想的"JSON"當成字元串傳到後台。
也只能這樣,看來SPRING3.0.5並沒有能夠很好的集成JSONObject的解決方案,只是死板地提供了參數對應和VO去封裝JSON信息。
㈡ spring MVC 怎麼獲取前端傳遞的數組參數
spring MVC controller獲取前端傳遞的數組參數的方法是進行封裝json字元串實現的。
1、jsp頁面中的數組創建如下:
var myArray = []; 定義數組myArray
myArray .push("OU=Software,DC=example,DC=com,"); 向數組中添加第一個字元串
myArray .push("OU=IT,DC=example,DC=com,");向數組中添加第二個字元串
轉換json數組:
myArray = JSON.stringify(myArray ); 利用json的stringify方法把js對象轉換成json對象
$("#ADOus").attr("action","${ctx}/ADSetting?myOUsArray ="+ myArray );設置action參數
$("#ADOus").submit();提交action到對應的controller
2、在controller層的處理如下:
@RequestMapping(value = { "/ADSetting" }, method=RequestMethod.POST) 定義url和提交方法,規定post
public String configureOUs(HttpServletRequest request,@RequestParam("myOUsArray ") String[] myOUsArray ){
ObjectMapper mapper = new ObjectMapper(); //創建對象映射對象
String [] array = mapper.readValue(jsonString, String[].class): //從映射域中讀取數組參數,以json 字元串的方式
接下來需要把接收到的參數轉換成json對象來處理。
return 定義的頁面
}
㈢ 服務端是springMVC框架的 我把json傳過去之後服務端應該怎麼接收和返回,下面是android寫的發送json
你是想傳送對象嗎?不論json還是其它格式的在服務端都以字元直接接收,接收完版可以自行轉換成權對象或者json,下面圖片裡面就是自行轉換成一個實體對象,如過是對象也很簡單,直接用@RequestBody接收即可,
㈣ 後台是java springmvc用前端怎麼用json數據格式實現js跨域請求
參數用param = {"key1":"value1","key2":"value2"};
$.ajax({
type : "post",
dataType : "json",
data : param,
url : action,//請求
success : function(data){
alert("成功");
},
error : function(){
alert("失敗");
}
});
這樣就可以了
㈤ jquery如何上傳包含包含JSON數組的參數,spring-mvc框架如何接受
後台解析ajax傳遞的數據,這主要看前端傳遞數據的格式,主要有以下幾種常見的。
1、前端ajax傳遞表單數據,類似{name:'zhangsan',age:'17'}
後台只需利用request.getParameter("name")形式即可獲取對應的value值。
2、前端傳遞json數據格式。後台可以直接獲取json字元串,然後利用相關的API轉成對應的Java對象。或者直接利用springMvc的註解@RequestBody註解。
@RequestMapping(value = "/save")
public void save(@RequestBody User user){
}
這樣傳遞的json數據會自動封裝成user對象。
如果當前傳遞的是一個json數組,則後端可以定義一個VO對象,vo對象中存放一個userList。
public class UserVO{
private List<User> dataList;
}
@RequestMapping(value = "/save")
public void save(@RequestBody UserVO userVO){