springBoot @RequestBody 写在方法上与写在参数上的区别?

angular的ajax是基于promise来做的,即$.t(ulr, params).then()

1. @Controller

requestparam注解_request param用法requestparam注解_request param用法


requestparam注解_request param用法


b、 调用 proceed()可以获取返回结果,所以可以修改目标方法的返回值

控制层组件,定义一个springMVC的类,往往需要和@RequestMapping配合使用。

2. @RestController

相当于@ResponseBody+@Controller合在一起的作用。

3. @Serv

服务层组件,用于标注业务层组件,表示定义一个bean,自动根据bean的类名实例化一个首写字母为小写的bean,也可以指定bean的名称:@Serv(“beanName”)。

4. @Reitory

持久层组件,用于标注数据访问组件,即DAO组件。

5. @Component

把普通pojo实例化到spring容器中,相当于配置文件中的

用于配置控制层的访问URL,可以用在类上和方法上,如果用在类上,则访问类中的方法是要加上类上的路径,例如:

@Controller

@RequestMapping("/personal/linkInfo")

public class LinkInfoController {

@RequestMapping(value = "/addLinkInfo")

public String addLinkInfo(LinkInfoReq linkInfoReq) {

l应用实例:inkInfoServ.addLinkInfo(linkInfoReq);

上述代码的访问路径就是XXX/personal/linkInfo/addLinkInfo。

@RequestMapping源代码如下图:

a) value:设置访问的URL,数组,可以将多个请求映射到一个方法上去。支持通配符配置

代码示例:

@RequestMapping(value = {"/page","/page"})

public void getInfo() {

}上述代码访问路径可以是:XXX/page,XXX/pageadc等满足value条件的路径。

b) mod:设置访问的方法,数组,可是设置多个访问方法映射到同一个方法上,默认为GET方法

代码示例:

public void getInfo() {

}上述代码 /page路径就只能用POST方法才能请求。

mod的可选值有GET,HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE。

c) params:指定request中必须包含某些参数值是,才让该方法处理。数组。

@RequestMapping(value = "/page", params = {"type=1"})

public void getInfo() {

}上述代码/page路径只有请求参数中包含type且值等于1时才能访问该方法。

d) headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。数组。

示例代码:

@RequestMapping(value = "/page", headers = {" content-type=text/plain " })

public void getInfo() {

}上述代码/page路径只有headers中content-type=text/plain才能访问该方法。

e) consumes:指定处理请求的提交内容类型(Content-Type),例如application/json, text/html。

f) produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回。

7. @ResponseBody

通常使用在controller方法上,作用是将方法的返回值通过合适的HttpMessageConverter转换成特定格式写入到response的body区域,然后返回给客户端,如果没有使用@RequestBody注解,方法返回值将会封装到ModelAndView并解析返回视图。

8. @RequestParam

接受的参数来自requestHeader,即请求头,用来接收GET和POST请求参数并将参数赋值到被@RequestParam注解的变量上,同样可以使用requet.getParameter(“name”)获取,默认的参数接受方式,如果controller方法的参数未使用@RequestParam,则默认也是使用@RequestParam接受参数。用来处理Content-Type: 为 application/x-www-form-encoded编码的内容。

@RequestParam有三个配置参数:

a) required:是否必须,默认true,必须。

b) defaultValue:默认值,请求的参数为空时使用默认值。

c) value:请求的参数名。

9. @RequestBody

接受的参数来自requestBody,即请求体,一般用于处理非 Content-Type: application/x-www-form-encoded编码格式的数据,比如:application/json、application/xml等类型的数据。

10. @Autowired

它可以对类成员变量,方法及构造函数进行标注,完成自动装配工作,可以消除set,get方法。

11. @Resource

其作用和@Autowired相似。

不同点:

@Resource是Ja自己的注解,@Resource有两个属性重要属性,分是name和type;Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。

@Autowired是spring的注解,是spring2.5版本引入的,@Autowired只根据type进行注入,不会去匹配name。如果涉及到type无法辨别注入对象时,那需要依赖@Qualifier注解一起来修饰。

@Resource装配顺序

b) 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常

c) 如果指定了type,则从上下文中找到类型匹配的bean进行装配,找不到或者找到多个,都会抛出异常

d) 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;

