springmvc页面跳转

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

1. springmvc页面跳转的几种方式

  1. 使用springmvc的视图解析器,进行跳转。
@RequestMapping("/testString")
    public String testString(ModelMap modelMap){
        System.out.println("01");
        User user = new User("1","123",23);
        modelMap.addAttribute("user",user);
        return "success";
    }

该方式的特点就是根据方法的返回值(success),与视图解析器配置的

<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/pages/"/>
    <property name="suffix" value=".jsp"/>
</bean>

结合,得到一个完整的地址,进行跳转。
ModelMap这个对象底层是一个request,使用它可以在request存值。

  1. 使用servletAPI组件进行跳转。

这里面有两种方式,请求转发和页面重定向,重定向不能请求webinf中的资源

@RequestMapping("/testVoidRequest")
public void testVoidRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
    System.out.println("01");
    User user = new User("章三","123",23);
    request.setAttribute("user",user);
    request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request,response);
}
@RequestMapping("/testVoidResponse")
public void testVoidResponse(HttpServletRequest request, HttpServletResponse response) throws Exception {
    System.out.println("01");
    User user = new User("章三","123",23);
    response.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=utf8");
//        response.sendRedirect(request.getContextPath()+"/test.jsp");
    response.getWriter().print(user);
}
  1. 使用springMVC提供的对象进行跳转ModelAndView,该类名的含义是数据和视图。使用该类既可以传递数据(modelMap.addAttribute(“user”,user);),又可以跳转页面(mv.setViewName(“success”);)。
@RequestMapping("/testVoidModelAndView")
public ModelAndView testVoidModelAndView()  {
    System.out.println("01");
    ModelAndView mv = new ModelAndView();
    ModelMap modelMap = mv.getModelMap();
    User user = new User("章三","123",23);
    modelMap.addAttribute("user",user);
    mv.setViewName("success");
    return mv;
}
  1. 使用关键字进行跳转
    这种方法也是页面转发(forward),和重定向(redirect)
@RequestMapping("/testForward")
public String testForward()  {
     System.out.println("01");
     return "forward:/WEB-INF/pages/success.jsp";
 }
 @RequestMapping("/testRedirect")
 public String testRedirect()  {
     System.out.println("01");
     return "redirect:index.jsp";
 }

2. springmvc的Ajax与json

jackson提供了json数据与pojo之间转化的api,这玩意与springmvc的注解结合起来,看起来就简单很多。
首先发送ajax请求,请求参数为json格式。
controller接收到,将使用@RequestBody注解,将数据以pojo封装到controller方法参数中,方法返回值使用@ResponseBody,将数据返回给前端。
注意
我踩过的坑

  1. pojo必须提供无参构造方法。
  2. 发送数据格式contentType:‘application/json;charset=utf-8’,
  3. data:’{“name”:“zpx”,“password”:“123”,“age”:23}’,

需要引入

 <dependency>
 <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-databind</artifactId>
   <version>2.9.0</version>
 </dependency>
 <dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-core</artifactId>
   <version>2.9.0</version>
 </dependency>
 <dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-annotations</artifactId>
   <version>2.9.0</version>
 </dependency>
<script src="js/jquery.min.js"></script>
    <script>
        $(function(){
            $("#but").click(function () {
                $.ajax({
                    url:"user/testString",
                    type:"post",
                    contentType:'application/json;charset=utf-8',
                    data:'{"name":"zpx","password":"123","age":23}',
                    // data:'{"id":1,"name":"test","money":999.0}',
                    dataType:"json",
                    success:function(data){
                        alert(data);
                    }
                });
            });
        });
    </script>
    
