SpringMVC ajax传值到后台在从后台跳转到另一个jsp页面

liutian1234567890 2017-08-14 03:52:53
下面是前台的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;
}

谢谢各位了,
...全文
8145 51 打赏 收藏 转发到动态 举报
写回复
用AI写文章
51 条回复
切换为时间正序
请发表友善的回复…
发表回复
write less,do more 2018-11-16
  • 打赏
  • 举报
回复
ajax不能在后台直接跳转页面,如果要跳转页面,可以在success下写window.location.href=要跳转的页面。如果还跳转不了,说明你的dataType返回的类型有问题。
子悟Il 2018-10-30
  • 打赏
  • 举报
回复
你后台虽然查找到结果,但是在jsp页面中的ajax跳转到另一个页面没有带值,是空的
Alvin_何 2017-08-22
  • 打赏
  • 举报
回复


  • 打赏
  • 举报
回复 1
你这是啥我都没懂,这url还能这么写的?我见过后缀XX.do的 你这想这么跳转页面干嘛不直接window,location.href呢,你想去后台走你那个方法,你这url是绝对错误的。
liu_tian_ 2017-08-18
  • 打赏
  • 举报
回复
你这个配置文件没有配好。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>
_厭倦 2017-08-18
  • 打赏
  • 举报
回复
我也遇到过着个问题,最后我是这样解决的: @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进行页面跳转
ninochenc 2017-08-17
  • 打赏
  • 举报
回复
你这个最后设置返回界面的时候,有没有设置viewResovler组件的前缀和后缀啊
liutian1234567890 2017-08-17
  • 打赏
  • 举报
回复
引用 37 楼 renjiangbo0916 的回复:
附上我的一处代码 做登录操作 登录成功进入菜单页面 在ajax请求用户名和密码后由服务端验证,成功了 返回json数据 在success中跳转需要的页面
那我后台应该怎么改呢,
liutian1234567890 2017-08-17
  • 打赏
  • 举报
回复
引用 33 楼 qq_36368657 的回复:
答非所问, 跳转页面是显示不出来 报错没。 是JSP页面的问题!
页面显示不出来,没有报错,不知道为什么,之前用submit提交可以,现在改为用ajax不可以了,,,,对于ajax也是刚学,不太懂,
  • 打赏
  • 举报
回复


modelandview的处理方法法类似以上
  • 打赏
  • 举报
回复


跟上面差不多,ajax是异步请求。

liutian1234567890 2017-08-17
  • 打赏
  • 举报
回复
引用 38 楼 sinat_33395693 的回复:
前端页面的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,判断是否成功 }
嗯,我试试,我是初学者小菜鸟,
Allen.geng 2017-08-17
  • 打赏
  • 举报
回复
.......
  • 打赏
  • 举报
回复
前端页面的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,判断是否成功 }
renjiangbo0916 2017-08-17
  • 打赏
  • 举报
回复

附上我的一处代码 做登录操作 登录成功进入菜单页面
在ajax请求用户名和密码后由服务端验证,成功了 返回json数据
在success中跳转需要的页面
crh_sdhueap 2017-08-16
  • 打赏
  • 举报
回复
既然是表单,可以试试用submit的方法提交,还有就是前台的window.location.href 后面跳转的路径你要拉出来访问下,页面是不是正常,否则你怎么跳转都是错的,如果你跳转的路径是正常的,为什么不试试其他的跳转方法,像window.open...等的跳转方法
qq_39864849 2017-08-16
  • 打赏
  • 举报
回复
js里直接使用表达提交就可以了,你要实现的是同步而不是异步$("#formId").submit();
evanweng 2017-08-16
  • 打赏
  • 举报
回复
别人给你解决方案又不好好研究好好试试???你用异步请求还想在controller实现跳转???或者你用ajax回调函数跳转还想传参数???直接改成同步请求不就行了吗
  • 打赏
  • 举报
回复
答非所问, 跳转页面是显示不出来 报错没。 是JSP页面的问题!
萧尽悠然 2017-08-16
  • 打赏
  • 举报
回复
引用 25 楼 liutian1234567890 的回复:
[quote=引用 17 楼 qq_31395143 的回复:] [quote=引用 16 楼 liutian1234567890 的回复:] [quote=引用 13 楼 qq_31395143 的回复:] 是不是导错包了, 应该是import org.springframework.web.servlet.ModelAndView; 用快捷键引入可能引入的是import org.springframework.web.portlet.ModelAndView;
包对着呢import org.springframework.web.servlet.ModelAndView;[/quote] 如果真的解决不了,试试

    @RequestMapping(value="/show",method=RequestMethod.POST)
    public String show(Model model,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 {
         
        model.addAttribute("employ_id", eid);
        model.addAttribute("employ_name", ename);
        model.addAttribute("employ_phone", ephone);
        model.addAttribute("employ_company", ecompany);
        model.addAttribute("employ_depart", edepart);
        model.addAttribute("employ_project", eproject);
        model.addAttribute("employ_PM", projectM);
        model.addAttribute("employ_DM", departM);
        model.addAttribute("employ_personal", personnel);
        model.addAttribute("employ_GM", managerM);
        model.addAttribute("employ_daystart", daystart);
        model.addAttribute("employ_dayend", dayend);
        model.addAttribute("employ_offtype", affairs);
        model.addAttribute("employ_offlong", day);
        model.addAttribute("employ_offreason", reason);
        return "employ_offshow";
    }
[/quote] 将原来的注释掉,换成你写的这个,结果断点都不进control里了[/quote] 不应该吧,用的都是同一个RequestMapping,怎么可能进不了呢??
加载更多回复(31)

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