消息关闭
    暂无新消息!
下面是前台的ajax单击button 按钮传值到后台注解UserController/show.html,
 $(function(){
  
   $("#but").click(function(){
     var eid=$("#eid").val();
     var ename=$("#ename").val();
     var ephone=$("#ephone").val();
     var ecompany=$("#company").val();
     var edepart=$("#edepart").val();
     var eproject=$.trim($("#eproject").val());
     var daystart=$("#daystart").val();
     var dayend=$("#dayend").val();
     var affairs=$("#affairs").val();
     var day=$("day").val();
     var reason=$("reason").val();
     var projectM=$("projectM").val();
     var departM=$("departM").val();
     var personnel=$("personnel").val();
     var managerM=$("managerM").val();
   $.ajax({
  url:'UserController/show.html',
  data: {
  eid:eid,
  ename:ename,
  ephone:ephone,
  ecompany:ecompany,
  edepart:edepart,
  eproject:eproject,
  daystart:daystart,
  dayend:dayend,
  affairs:affairs,
  day:day,
  reason:reason,
  projectM:projectM,
  departM:departM,
  personnel:personnel,
  managerM:managerM
  },
  type:'post',
  sussccess:function(data){
   /* window.location.href = "${pageContext.request.contextPath}/employ_offshow.jsp"; */  
   alert("完成");
  }
  });
 });
  });

这是后台的注解,可以接收到前台的数据,也可以跳转到employ_offshow.jsp页面,但就是这个页面显示不出来,也不报错,郁闷,求大神告解如何使用ajax将button的form表单提交到后台再从后台跳转到另一个页面。。。
@RequestMapping(value="/show",method=RequestMethod.POST)
public ModelAndView show(String eid,String ename,String ephone,String ecompany,String edepart,
String eproject,String daystart,String dayend,String affairs,
String day,String reason,String projectM,String departM,String personnel,String managerM) throws Exception {

ModelAndView mav = new ModelAndView();
mav.addObject("employ_id", eid);
mav.addObject("employ_name", ename);
mav.addObject("employ_phone", ephone);
mav.addObject("employ_company", ecompany);
mav.addObject("employ_depart", edepart);
mav.addObject("employ_project", eproject);
mav.addObject("employ_PM", projectM);
mav.addObject("employ_DM", departM);
mav.addObject("employ_personal", personnel);
mav.addObject("employ_GM", managerM);
mav.addObject("employ_daystart", daystart);
mav.addObject("employ_dayend", dayend);
mav.addObject("employ_offtype", affairs);
mav.addObject("employ_offlong", day);
mav.addObject("employ_offreason", reason);
mav.setViewName("employ_offshow");
return mav;
}

谢谢各位了,

30个回答

︿ 3
如果你的ajax 的type 没有设置成json  需要转下 eval('(' + data + ')')     额 不知道是不是你要的
︿ 3
说一下你代码的问题先。。。
1.var day=$("day").val();
     var reason=$("reason").val();
     var projectM=$("projectM").val();
     var departM=$("departM").val();
     var personnel=$("personnel").val();
     var managerM=$("managerM").val();
我对前端不是很懂,这几个选择器真的可以拿到值吗?
2.UserController/show.html接口命名怪怪的,UserController改成user会合适一点,当然可以看看restful架构学学那个命名会好点
然后说说问题解决。。。
应该把ajax设置成同步就ok了。ajax加个属性async: false

$.ajax({
         url:'UserController/show.html',
         data: {
             eid:eid,
             ename:ename,
             ephone:ephone,
             ecompany:ecompany,
             edepart:edepart,
             eproject:eproject,
             daystart:daystart,
             dayend:dayend,
             affairs:affairs,
             day:day,
             reason:reason,
             projectM:projectM,
             departM:departM,
             personnel:personnel,
             managerM:managerM
         },
         type:'post',
         async: false,
         sussccess:function(data){
              /* window.location.href = "${pageContext.request.contextPath}/employ_offshow.jsp"; */  
              alert("完成");
         }
     });
