卫浴响应式外贸网站建设,ftp网站怎么建立,怎么重新装电脑的wordpress,linux做商务网站上一篇博客从理论概念上来梳理Spring MVC相关知识#xff0c;此篇博客将通过spring官网提供showcase代码为例子#xff0c;详细介绍showcase代码中包含的各个例子是如何实现的。官网的showcase代码包含的主要例子包括#xff0c;Demo地址#xff1a;Mapping Requests#… 上一篇博客从理论概念上来梳理Spring MVC相关知识此篇博客将通过spring官网提供showcase代码为例子详细介绍showcase代码中包含的各个例子是如何实现的。官网的showcase代码包含的主要例子包括Demo地址Mapping Requests请求匹配Obtaining Request Data请求中包含各种参数Generating Responses生成responseMessage Converters消息转换Rendering Views渲染view下面的js文件Type Conversion类型转换Validation对象严重Forms表单处理File Upload上传文件Exception Handling异常处理下载代码执行“mvn jetty:run”启动应用访问“http://localhost:8080/spring-mvc-showcase/”会看到如下界面每个tab按钮包含一种类型的demo例子。查看代码目录在config目录下的WebMvcConfig class文件里面进行了spring mvc相关的配置通过添加EnableWebMvc开启了spring mvc相关的自动配置再通过Override对部分配置进行自定义例如自定义静态资源的存放位置定义Resolver中的jsp文件目录和后缀等定义了/目录下的viewname是home所以打开上面地址后实际mapping到的是home.jsp文件。 Views的例子上面的showcase中例子很多这里会抽取一部分例子进行讲解首先来看看views目录下的代码定义了一个JavaBean对象定义了一个ViewsController以下图的controller为例返回的视图名称是“views/html”,因为配置文件中定义了registry.jsp的路径是“/WEB-INF/views/所以mapping出来的jsp文件路是“/WEB-INF/views/views/html.jsp文件在浏览器中访问这个controller定义的路径实际显示的就是html.jsp文件中的内容。另外在controller中通过model.addAttribute(virableName,value)设置属性在home.js文件中通过${virableName}引用属性的值。Validation的例子 如下图所示在对象中可以添加各种限制条件例如NotNullFuture等对象中添加限制条件后在controller中天际Valid注解如果传入的对象值不符合限制条件则会报错。Response的例子 如下图所示使用 ResponseEntity 可以灵活地控制 HTTP 响应的各个方面。例如您可以设置状态码、响应头和响应体。通过设置响应体您可以返回一个对象或一个集合并自动将其转换为 JSON 格式或其他格式。上面的例子ResponseEntity的body是String类型实际项目中更多的是返回一个Java对象例如下面的例子返回从数据库查询得到的User对象。Redirect的例子 在 Spring MVC 中重定向可以使用 redirect: 前缀来实现。如果需要在重定向请求中传递参数可以使用 RedirectAttributes。例子如下图所示需要注意一点:重定向返回的是一个字符串而不是 ModelAndView 对象或 ResponseEntity 对象。 showcase的例子中通过不同的方式将url重定向到了/redirect/{account}mapping过去渲染显示的文件是/WEB-INF/views/redirect/redirectResults.jsp文件。Message Convert例子 在上一篇博客中列举了spring mvc提供的Message Convert组件这些组件无需程序员显式配置因为Spring MVC默认提供的Message Converter组件在初始化时自动注册到应用程序上下文中。Spring MVC能根据header中设置的消息的格式自动选择合理的消息转换器将对象转换成期望的格式并显示在前端页面上。 在showcase的例子中message convert例子中以读写xml格式和json格式为例子返回都是JavaBean对象这是因为请求或者响应的content-Type在home.jsp文件中进行了设置所以能按照例子说明的格式返回期望格式的信息关键代码片断如下所示FileUpload例子 MultipartFile是Spring MVC中用于处理文件上传的类它可以将上传的文件封装成MultipartFile对象并进行处理。下面的例子中通过RequestParam注解将上传的文件封装成MultipartFile对象。在处理上传文件之前首先判断文件是否为空然后获取文件的原始名称、大小和类型等信息最后使用MultipartFile的transferTo方法将文件保存到本地磁盘上。注意上述代码中的路径D:\upload\是一个本地路径需要根据实际情况进行修改。此外还需要在Spring MVC的配置文件中配置MultipartResolver以便正确处理文件上传请求。Ajax使用说明 在处理上传文件的例子中实际还使用了Ajax所以这里对Ajax相关的内容进行补充说明。AjaxAsynchronous JavaScript and XML实际是一种在Web应用程序中使用的技术它可以通过异步方式向服务器发送请求并获取响应而不需要重新加载整个页面。而jQuery是一个非常流行的JavaScript库其中包含了许多简化DOM操作和Ajax请求的方法因此通常被用于实现Ajax请求。 下面是一段用Ajax写的Demo代码。在Controller中定义好get/post方法在html.jsp页面上添加调用Ajax的代码。在下面的代码中首先引入了jQuery库并在页面加载完成后使用$函数进行初始化。然后通过click事件监听提交按钮的点击并在点击事件中使用$.ajax方法向服务器发送Ajax请求。在Ajax请求中设置了请求的URL、请求类型、请求数据和回调函数等参数。最后使用一个div元素来显示服务器返回的响应数据。!DOCTYPE html
html
headtitleAjax Demo/titlescript srchttps://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js/scriptscript$(function() {$(#submit-btn).click(function() {var message $(#message).val();$.ajax({url: /ajax/echo,type: POST,data: {msg: message},success: function(data) {$(#result).text(data);},error: function() {$(#result).text(Error!);}});});});/script
/head
bodyinput typetext idmessage placeholder请输入消息 /button idsubmit-btn提交/buttondiv idresult/div
/body
/html 查看spring-mvc-showcase的home.jsp文件里面有有大量ajax的请求调用部分代码截图如下所示可以看到在script标签下有很多监听click,submit的function(),function()里面实际调用的就是ajax请求ajax请求调用的就是controller中定义的get/post等方法。