﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-青蛙學堂-随笔分类-Java</title><link>http://www.cnitblog.com/yide/category/8975.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 13 Aug 2020 05:14:35 GMT</lastBuildDate><pubDate>Thu, 13 Aug 2020 05:14:35 GMT</pubDate><ttl>60</ttl><item><title>springmvc后台获取表单提交的参数数据</title><link>http://www.cnitblog.com/yide/archive/2020/08/13/92316.html</link><dc:creator>青蛙學堂</dc:creator><author>青蛙學堂</author><pubDate>Thu, 13 Aug 2020 00:50:00 GMT</pubDate><guid>http://www.cnitblog.com/yide/archive/2020/08/13/92316.html</guid><wfw:comment>http://www.cnitblog.com/yide/comments/92316.html</wfw:comment><comments>http://www.cnitblog.com/yide/archive/2020/08/13/92316.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/yide/comments/commentRss/92316.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yide/services/trackbacks/92316.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border-color: #cccccc; border-image: initial; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1、通过注解ModelAttribute直接映射表单中的参数到POJO。在from中的action写提交的路径，在input的name写参数的名称。<br /><br /><br />复制代码<br /><span style="color: #0000FF; ">package</span>&nbsp;com.demo.model;<br /><br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;user&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;String&nbsp;username;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;String&nbsp;password;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;nsex;<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;String&nbsp;getUsername()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;username;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;setUsername(String&nbsp;username)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>.username&nbsp;=&nbsp;username;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;String&nbsp;getPassword()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;password;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;setPassword(String&nbsp;password)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>.password&nbsp;=&nbsp;password;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;setNsex(<span style="color: #0000FF; ">int</span>&nbsp;nsex)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>.nsex&nbsp;=&nbsp;nsex;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;getNsex()&nbsp;{<span style="color: #0000FF; ">return</span>&nbsp;nsex;}<br />}<br />复制代码<br /><br />复制代码<br />&lt;%--<br />&nbsp;&nbsp;Created&nbsp;by&nbsp;IntelliJ&nbsp;IDEA.<br />&nbsp;&nbsp;User:&nbsp;wym<br />&nbsp;&nbsp;Date:&nbsp;2019/10/8<br />&nbsp;&nbsp;Time:&nbsp;23:17<br />&nbsp;&nbsp;To&nbsp;change&nbsp;<span style="color: #0000FF; ">this</span>&nbsp;template&nbsp;use&nbsp;File&nbsp;|&nbsp;Settings&nbsp;|&nbsp;File&nbsp;Templates.<br />--%&gt;<br />&lt;%@&nbsp;page&nbsp;language="java"&nbsp;contentType="text/html;&nbsp;charset=UTF-8"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pageEncoding="UTF-8"%&gt;<br />&lt;!DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;HTML&nbsp;4.01&nbsp;Transitional//EN"&nbsp;"http://www.w3.org/TR/html4/loose.dtd"&gt;<br />&lt;html&gt;<br />&lt;head&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;meta&nbsp;http-equiv="Content-Type"&nbsp;content="text/html;&nbsp;charset=UTF-8"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;Login&lt;/title&gt;<br />&lt;/head&gt;<br />&lt;body&gt;<br />&lt;form&nbsp;action="${pageContext.request.contextPath}/login"&nbsp;method="post"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;用户名：&lt;input&nbsp;type="text"&nbsp;name="username"/&gt;&nbsp;&lt;br&gt;&lt;br&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;密码：&lt;input&nbsp;type="password"&nbsp;name="password"/&gt;&nbsp;&lt;br&gt;&lt;br&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;type="submit"&nbsp;value="提交"/&gt;<br />&lt;/form&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;<br />复制代码<br /><br />复制代码<br /><span style="color: #0000FF; ">package</span>&nbsp;com.demo.controller;<br /><br /><br /><span style="color: #0000FF; ">import</span>&nbsp;com.demo.model.user;<br /><span style="color: #0000FF; ">import</span>&nbsp;com.demo.service.Userservice;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.beans.factory.annotation.Autowired;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.stereotype.Controller;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.web.bind.annotation.ModelAttribute;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.web.bind.annotation.RequestMapping;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.web.bind.annotation.RequestMethod;<br /><span style="color: #0000FF; ">import</span>&nbsp;javax.servlet.http.HttpSession;<br /><br />@Controller<br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;LoginController&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;@Autowired<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;Userservice&nbsp;userService;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@RequestMapping(value="/login",&nbsp;method=&nbsp;RequestMethod.POST)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;String&nbsp;hello(@ModelAttribute&nbsp;user&nbsp;u,&nbsp;HttpSession&nbsp;session){<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.setAttribute("user",&nbsp;u);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user&nbsp;user&nbsp;=&nbsp;userService.findbyname(u.getUsername());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(user&nbsp;==&nbsp;<span style="color: #0000FF; ">null</span>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;"loginfail";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">if</span>(!user.getPassword().equals(u.getPassword()))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;"falsepaswd";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;"helloworld";<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br /><br />}<br />复制代码<br />注意！！这里只有input的参数name名称和pojo中的成员域名称完全相同才可以通过@ModelAttribute进行直接映射，否则无法被赋值的参数将会以默认值的方式呈现。<br /><br />2.显然不可能form获取的内容总是某个pojo的属性，完全有可能是单独出现的。这时可以使用@RequestParam获取参数。<br /><br />复制代码<br />&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;String&nbsp;hello(@RequestParam(value="username")&nbsp;String&nbsp;A,&nbsp;@RequestParam(value="password")&nbsp;String&nbsp;B,&nbsp;HttpSession&nbsp;session){<br />&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.setAttribute("a",&nbsp;A);<br />&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.setAttribute("b",&nbsp;B);<br />&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user&nbsp;user&nbsp;=&nbsp;userService.findbyname(A);<br />&nbsp;5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(user&nbsp;==&nbsp;<span style="color: #0000FF; ">null</span>)<br />&nbsp;6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;"loginfail";<br />&nbsp;7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">if</span>(!user.getPassword().equals(B))<br />&nbsp;8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;"falsepaswd";<br />&nbsp;9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span><br />10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;"helloworld";<br />11&nbsp;<br />12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />复制代码<br />这时候只需跟在@RequestParam后的参数和form的name一致即可，String的名称可以随便取。<br /><br />&nbsp;<br /><br />3.可以直接啥注解都不加，只需保证参数名称和form的name即可<br /><br />复制代码<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;String&nbsp;hello(&nbsp;String&nbsp;username,&nbsp;String&nbsp;password,&nbsp;HttpSession&nbsp;session){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.setAttribute("a",&nbsp;username);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.setAttribute("b",&nbsp;password);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user&nbsp;user&nbsp;=&nbsp;userService.findbyname(username);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(user&nbsp;==&nbsp;<span style="color: #0000FF; ">null</span>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;"loginfail";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">if</span>(!user.getPassword().equals(password))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;"falsepaswd";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;"helloworld";<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />复制代码<br />&nbsp;<br /><br />4.通过HttpServletRequest接收<br /><br />复制代码<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;String&nbsp;hello(&nbsp;HttpServletRequest&nbsp;req,&nbsp;HttpSession&nbsp;session){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;username=req.getParameter("username");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;password=req.getParameter("password");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.setAttribute("a",&nbsp;username);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.setAttribute("b",&nbsp;password);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user&nbsp;user&nbsp;=&nbsp;userService.findbyname(username);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(user&nbsp;==&nbsp;<span style="color: #0000FF; ">null</span>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;"loginfail";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">if</span>(!user.getPassword().equals(password))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;"falsepaswd";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;"helloworld";<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />复制代码<br />&nbsp;<br /><br />&nbsp;<br /><br />此外，还有一些其他的方式接受数据，例如通过@RequestBody等方式传递json数据。</div><img src ="http://www.cnitblog.com/yide/aggbug/92316.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yide/" target="_blank">青蛙學堂</a> 2020-08-13 08:50 <a href="http://www.cnitblog.com/yide/archive/2020/08/13/92316.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用@RequestMapping+@Pathvariable获取url中携带的参数</title><link>http://www.cnitblog.com/yide/archive/2020/08/13/92315.html</link><dc:creator>青蛙學堂</dc:creator><author>青蛙學堂</author><pubDate>Thu, 13 Aug 2020 00:31:00 GMT</pubDate><guid>http://www.cnitblog.com/yide/archive/2020/08/13/92315.html</guid><wfw:comment>http://www.cnitblog.com/yide/comments/92315.html</wfw:comment><comments>http://www.cnitblog.com/yide/archive/2020/08/13/92315.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/yide/comments/commentRss/92315.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yide/services/trackbacks/92315.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border-color: #cccccc; border-image: initial; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.stereotype.Controller;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.web.bind.annotation.PathVariable;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.web.bind.annotation.RequestMapping;<br /><span style="color: #0000FF; ">import</span>&nbsp;top.huashengshu.springsecuritydemoimooc.entity.User;<br />&nbsp;<br />@Controller<br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;UserController&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;@RequestMapping(value&nbsp;=&nbsp;"/user/{id}")<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;User&nbsp;queryWhenId(@PathVariable(name&nbsp;=&nbsp;"id")&nbsp;Integer&nbsp;id){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User&nbsp;user=<span style="color: #0000FF; ">new</span>&nbsp;User();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;假设经过service获得到了一个User对象<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setId(id);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setName("张三");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setAge(18);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setSex(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;user;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />当我们使用Restful风格的代码并且想要获取url中携带的参数时，<br /><br />比如/user/id&nbsp;&nbsp;获取其中的id&nbsp;参数就可以使用&nbsp;@PathVariable注解<br /><br />@PathVariable(name&nbsp;=&nbsp;"id")&nbsp;Integer&nbsp;id&nbsp;&nbsp;&nbsp;&nbsp;来获取其中的id数据，如果不加name="xxx"则默认使用变量名来获取<br /><br />比如上面的案例可以直接使用@PathVariable&nbsp;Integer&nbsp;id<br /><br />其中的name作用是获取别名参数<br /><br />也可以通过@PathVariable(name&nbsp;=&nbsp;"id")&nbsp;Integer&nbsp;keyname<br /><br />将url中的id数据赋值给keyname变量<br /><br />&nbsp;<br /><br />另外还可以加一个require=true表示这个参数必须要有不能为null<br /><br />@PathVariable(required&nbsp;=&nbsp;<span style="color: #0000FF; ">true</span>,name&nbsp;=&nbsp;"id")&nbsp;Integer&nbsp;id<br />&nbsp;<br /><br />另外在@RequestMapping注解可以在url中使用正则表达式以上面的controller为例子，我们想要获取的id是数字类型的我们可以这样做，在@RequestMapping注解中这样使用加入正则&nbsp;通过&nbsp;&nbsp;冒号&nbsp;&#8220;&nbsp;:&nbsp;&#8221;加入正则来限制输入的参数<br /><br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.stereotype.Controller;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.web.bind.annotation.PathVariable;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.web.bind.annotation.RequestMapping;<br /><span style="color: #0000FF; ">import</span>&nbsp;top.huashengshu.springsecuritydemoimooc.entity.User;<br />&nbsp;<br />@Controller<br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;UserController&nbsp;{<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;@RequestMapping(value&nbsp;=&nbsp;"/user/{id:\\d+}")<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;User&nbsp;queryWhenId(@PathVariable(required&nbsp;=&nbsp;<span style="color: #0000FF; ">true</span>,name&nbsp;=&nbsp;"id")&nbsp;Integer&nbsp;id){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User&nbsp;user=<span style="color: #0000FF; ">new</span>&nbsp;User();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;假设经过service获得到了一个User对象<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setId(id);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setName("张三");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setAge(18);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setSex(1);<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;user;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />@RequestMapping还可以指定RESTful所使用的http方法，通过method=RequestMethod.GET&nbsp;&nbsp;或者DELETE或POST或PUT<br /><br />分别代码查询请求GET、删除请求DELETE、增加请求POST、修改请求PUT&nbsp;来指定Restful中的4中http方法<br /><br />@Controller<br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;UserController&nbsp;{<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;@RequestMapping(value&nbsp;=&nbsp;"/user/{id:\\d+}",method&nbsp;=&nbsp;RequestMethod.GET)<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;User&nbsp;queryWhenId(@PathVariable(required&nbsp;=&nbsp;<span style="color: #0000FF; ">true</span>,name&nbsp;=&nbsp;"id")&nbsp;Integer&nbsp;id){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User&nbsp;user=<span style="color: #0000FF; ">new</span>&nbsp;User();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">这里写逻辑<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;假设经过service获得到了一个User对象<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;user;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />&nbsp;<br /><br />&nbsp;<br /><br />&nbsp;<br /></div><img src ="http://www.cnitblog.com/yide/aggbug/92315.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yide/" target="_blank">青蛙學堂</a> 2020-08-13 08:31 <a href="http://www.cnitblog.com/yide/archive/2020/08/13/92315.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring 获取URL中的数据（@PathVariable）和请求的参数（@RequestParam）</title><link>http://www.cnitblog.com/yide/archive/2020/08/13/92314.html</link><dc:creator>青蛙學堂</dc:creator><author>青蛙學堂</author><pubDate>Thu, 13 Aug 2020 00:21:00 GMT</pubDate><guid>http://www.cnitblog.com/yide/archive/2020/08/13/92314.html</guid><wfw:comment>http://www.cnitblog.com/yide/comments/92314.html</wfw:comment><comments>http://www.cnitblog.com/yide/archive/2020/08/13/92314.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/yide/comments/commentRss/92314.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yide/services/trackbacks/92314.html</trackback:ping><description><![CDATA[<span style="color: #4d4d4d; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: 16px; font-variant-ligatures: common-ligatures;"><br /><br />SpringBoot获取URL中的数据和请求的参数,有两种方式，</span><br style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; color: #4d4d4d; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: 16px; font-variant-ligatures: common-ligatures;" /><span style="color: #4d4d4d; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: 16px; font-variant-ligatures: common-ligatures;">一种是：@PathVariable,获取URL中的参数</span><br style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; color: #4d4d4d; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: 16px; font-variant-ligatures: common-ligatures;" /><span style="color: #4d4d4d; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: 16px; font-variant-ligatures: common-ligatures;">另一种是：@RequestParam,获取请求参数值<br /><br /></span><div style="background-color: #eeeeee; font-size: 13px; border-color: #cccccc; border-image: initial; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->@PathVariable和@RequestParam<br /><br /><br />@PathVariable是从路径里面去获取变量，也就是把路径当做变量。<br /><br />&nbsp;<br /><br />@RequestParam是从请求里面获取参数。&nbsp;<br /><br />&nbsp;<br /><br />如：url：http:<span style="color: #008000; ">//</span><span style="color: #008000; ">localhost:8080/test_mobile/test?a=777&amp;b=888&amp;c=999</span><span style="color: #008000; "><br /></span><br />&nbsp;<br /><br />如果你要得到？后面的参数（a、b、c）的值，则需要使用@RequestParam进行方法里参数的注解，当然springmvc默认的参数注解就是它。<br /><br />&nbsp;<br /><br />例：&nbsp;@RequestMapping(value&nbsp;=&nbsp;"/test_mobile/test",&nbsp;method&nbsp;=&nbsp;RequestMethod.GET)<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;String&nbsp;list(Model&nbsp;model，@RequestParam&nbsp;String&nbsp;a)&nbsp;{&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">当然可以不加，springmvc默认的</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(a);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;<br /><br />如果&#8220;test_mobile&#8221;这个字符串需要后台获取到，使用@PathVariable<br /><br />&nbsp;<br /><br />例：<br /><br />@RequestMapping(value&nbsp;=&nbsp;"/{qqqqq}/test",&nbsp;method&nbsp;=&nbsp;RequestMethod.GET)<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;String&nbsp;list(Model&nbsp;model，@PathVariable("qqqqq")&nbsp;String&nbsp;aaaa)&nbsp;{&nbsp;<br /><br />&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">这里只要满足value中的路径结构正确，注解后面保证名称一致，就可以得到{qqqqq}占位符所占的值。</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(aaaa);<br />&nbsp;&nbsp;&nbsp;}</div><br style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; color: #4d4d4d; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: 16px; font-variant-ligatures: common-ligatures;" /><span style="color: #4d4d4d; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: 16px; font-variant-ligatures: common-ligatures;">第一种：@PathVariable<br /></span><div style="background-color: #eeeeee; font-size: 13px; border-color: #cccccc; border-image: initial; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span>&nbsp;com.hua.myfirst;<br /><br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.beans.factory.annotation.Autowired;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.web.bind.annotation.GetMapping;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.web.bind.annotation.PathVariable;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.web.bind.annotation.RequestMapping;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.web.bind.annotation.RestController;<br /><br /><span style="color: #008000; ">//</span><span style="color: #008000; ">@Controller&nbsp;+&nbsp;@Responsebody&nbsp;=@&nbsp;RestController</span><span style="color: #008000; "><br /></span>@RestController<br />@RequestMapping("/test")<br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;HelloConteoller&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Autowired<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;WomanConfig&nbsp;womanConfig;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">不同的链接访问同一个接口</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;@GetMapping("/hello/{id}")<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;String&nbsp;hello(@PathVariable("id")&nbsp;Integer&nbsp;id)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;"id:"&nbsp;+&nbsp;id&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}<br /><br /><br />启动成功，<br />打开链接：http:<span style="color: #008000; ">//</span><span style="color: #008000; ">127.0.0.1:8080/v1/test/hello/100<br /><br /></span><div style="background-color: #eeeeee; border-color: #cccccc; border-image: initial; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.beans.factory.annotation.Autowired;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.web.bind.annotation.*;<br /><br /><span style="color: #008000; ">//</span><span style="color: #008000; ">@Controller&nbsp;+&nbsp;@Responsebody&nbsp;=@&nbsp;RestController</span><span style="color: #008000; "><br /></span>@RestController<br />@RequestMapping("/test")<br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;HelloConteoller&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Autowired<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;WomanConfig&nbsp;womanConfig;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">不同的链接访问同一个接口</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;@GetMapping("/hello")<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;String&nbsp;hello(@RequestParam("id")&nbsp;Integer&nbsp;id)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;"id:"&nbsp;+&nbsp;id&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}<br /><br />启动成功，<br />打开链接：http:<span style="color: #008000; ">//</span><span style="color: #008000; ">127.0.0.1:8080/v1/test/hello?id=100</span><span style="color: #008000; "><br /></span><br />@RequestParam进阶：<br />使用@RequestParam(value&nbsp;=&nbsp;&#8220;id&#8221;,&nbsp;required&nbsp;=&nbsp;<span style="color: #0000FF; ">false</span>,&nbsp;defaultValue&nbsp;=&nbsp;"0"设置非必填参数，以及默认值<br /><br /><span style="color: #008000; ">//</span><span style="color: #008000; ">不同的链接访问同一个接口</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;@GetMapping("/hello")<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;String&nbsp;hello(@RequestParam(value&nbsp;=&nbsp;"id",&nbsp;required&nbsp;=&nbsp;<span style="color: #0000FF; ">false</span>,&nbsp;defaultValue&nbsp;=&nbsp;"0")&nbsp;Integer&nbsp;myID)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;"id:"&nbsp;+&nbsp;myID&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />启动成功，<br />打开链接：http:<span style="color: #008000; ">//</span><span style="color: #008000; ">127.0.0.1:8080/v1/test/hello&nbsp;默认值为0</span><span style="color: #008000; "><br /></span></div><span style="color: #008000; "><br /></span></div><img src ="http://www.cnitblog.com/yide/aggbug/92314.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yide/" target="_blank">青蛙學堂</a> 2020-08-13 08:21 <a href="http://www.cnitblog.com/yide/archive/2020/08/13/92314.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>