︿ 3
是不是导错包了,
应该是import org.springframework.web.servlet.ModelAndView;
用快捷键引入可能引入的是import org.springframework.web.portlet.ModelAndView;
︿ 2
我也遇到过着个问题,最后我是这样解决的:
@RequestMapping("first")
public void getFirst(HttpServletRequest request,HttpServletResponse response) throws Exception{
String empid = request.getParameter("empid");
String json = jsonService.getJson(empid);
response.setContentType("application/json");
PrintWriter out= null;
try {
out = response.getWriter();
out.write(json);
} catch (IOException e) {
e.printStackTrace();
} finally {
out.flush();
out.close();
}
}
把数据再传到页面,在ajax的success里再用windows.location.href进行页面跳转
︿ 2
js里直接使用表达提交就可以了,你要实现的是同步而不是异步$("#formId").submit();
︿ 2
处理方法 :
1》别使用异步请求
2》异步请求完,js直接把结果替换原页面
︿ 2
 public static void main(String[] args) {
   String a="\\u0031\\u0030\\u0030\\u591a\\u4e2a\\u004a\\u0061\\u0076\\u0061\\u0057\\u0065\\u0062\\u9879\\u76ee\\u6e90\\u7801\\u002b\\u89c6\\u9891\\u0020\\u53ea\\u8981\\u0031\\u0030\\u5143\\u0020\\u6beb\\u65e0\\u4fdd\\u7559\\u7ed9\\u4f60\\u0020\\u0020\\u0053\\u0070\\u0072\\u0069\\u006e\\u0067\\u0020\\u0068\\u0069\\u0062\\u0065\\u0072\\u006e\\u0061\\u0074\\u0065\\u0020\\u006d\\u0079\\u0062\\u0061\\u0074\\u0069\\u0073\\u6846\\u67b6\\u0020\\u000d\\u000a\\u5e73\\u5747\\u4e00\\u4e2a\\u4e00\\u6bdb\\u94b1\\u4e0d\\u5230\\u000d\\u000a\\u5fae\\u4fe1\\uff1a\\u006a\\u0061\\u0076\\u0061\\u006a\\u0064\\u0062\\u0063\\u000d\\u000a\\u5b98\\u7f51\\uff1a\\u0077\\u0077\\u0077\\u002e\\u006a\\u0061\\u0076\\u0061\\u0030\\u0039\\u0030\\u0039\\u002e\\u0063\\u006f\\u006d\\uff08\\u5b98\\u7f51\\u53ef\\u4ee5\\u0032\\u0034\\u5c0f\\u65f6\\u81ea\\u52a8\\u53d1\\u8d27\\u0020\\u652f\\u4ed8\\u5b9d\\u63a5\\u53e3\\uff09";
   System.out.println(decode(a));
  }
  public static String decode(String unicodeStr) {  
    if (unicodeStr == null) {  
        return null;  
    }  
    StringBuffer retBuf = new StringBuffer();  
    int maxLoop = unicodeStr.length();  
    for (int i = 0; i < maxLoop; i++) {  
        if (unicodeStr.charAt(i) == '\\') {  
            if ((i < maxLoop - 5)  
                    && ((unicodeStr.charAt(i + 1) == 'u') || (unicodeStr  
                            .charAt(i + 1) == 'U')))  
                try {  
                    retBuf.append((char) Integer.parseInt(  
                            unicodeStr.substring(i + 2, i + 6), 16));  
                    i += 5;  
                } catch (NumberFormatException localNumberFormatException) {  
                    retBuf.append(unicodeStr.charAt(i));  
                }  
            else  
                retBuf.append(unicodeStr.charAt(i));  
        } else {  
            retBuf.append(unicodeStr.charAt(i));  
        }  
    }  
    return retBuf.toString();  
}  
︿ 2
是SpringMVC?
@ResponseBody
@RequestMapping(value="select.action")
public Staff select(HttpSession session,short sno,String pwd) throws ServiceException{
session.setAttribute("username", sno);
Staff staff=staffService.selectBySno(sno, pwd);
return staff;
}
︿ 2
前端页面的ajax的success中的window.location.href=" " 这个放出来