使用@Resource,不用谢set方法,并且这个注解属于ja自己的,减少了与spring的耦合度。

12. @Value

该注解有两种使用方式:

a) @Value(“${}”)

这种使用方式注入的是配置文件里的参数

这样配置文件中的com.title就能配置到LinkInfoController的title属性中

b) @Value(“#{}”)

该方式表示SpEl表达式通常用来获取bean的属性,或者调用bean的某个方法。

用于配置spring事务管理。属性信息如下:

事物的传播行为如下:

14. @SpringBootApplication

该注解其实是一个组合注解,源码如下图:

比较重要的注解有三个:

a) @SpringBootConfiguration

从源代码可以看到@SpringBootConfiguration继承自@Configuration,这两个注解的功能也是一样的。

b) @EnableAutoConfiguration

此注释自动载入应用程序所需的所有Bean。

c) @ComponentScan

该注解会扫描指定路径下的的类,并将其加入到IoC容器中。在springboot中,@ComponentScan默认扫描@SpringBootApplication所在类的同级目录以及它的子目录。

15. @Configuration

从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。

16. @Bean

该注解主要用在@Configuration注解的类里,也可以用在@Component注解的类里。添加的bean的id为方法名。相当于配置文件里的

@Configuration

public class RedisConfig extends CachingConfigurerSupport{

@Bean

public CacheMar cacheMar(RedisConnectionFactory connectionFactory) {

RedisCacheMar redisCacheMar = RedisCacheMar.create(connectionFactory);

return redisCacheMar;

如上代码就相当于在xml文件里配置:

17. @MapperScan

指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类添加位置:是在Springboot启动类上面添加:

18. @EnableCaching

该注解是spring framework中的注解驱动的缓存管理功能。自spring版本3.1起加入了该注解。如果你使用了这个注解,那么你就不需要在XML文件中配置cache mar了。

@Configuration

@EnableCaching

public class RedisConfig extends CachingConfigurerSupport{

/

采用RedisCacheMar作为缓存管理器

@param connectionFactory

@return

/

@Bean

public CacheMar cacheMar(RedisConnectionFactory connectionFactory) {

RedisCacheMar redisCacheMar = RedisCacheMar.create(connectionFactory);

return redisCacheMar;

19. @EnableRedisHttpSession

用来设置springboot使用redis存储session,该注解会创建一个名字叫springSessionReitoryFilter的Spring Bean,其实就是一个Filter,这个Filter负责用Spring Session来替换原先的默认HttpSession实现。

示例代码如下:

@Configuration

@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 6030)

public class HttpSessionConfig {

}其中属性maxInactiveIntervalInSeconds是设置session的有效时间,单位毫秒,默认1800ms。

但其实这样还是不够的,还要在配置文件中设置redis存储session:

spring.session.store-type=redis

这样就可以了。

Angular和jQuery的ajax请求的区别

public void findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) {

jQuery的t明显比angularjs的要简单一些,人性化一些

data: {"selectValue": selectValue},

AngularJS:

a、匹配指定类下的所有方法。

$.t('do-submit.php',myData).success(function(){ // some code});jQuery:

$.t('do-submit.php', myData, function() { // some code});看起来没什么区别吧?可是,用angularjs的$提交的数据,在php端却无法通过$_REQUEST/$_POST获取到,而需要用:

$params = json_decode(file_get_contents('php://input'),true);

来获取。这是因为两者的t对header的处理有所不同……jQuery会把作为JSON对象的myData序列化,例如:

var myData = { a : 1, b : 2 };

jQuery在t数据之前会把myData转换成字符串:"a=1&b=2"

而Angular不会。

注意angular和jquery的ajax请求是不同的。

在jquery中,文档解释contentType默认是 application/x-www-form-encoded; charset=UTF-8

而参数data,jquery是进行了转换的。所以,jquery是jascript对象转换了字符串,传给后台。在SpringMVC中,就可以使用@RequestParam注解或者request.getParameter()方法获取参数。

而在angular中,$的contentType默认值是

application/json;charset=UTF-8

这样在后台,SpringMVC通过@RequestParam注解或者request.getParameter()方法是获取不到参数的。

在jquery中,文档解释contentType默认是 application/x-www-form-encoded; charset=UTF-8

jquery是jascript对象转换了字符串,传给后台。在SpringMVC中,就可以使用@RequestParam注解或者request.getParameter()方法获取参数。

而在angular中,$的contentType默认值是

application/json;charset=UTF-8

这样在后台,SpringMVC通过@RequestParam注解或者request.getParameter()方法是获取不到参数的。

jquery则是基于立即响应,在ajax中第三个参数就是callback方法,

另外angular的$方法,已经做好了很多拦截服务,$Provide服务

没什么区别,一定要说有,那就是 angular对ajax做了更好的优化

jq的应用更广泛一些,更实用一些。课题通过request.getParameter()得到参数。

但angular有限制。

angularjs发的是json对象,jquery会把数据序列化再发送。

spring shiro注解配置不生效

不知道你解决了没,你是不是用了springmvc,如果使用springmvc的话,在springmvc-servlet.xml文件中也要添加几行shiro需要使用的代码,添加内容如下:

使用@PathVariabl获取路径传递参数

用于标注类为spring容器bean的注解有四个, 主要用于区别不同的组件类,提高代码的可读性:

/403

这样在使用shiro的权限注解的时候就可用了

controller注解配置路径 form中的action怎么配置

所以在 ② 处,我们就可以通过 ModelMap 入参访问到 s 属性,当执

该方法需依赖包:要再、在页面定义 <%@ taglib uri="" prefix="c"%>

该方法需要在页面定义 basePath,新建JSP里面就有,不贴代码了

控制层如何获取视图层select标签选中的值?

c、 proceed(Object[] var1) 可以修改入参,修改目标方法的入参

在控制层中,可以通过以下两种方法获取视图层select标签选中的值:

13. @Transactional

通过表单提交获取:

配置文件 applicationContext.xml:

在前端页面中,将选中的值作为表单的一个参数,通过form表单提交到后台控制层。在后台控制层中,通过request.getParameter()方法获取表单参数的值。

示例代码如下:

HTML代码:

```

```

控制层Ja代码:

```

@RequestMapping("/testController")

public ModelAndView testController(HttpServletRequest request) {

// do soming with selectValue

return new ModelAndView("viewName");

}```

2. 通过AJAX请求获取:

使用ajax请求,在前端页面中获取select标签选中的值,并通过ajax发送到后台控制层。在后台控制层中,通过@RequestParam注解获取ajax请求中的参数值。

示例代码如下:

HTML代码:

```

```

控制层Ja代码:

```

@RequestMapping("/testController")

public ModelAndView testController(@RequestParam String selectValue) {

// do soming with selectValue

return new ModelAndView("viewName");

}```

springmvc 的string.类型参数 用什么注解

6. @RequestMapping

spring mvc常用的注解:

存在的问题:在SpringMVC注入参数的时候,如@PathVariable、@RequestParam注解,我们都必须想下图中的格式书写,可能会有人存在疑问,为什么变量名和传递的参数名相同,还需要在注解中重复的写变量名呢?这个可以完全可以省略不写的。其实这个观点是错误的,这里我会给大家说明这是为什么。

个介绍。

@Controller

@Controller 负责注册一个bean 到spring 上下文中,bean 的ID 默认为

类名称开头字母小写,你也可以自己指定,如下

方法一:

@Controller

public class TestController {}

方法二:

@Controller("tmpController")

public class TestController {}

@RequestMapping

1.@RequestMapping用来定义访问的URL,你可以为整个类定义一个

@RequestMapping,或者为每个方法指定一个。

@RequestMapping注解协同工作,取得缩小选择范围的效果。

例如:

@RequestMapping("/test")

public class TestController {}

则,该类下的所有访问路径都在/test之下。

2.将@RequestMapping用于整个类不是必须的,如果没有配置,所有的方法

的访问路径配置将是完全的,没有任何关联。

3.完整的参数项为:@RequestMapping(value="",mod =

{"",""},headers={},params={"",""}),各参数说明如下:

value :String[] 设置访问地址

mod: RequestMod[]设置访问方式,字符数组,查看RequestMod

类,包括GET, HEAD, POST, PUT, DELETE, OPTIONS, TRACE,常用

RequestMod.GET,RequestMod.POST

headers:String[] headers一般结合mod = RequestMod.POST使用

params: String[] 访问参数设置,字符数组 例如:userId=id

4.value的配置还可以采用模版变量的形式 ,例如:@RequestMapping

(value="/owners/{ownerId}", mod=RequestMod.GET),这点将在介

绍@PathVariable中详细说明。

5.@RequestMapping params的补充说明,你可以通过设置参数条件来限制

访问地址,例如params="myParam=myValue"表达式,访问地址中参数只有

包含了该规定的值"myParam=myValue"才能匹配得上,类似"myParam"之类

的表达式也是支持的,表示当前请求的地址必须有该参数(参数的值可以是

任意),"!myParam"之类的表达式表明当前请求的地址不能包含具体指定的

参数"myParam"。

6.有一点需要注意的,如果为类定义了访问地址为.do,.html之类的,则

在方法级的@RequestMapping,不能再定义value值,否则会报错,例如

Ja代码

@RequestMapping("/bbs.do")

public class BbsController {

@RequestMapping(params = "mod=getList")

public String getList() {

return "list";

}@RequestMapping(value= "/spList")

public String getSpecialList() {

return "splist";

如上例:/bbs.do?mod=getList 可以访问到方法getList() ;而访

问/.

@PathVariable

1.@PathVariable用于方法中的参数,表示方法参数绑定到地址URL的模板

变量。

例如:

Ja代码

mod=RequestMod.GET)

public String findOwner(@PathVariable String ownerId, Model

model) {

Owner owner = ownerServ.findOwner(ownerId);

model.addAttribute("owner", owner);

return "displayOwner";

}2.@PathVariable用于地址栏使用{xxx}模版变量时使用。

如果@RequestMapping没有定义类似"/{ownerId}" ,这种变量,则使用在

@ModelAttribute

1.应用于方法参数,参数可以在页面直接获取,相当于

request.setAttribute(,)

2.应用于方法,将任何一个拥有返回值的方法标注上 @ModelAttribute,使

其返回值将会进入到模型对象的属性列表6、 @Around中.

3.应用于方法参数时@ModelAttribute("xx"),须关联到Object的数据类型

,基本数据类型 如:int,String不起作用

例如:

Ja代码

@ModelAttribute("s")//<——①向模型对象中添加一个名为s的

属性

public List populateItems() {

List lists = new ArrayList();

lists.add("1");

lists.add("2");

return lists;

}@RequestMapping(params = "mod=listAllBoard")

public String listAllBoard(@ModelAttribute("currUser")User user,

ModelMap model) {

bbtForumServ.getAllBoard();

//<——②在此访问模型中的s属性

System.out.println("model.s:" + ((List)

model.get("s")).size());

return "listBoard";

}在 ① 处,通过使用 @ModelAttribute 注解,populateItem() 方法将在

任何请求处理方法执行前调用,Spring MVC 会将该方法返回值以“s

”为名放入到隐含的模型对象属性列表中。

行 listAllBoard() 请求处理方法时,② 处将在控制台打印

出“model.s:2”的信息。当然我们也可以在请求的视图中访问到模型

对象中的 s 属性。

@ResponseBody

这个注解可以直接放在方法上,表示返回类型将会直接作为HTTP响应字节

流输出(不被放置在Model,也不被拦截为视图页面名称)。可以用于ajax。

@RequestParam

@RequestParam是一个可选参数,例如:@RequestParam("id") 注解,所以

它将和URL所带参数 id进行绑定

如果入参是基本数据类型(如 int、long、float 等),URL 请求参数中

一定要有对应的参数,否则将抛出

org.springframework.web.util.NestedServletException 异常,提示无

法将 null 转换为基本数据类型.

@RequestParam包含3个配置 @RequestParam(required = ,value="",

defaultValue = "")

required :参数是否必须,boolean类型,可选项,默认为true

value: 传递的参数名称,String类型,可选项,如果有值,对应到设置方

法的参数

defaultValue:String类型,参数没有传递时为参数默认指定的值

Spring 允许我们有选择地指定 ModelMap 中的哪些属性需要转存到

session 中,以便下一个请求属对应的 ModelMap 的属性列表中还能访问

到这些属性。这一功能是通过类定义处标注 @SessionAttributes 注解来

实现的。@SessionAttributes 只能声明在类上,而不能声明在方法上。

例如

@SessionAttributes("currUser") // 将ModelMap 中属性名为currUser 的属性

@SessionAttributes({"attr1","attr2"})

@SessionAttributes(types = User.class)

@SessionAttributes(types = {User.class,Dept.class})

@SessionAttributes(types = {User.class,Dept.class},value={"attr1","attr2"})

@RequestHeader 获取请求的头部信息

SpringMVC注入参数时为什么必须要在注解中

2、 @ConfigurationProperties

分析:我们在编写代码的时候使用的Eclipse或者MyEclipse开发工具,这些开发工具的默认运行方式是debug运行,当在使用Eclipse工具测试的时候,就是在debug环境下运行的,此时方法中参数的名称是会记录到类中,但是在正式上线的时候,在实际的运行环境中运行时是不会开启debug模式,也就是说上线后方法中参数的名称(变量名)是不会记录到类中的,而是通过反射生成一个参数名,问题就是在这里,当这注解中不注明参数名时,自动生成的参数名就会和传递参数名不相同,此时就会出现传入的参数值无法找到匹配的变量接收,也就是无法注入参数值,从而就会出现异常。

方法中@PathVariable会报错。

出现的异常:

既然这样,我们怎么知道Eclipse是否开启debug模式呢?

看下图:我们首先右击我们的可以设置的属性:工程-->properties

这样就可以很好的解释问题中所描述的情况,因此在书写此类代码的时候一定要注意不要忘记注解中的参数名和方法上的变量名保持一致。

阅读全文

spring boot 打成jar包后 通过命令行传入的参数怎么获得

@RequestMapping(value="/owners/{ownerId}",

面些例说明

使用@RequestParam绑定请求参数值

@RequestMapping(value="/mod1") public String mod1( @RequestParam(value="userName",required = false) String userName, @RequestParam("pwd") String pwd){ return "modSignature"; }

@RequestParam参数三:

使用数组或者List让@RequestParam接收同名参数

public String requestparam(@RequestParam(value="role") String roleArray)

public String requestparam(@RequestParam(value="role") List roleList)

value:参数名字即入参请求参数名字username表示请求参数区名字username参数值传入;

required:否必须默认@RequestMapping(value = "/page", mod = RequestMod.POST)true表示请求定要相应参数否则报404错误码;

defaultValue:默认值表示请求没同名参数默认值默认值SpEL表达式逗#{Properties[‘ja.vm.version’]}

使用@CookieValue绑定请求Cookie值

@CookieValue参数@RequestParam

第二种绑定jax.servlet..Cookie类型参数

public String test2(@CookieValue(value="JSESSIONID", defaultValue="") Cookie sessionId)

第种绑定a、 value :指定切入点表达式String类型参数

public String test(@CookieValue(value="JSESSIONID", defaultValue="") String sessionId)

使用@RequestHeader绑定请求报文属性值

@RequestMapping(value="/mod3") public String mod3( @RequestHeader("Accept-Encoding") String encoding, @RequestHeader("Keep-Alive") long keepAlive){ return "modSignature"; }

@RequestMapping(value="/users/{userId}/topics/{topicId}") public ModelAndView helloWorld( @PathVariable String userId, @PathVariable Long topicId) { System.out.println(id); System.out.println(str); return new ModelAndView( " /helloWorld " ); }

请求URL逗URL/users/123/topics/456则自URL模板变量{userId}{topicId}绑定通 @PathVariable注解同名参数即入参userId=123、topicId=456代码 PathVariableTypeController

使用表单象绑定请求参数值

@RequestMapping(value="/mod4") public String mod4(User user){ return "modSignature"; }

使用Servlet API象作入参

同使用HttpServletRequest、HttpServletResponse、HttpSession

@RequestMapping(value="mod5") public void mod5( HttpServletRequest request, HttpServletResponse response, HttpSession session){ String userName = WebUtils.findParameterValue(request, "userName"); response.addCookie(new Cookie("userName",userName)); }

使用Servlet原API接口WebRequestNativeWebRequest等

@RequestMapping(value="mod6") public String mod6(WebRequest request){ String userName = request.getParameter("userName"); return "modSignature"; }

使用IO象作入参

ja.io.InputStream/ja.io.Reader 及ja.io.OutputStream/ja.io.Writer

@RequestMapping(value="mod7") public void mod7(OutputStream os) throws IOException{ Resource res = new ClassPathResource("/image.jpg");//读取类路径文件 FileCopyUtils.copy(res.getInputStream(), os); }

使用其类型参数

ja.util.Locale/ja.security.Principal

通ServletHttpServletRequestgetLocale()及getUserPrincipal()

@RequestMapping(value="mod8") public String mod8(Locale locale,Principal principal){ return "modSignature"; }

@SessionAttributes @ModelAttribute使用

默认情况ModelMap属性作用于request级别说本请求结束ModelMap属性销毁希望请求共享ModelMap属性必须其属性转存sessionModelMap属性才跨请求访问

Spring允许我选择情ModelMap哪些属性需要转存session便请求所应ModelMap属性列表能访问些属性功能通类定义处注解@SessionAttributes实现

使模型象(ModelMap)特定属性具Session范围作用域

@Controller @RequestMapping("/user") @SessionAttributes("currUser") //①模型象(ModelMap)currUser属性放Session属性列表便属性跨请求访问 public class UserLoginController{ @RequestMapping(value="/login") public String login(@RequestParam("id") int id, User user, ModelMap model){ // ②往ModelMap存放currUser属性该属性转存Session属性列表 model.addAttribute("currUser", user); return "success"; } }

我②处添加ModelMap属性其属性名currUser①处通@SessionAttributes注解ModelMap名currUser属性放置Session所我login()请求所应JSP视图页面通request.getAttribute(逗currUser)session.getAttribute(逗currUser)获取user象请求所应JSP视图页面通session.getAttribute(逗currUser)或者ModelMap.get(逗currUser)访问属性

我仅 ModelMap 属性放入 Session [email protected]??字符串数组式指定属性 @SessionAttributes({逗attr1,attr2})外@SessionAttributes 通属性类型指定要 session 化 ModelMap 属性 @SessionAttributes(types = User.class)指定类 @SessionAttributes(types = {User.class,Dept.class})联合使用属性名属性类型指定:@SessionAttributes(types = {User.class,Dept.class},value={逗attr1,attr2})

ja里spring自定义注解如何组合原有注解,如自定义@AjaxRequestMapping=@ResponseBody+@RequestMapping

同样的 ResponseBodyA: 针对使用@ResponseBody的注解的类,方法做增强处理。

@AliasFor(

annotation = RequestMapping.class

)String[] value() default {};

用这种格式书写才能把值传递@RequestMapping(value="/)给@RequestMapping中去

请使用 @RestController + @GetMapping/@PostMappi

@Resa) 如果同时指定了name和type,则从Spring上下文中找到匹配的bean进行装配,找不到则抛出异常tControlle("/api/test")

class Api{

@GetMapping("/list")

Object list(@RequestParam("page")Integer page){

人家定义的注解时,是那样写的,,,,,,你可以自己修改注解,来实现。。。。。。。。。。。

springmvc中的的注解一般用哪个,有没有别的注可以替代

对com.example.aop 包下所Around增强处理通常需要在线程安全的环境下使用,如果@Before和@AfterReturning可以处理就没必要使用@Around。有的类的所有方法做 before增强处理:

1、@Controller

2、@RequestMapping

3、@RequestParam, @PathVariablereturn "redirect:/personal/linkInfo/toLinkInfo";, @CookieValue

@Controller注解能将任意的类标注成类。与传统的相反,被标注的类不需要实现特定于框架的接口,也不必扩展特定于框架的基类。

springmvc t请求可以用 requestparam获得到数据吗

@Bean 通常使用在 @Configuration 修饰的配置类中,该注解功能相当于 元素

理论上来说可以用@RequestParam获取

把@RequestMapping放在类级别上,这可令它与方法级别上的

但是我最近遇到问题正常的表单请求,异步请求都能获取

@SessionAttributes session管理

用tman等其他提交工具测试的请求 数据反而获取不了 也不知道为什么

当使用@RequestMapping URI template 样式映射时, 即 someUrl/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上。

示例代码:

@Controller

@RequestMapping("/owners/{ownerId}")

public class RelativePathUriTemplateController {

@RequestMapping("/pets/{petId}")

// implementation omitted