现在父窗口中写一个方法带参数的
如:
function getCatename(data){ // $("input:eq(1)").val(data); } function selectCate(){ art.dialog.open("<%=request.getContextPath()%>/brand/cateList.do", { width: '400px', height: '350px', title: "商品分类信息", opacity: 0.3, skin: 'green', lock: true, ok: function (iframeWin, topWin) { // iframeWin: 对话框iframe内容的window对象 // topWin: 对话框所在位置的window对象 iframeWin.addDept(); iframeWin.getCatename(data); return false; }, cancel: true }); }
然后在子窗口传过去数据
$("#formadd").ajaxSubmit({
url:"<%= request.getContextPath()%>/brand/brandCate.do", type:"post", resetForm:false, success:function(data){ /* if(data=="ok"){ */ //获取父窗口的window对象 var win = art.dialog.open.origin; //调用父窗口的js方法refresh(); win.refresh(); //alert(data); //var name=date; //关闭对话框 art.dialog.close(); win.getCatename(data); /* } */ }, error:function(xhr,textStatus,errorThrown){ alert("选择商品分类失败,请重试"); } });}
在controller中
@ResponseBody @RequestMapping(value="/brandCate.do",method=RequestMethod.POST) public String brandAdd(Integer cateid,String catename,Model model){ this.cateid=cateid; return catename; }
这里是返回变量
对于@ResponseBody这种注解,如果想返回变量的话需要在
spring-servlet.xml中把注解驱动写成这样
<mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <!-- @ResponseBody 不返回空对象及变量 --> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="objectMapper"> <bean class="com.fasterxml.jackson.databind.ObjectMapper"> <property name="serializationInclusion"> <value type="com.fasterxml.jackson.annotation.JsonInclude.Include">NON_NULL</value> </property> </bean> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>