欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > SpringMVC(一)

SpringMVC(一)

2024/12/27 4:26:36 来源:https://blog.csdn.net/m0_71192988/article/details/144179344  浏览:    关键词:SpringMVC(一)

 ModelAndView

        ModelAndView 是 Spring MVC 框架中的一个类,用于在控制器中返回模型数据和视图信息。

        模型: 包含应用程序的数据,这些数据将被传递到视图层进行渲染。模型数据通常以键值对的形式存储在一个 map 中。

        视图: 指定要渲染的视图名称或视图对象。(页面,要跳转的页面:转发)。

        创建对象 :

ModelAndView modelAndView = new ModelAndView();

        设置视图 :

modelAndView.setViewName("url");

        添加模型数据 :

modelAndView.addObject("key", value);

配置web.xml

<!--请求和响应中文乱码-->
<filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param>
</filter>
<filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern>
</filter-mapping><!--配置前端控制器-->
<!--servlet映射-->
<servlet><!--指定servlet名称--><servlet-name>dispatcherServlet</servlet-name><!--Servlet类所在路径--><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--contextConfigLocation  classpath  加载spring-mvc.xml --><init-param><!--初始化参数,用于配置Servlet的行为。--><param-name>contextConfigLocation</param-name><param-value>classpath:spring-*.xml</param-value></init-param><!--启动tomcat就加载servlet--><load-on-startup>1</load-on-startup>
</servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><!--定义Servlet的URL映射--><url-pattern>/</url-pattern>
</servlet-mapping>

引入jar包

<!--lombok-->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.22</version>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version>
</dependency>

注解

        @Controller

                标注一个普通的JavaBean成为可以处理请求的控制器。

        @RequestMapping

                将请求URL进行映射特定的方法或类上。

@RequestMapping(value = "url",method =  ,params = {"param1","param2",....} )
value:映射的路径
method:请求方式,不用加"",默认get,post都能进去RequestMethod.POST、RequestMethod.GET
params:传递参数,内容是数组(请求的URL地址需要带那些参数)param1、param2:使参数名,写入的参数名是必填项

        类级别的注解:你已经在类级别使用了@RequestMapping("/index")注解 ,这意味着这个控制器类中的所有方法都会以 /index 作为基础路径。

        方法级别的注解:你需要为每个方法指定不同的路径,以便区分不同的请求。

@Controller //控制器类
public class IndexController {@RequestMapping("/index")//将请求URL进行映射public ModelAndView index(){ModelAndView modelAndView = new ModelAndView();//要跳转的页面modelAndView.setViewName("/demo01.jsp");System.out.println("这是index方法!");return modelAndView;}@RequestMapping("/test")public ModelAndView test(){ModelAndView modelAndView = new ModelAndView();modelAndView.setViewName("/demo02.jsp");System.out.println("这是test方法!");return modelAndView;}
}

        @RequestParam

                参数传递.

@RequestParam(value = "别名",required = false,defaultValue = "")
value : 属性名用于起别名
required : 是否必须,false为否
defaultValue :默认值
@Controller //控制器类
public class IndexController {@RequestMapping(value = "/test")public ModelAndView test(@RequestParam(value = "uid") Integer id,@RequestParam("uname") String name){ModelAndView modelAndView = new ModelAndView();modelAndView.setViewName("/demo02.jsp");System.out.println("这是test方法!");System.out.println("id==="+id);System.out.println("name==="+name);return modelAndView;}
}

        参数传递

                传对象
@Data
public class SmbmsUser {private String name;private Integer id;
}
@Controller //控制器类
public class IndexController {@RequestMapping(value = "/index1")//将请求URL进行映射public String index1(SmbmsUser smbmsUser){System.out.println("这是index1方法!");System.out.println(smbmsUser.toString());return null;}
}

        传对象直接使用属性名进行传递。

@Controller
@RequestMapping("/user")
public class DemoController {@RequestMapping("/demo01")public String demo01(SmbmsUser smbmsUser){System.out.println(smbmsUser);return "/demo03.jsp";}
}
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" language="java" %><html><head><title>Title</title><meta charset="utf-8"></head><body>${smbmsUser.id}=======${smbmsUser.name}</body></html>

        ModelAndView

                包含视图信息和模型数据信息。

@Controller //控制器类
public class IndexController {@RequestMapping("/index2")public ModelAndView index2(SmbmsUser smbmsUser){ModelAndView modelAndView = new ModelAndView();modelAndView.setViewName("/demo03.jsp");modelAndView.addObject("smbmsUser",smbmsUser);return modelAndView;}
}
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" language="java" %><html><head><title>Title</title><meta charset="utf-8"></head><body>${smbmsUser.id}=======${smbmsUser.name}</body></html>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com