提交表单后台如何返回json?前台没有弹出提示框,而是返回了一个空白页面

Gynwn 发布于 2016/06/03 16:12
阅读 2K+
收藏 0
DWZ

希望点击保存按钮后,后台进行添加操作,添加成功后提示添加成功。

jsp页面


<div class="pageContent">
	<form method="post" action="/SmartNetRoot/product/addProduct" class="pageForm required-validate" onsubmit="return validateCallback(this);">
		<div class="pageFormContent" layoutH="56">
			<p>
				<label>产品名称:</label>
				<input name="newProductName" type="text" size="30"  class="required"/>
		</div>
		<div class="formBar">
			<ul>
				<!--<li><a class="buttonActive" href="javascript:;"><span>保存</span></a></li>-->
				<li><div class="buttonActive"><div class="buttonContent"><button type="submit" >保存</button></div></div></li>
				<li>
					<div class="button"><div class="buttonContent"><button type="button" class="close">取消</button></div></div>
				</li>
			</ul>
		</div>
	</form>
</div>




后台controller


@RequestMapping("/addProduct")
	public ModelAndView addProduct(HttpServletRequest request, HttpServletResponse response) throws IOException {
		
		String newProductName = request.getParameter("newProductName");
		System.out.println("新产品添加成功!");
		
		System.out.println(newProductName);
		
		JSONObject dwzServerJson = new JSONObject();
		dwzServerJson.put("statusCode", "200");
		dwzServerJson.put("message", "111");
		dwzServerJson.put("navTabId", "productView");
		dwzServerJson.put("rel", "");
		dwzServerJson.put("callbackType", "closeCurrent");
		dwzServerJson.put("forwardUrl", "");
		
		request.setAttribute("json", dwzServerJson);

		 return null;
	}




加载中
0
Gynwn
Gynwn

问题已解决。

【服务器端】

使用@ResponseBody注解,返回json数据

【jsp页面】

服务器端修改后IE可以解析json,但是会弹出下载框,需要对form进行设置

<form method="post" action="url" class="pageForm required-validate" onsubmit="return validateCallback(this);">

0
5
527饭

controller

response.setContentType("application/json;charset=UTF-8"); 
response.setCharacterEncoding("UTF-8"); 
PrintWriter pw = response.getWriter(); 
pw.write(JsonUtil.toJson(obj)); 
pw.flush();  

0
追梦的南瓜
追梦的南瓜
你这个应该用的是spring。 你提交后是要跳转页面还是返回json? 如果说你要跳转页面那么你在代码里没有返回页面。 如果说只要返回json在判断提示可以用@ResponseBody注解~ 
Gynwn
Gynwn
需要返回json,前台显示msg框
0
追梦的南瓜
追梦的南瓜


@RequestMapping("/addProduct")
@ResponseBody
public ModelAndView addProduct(HttpServletRequest request, HttpServletResponse response) throws IOException { 
        String newProductName = request.getParameter("newProductName");
        System.out.println("新产品添加成功!"); 
        System.out.println(newProductName); 
        Map<String, Object> result =new HashMap<String, Object>(); 
        result.put("statusCode", "200");
        result.put("message", "111");
        result.put("navTabId", "productView");
        result.put("rel", "");
        result.put("callbackType", "closeCurrent");  
         return result;
    }

这样返回的是json, 但是你提交的时候要自己写ajax提交。

代码天下
代码天下
异步提交表单,在java中直接添加@ResponseBody注解就可以返回json啦。
追梦的南瓜
追梦的南瓜
回复 @Gynwn : 按照你的代码来看是用的form 交的。
Gynwn
Gynwn
DWZ框架不是默认采用ajax提交的吗?还需要自己再写ajax?
0
z
zhangSan王
@ResponseBody就可以返回json了,
0
0
分流砥柱
分流砥柱
这代码写的我也是醉了,这是完全不懂spring的节奏呀。
Gynwn
Gynwn
是的,刚刚开始学习,照搬了一个例子
返回顶部
顶部