<button id="but" type="button" value="发送ajax请求">发送ajax请求</button>
@RequestMapping("/testString")
public @ResponseBody User testString(@RequestBody User user){
    System.out.println("01");
    System.out.println(user);
    return user;
}
Ajax完整实例代码(模糊查询员工信息) 1.Cs页面代码:显示信息 namespace ajax_demo { public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { try { string name1 = Request["name"].ToString(); 阅读详情

相关推荐

SpringMVC实现页面跳转:转发、重定向

1、Servlet实现页面跳转 Servlet实现页面跳转有2种方式:转发与重定向。 1.1 转发 转发是在服务器端起作用的,当使用 forward() 方法时,Servlet 容器传递HTTP请求,从当前的 Servlet 或 JSP,此过程仍然在 request 的作用范围内。转发后,浏览器的地址栏内容不变。 转发使用 HttpServletRequest 对象的 forward()...

pan_junbiao的博客 4950

(小白)idea搭建+ssm+maven+mysql+ajax实现模糊查询小demo

#(一)配置各项xml文件 首先配置pom.xml: <!-- 导入SSM需要的jar --> <!-- MyBatis Generator --> <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --> <...

Hugme的博客 840

基于SSM框架的增删改查Ajax分页模糊查询(有Mysql数据库)

新闻和对新闻的评论的增删改差

SSM + Ajax

1.创建数据库 2.创建工程,目录,导入jquery类库,并导入pom依赖 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.c

m0_51945098的博客 2528

AJAX实现模糊查询和自动补全

AJAX实现模糊查询和结果自动补全

weixin_54001215的博客 952

SpringMVC实现页面跳转

SpringMVC实现页面跳转 先在xml中配置前端控制器DispatcherServlet <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</s...

java程序员的博客 1792

SpringMVC后端Controller页面跳转的三种方式

常见的Web开发中,我们在使用SpringMVC框架时,经常遇到多种不同情况下不同的返回方式,有的多种返回页面的方式,也有的是多种返回数据到前端的方式,这篇文章主要总结常见Web开发中针对不同情况返回页面的方式。对于不同情况下,具有返回数据到前端的多种方式请参考我之前写过的一篇SpringBoot相关文章: SpringBoot系列教程(七十):SpringBoot的Controller四种方法返回值类型

Thinkingcao的专栏 2万+

SpringMVC 几种页面跳转方式

SpringMVC 几种页面跳转方式总结如下: 1.不使用ModelAndView 1)、通过HttpServletResponse的API直接输出(不需要配置渲染器) @Controller public class RequestController{ @RequestMapping("/resp") public void test(HttpServletRequest req, HttpS...

weixin_43398321的博客 1018

SpringMVC页面跳转

SpringMVC页面跳转 一、页面跳转形式之一 修改HelloController文件 package com.atguigu.mvc.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; @Contr

qq_56299755的博客 2006

Springmvc在Controller跳转页面时失败

解决springmvc跳转页面时的错误

qq_44627822的博客 3186

SpringMVC 跳转页面失败404

SpringMVC跳转页面失败 关于SpringMVC跳转方式失败,使用ModelAndView 或者是 直接返回字符串 都无法跳转到指定页面,可能存在以下几种常见问题 ModelAndView 引用的包不对 有时候自动导入的时候会选错包类,会将正确的包导成 import org.springframework.web.portlet.ModelAndView 而其中的方法都是一样的,编译器...

Annn_kk的博客 5534

SpringMvc 页面跳转

----1、使用HttpServletRequest request,HttpServletResponse response 进行页面跳转 // 转发页面带参数 @RequestMapping("/resp") public void handleRequest(HttpServletRequest req, HttpServletResponse resp) throw

不要让梦想成为梦想的博客 495

SpringMVC 实现页面跳转

1.页面跳转的两种方式 1.1请求转发 request.getRequestDispatcher(path).forward(request, response); 一次请求 地址栏路径不会发生变化 可以使用请求作用域传参 只能访问内部资源(当前项目下的资源) 可以访问安全目录下的资源(WEB-INF) 路径中的/表示项目根路径 响应重定向 response.sendRedirect(loca...

风泊月 1839

springMVC和springBoot跳转页面的方式

不管是使用springMVC还时springBoot,在进行简单的页面跳转的时候,有两种情况: 1.在进行页面跳转的时候回携带请求数据,后端需要进行业务处理。 2.只是单纯的进行页面跳转,不会进行任何业务的处理 对比使用springMVC和springboot对这两种情况的处理: 情况一:携带数据: springMVC和springBoot大致相同,都是通过controller层进行页面跳转: 示例代码: @controller pubilc String pageControlelr(){

奋斗的小张同学 1013

【drp 12】再识转发和重定向:SpringMVC无法跳转页面

最近再使用SpringMVC进行页面跳转的时候,不知道发生了什么,始终都无法正确跳转。后来问题解决了,发现是对于转发和重定向没有能很好的理解,以此写篇博客,权当做积累了! 一、基本配置 备注:只截取了几个比较关键的配置点 SpringMVC配置: <bean class="org.springframework.web.servlet.view.InternalResourceView

该怎么解释?我懒得解释 5871

modelandview 跳转问题_springMVC几种页面跳转方式小结

前面已经了解了Controller的几种配置方式今天主要写一下响应界面跳转的几种方式1.在注解的方式中1.1通过HttpServletResponse的API直接输出(不需要配置渲染器)controller类的主要代码@Controllerpublic class RequestController{@RequestMapping("/resp")public void handleRequest...

weixin_42498055的博客 6785

SpringMVC如何从默认的index.jsp页面跳转到其他页面

最近学习SpringMVC时,想要做一个登录页面Login.jsp,发现Tomcat服务器默认进入的页面是WEB-INF/index.jsp,查询资料发现如果修改默认页面,还需要修改Tomcat文件目录,所有打算不修改默认页面,而是采用从默认页面"index.jsp"跳转到登录页面"Login.jsp"的方式 通过网上查阅资料,经测试学习到了两种方法能够完成要求 文件结构如上,index.jsp在webapp/WEB-INF/目录下,而Login.jsp在webapp/WEB-INF/pages/目

weixin_48892733的博客 2272
上一篇: SpringMVC
下一篇: springmvc文件上传
RestartJava
博客等级 码龄6年 1粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值