controller方法加多一个注解@ResponseBody

@RequestMapping(value="/show",method=RequestMethod.POST)
@ResponseBody----------------------------这里
    public String----改成String类型的    show(String eid,String ename,String ephone,String ecompany,String edepart,
            String eproject,String daystart,String dayend,String affairs,
            String day,String reason,String projectM,String departM,String personnel,String managerM) throws Exception {
         
        ModelAndView mav = new ModelAndView();
        mav.addObject("employ_id", eid);
        mav.addObject("employ_name", ename);
        mav.addObject("employ_phone", ephone);
        mav.addObject("employ_company", ecompany);
        mav.addObject("employ_depart", edepart);
        mav.addObject("employ_project", eproject);
        mav.addObject("employ_PM", projectM);
        mav.addObject("employ_DM", departM);
        mav.addObject("employ_personal", personnel);
        mav.addObject("employ_GM", managerM);
        mav.addObject("employ_daystart", daystart);
        mav.addObject("employ_dayend", dayend);
        mav.addObject("employ_offtype", affairs);
        mav.addObject("employ_offlong", day);
        mav.addObject("employ_offreason", reason);
        mav.setViewName("employ_offshow");
----------以上的代码需要改,最好封装一下

        return “1”;--------------最后返回的值传到ajax,判断是否成功
    }
︿ 1
兄弟,url请求地址有问题吧,你试试看,是不是写错了,我还没见过.html结尾的呢
︿ 1
你这个最后设置返回界面的时候,有没有设置viewResovler组件的前缀和后缀啊
︿ 1
跳转页面用同步啊   异步请求参数是不会传到跳转页面的(除非设置缓存  session 和上下文) 跟post get无关
(个人想法)
︿ 1

附上我的一处代码  做登录操作  登录成功进入菜单页面
在ajax请求用户名和密码后由服务端验证,成功了 返回json数据
在success中跳转需要的页面
︿ 1
你这问题我之前碰到过,也缠了好几天了。发现原因是:
要在你的springMVC配置文件加上:
<mvc:default-servlet-handler />
<mvc:annotation-driven />
这两个配置;
第一个是将springMVC不能处理的请求交给tomcat;
第二个是支持springMVC高级的一些功能,例如快捷ajax请求;
希望能给你帮助;
︿ 1
答非所问, 跳转页面是显示不出来 报错没。 是JSP页面的问题!
︿ 1
你这个配置文件没有配好。springMVC会拦截静态文件的(js,css,html等),要配置springMVC不拦截这些静态资源你试试这个配置

<mvc:resources mapping="easyUI/*" location="easyUI/" />

<!-- SpringMVC 视图解析器
 将controller层返回的字符串进行解析
 -->
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <!-- 返回字符串后拼接的路径的前缀 -->
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <!-- 返回字符串后拼接的路径的后缀 -->
    <property name="suffix" value=".jsp"/>
</bean>
︿ 1
你用ajax传参是异步  但是又用同步跳转页面  搞不懂  要跳转页面 用form表单提交啊

︿ 1
ajax请求过去的 返回给你的是一个值 不是一个页面 即使你后台返回的是一个页面ajax也当字符串返回 所以跳不了页面
你可以在回调函数中 data就后台返回的值 你可以判断这个值在做跳转
︿ 1
请教大家,为什么我的ajax可以将button的form表单提交到后台,后台也可以接收到数据,但是mdelandView返回另一个jsp页面的时候却没有显示
︿ 0
别人给你解决方案又不好好研究好好试试???你用异步请求还想在controller实现跳转???或者你用ajax回调函数跳转还想传参数???直接改成同步请求不就行了吗
︿ 0
既然是表单,可以试试用submit的方法提交,还有就是前台的window.location.href 后面跳转的路径你要拉出来访问下,页面是不是正常,否则你怎么跳转都是错的,如果你跳转的路径是正常的,为什么不试试其他的跳转方法,像window.open...等的跳转方法
︿ 0
上面已经有宝贝说过了 你ajax回调函数中windows.location.href+要跳转的路径 ?+数据