SpringMVC注解学习笔记01

目录

 视图解析器 属性

 @Controller

@RequestMapping

容易出现的问题tips:


 视图解析器<property> 属性

prefix和suffix 两个属性作为前缀后缀预留标签,可以灵活配置多个页面。

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
		<property name="prefix" value="/jsp/"></property>
		<property name="suffix" value=".jsp"></property>
</bean>

 如controller在添加此标签后,可以统一配置后缀及前缀

如图可见.jsp可以省略了


 @Controller

         无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller ,这样Controller 就能被外界访问到了。

在SpringMVC 的配置文件中配置标记为@Controller 的Controller 控制器的位置。

base-package="controller"是要扫描的包的位置

<context:component-scan base-package="controller"></context:component-scan>

 在controller中编写@Controller注解

配置文件中要记得声明spring-context

xmlns:context="http://www.springframework.org/schema/context"
package controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/jsp")
public class HelloController {
	//登录
	@RequestMapping("/login")
	public ModelAndView login() {
		ModelAndView mv = new ModelAndView();
		mv.addObject("msg","登录");
		mv.setViewName("login");
		return mv;
	}
	//注册
	@RequestMapping("/reg")
	public ModelAndView reg() {
		ModelAndView mv = new ModelAndView();
		mv.addObject("msg","注册");
		mv.setViewName("reg");
		return mv;
	}
}

在这个代码段中,使用了@Controller标记,这样可以不用实现controller类在url中访问到。


@RequestMapping

使用@RequestMapping注解后,我们不再需要通过配置bean来完成请求的路径配置,直接使用@RequestMapping进行url路径的映射

首先注释掉你配置好的bean,他不再有用了。

 然后在代码中添加@RequestMapping注释,这里有两种方法。

@RequestMapping("/xxx")
@RequestMapping(value="/xxx")

以下是代码示例

package controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/jsp")
public class HelloController {
	//登录
	@RequestMapping("/login")
	public ModelAndView login() {
		ModelAndView mv = new ModelAndView();
		mv.addObject("msg","登录");
		mv.setViewName("login");
		return mv;
	}
	//注册
	@RequestMapping("/reg")
	public ModelAndView reg() {
		ModelAndView mv = new ModelAndView();
		mv.addObject("msg","注册");
		mv.setViewName("reg");
		return mv;
	}
}

类头部的@RequestMapping("/jsp")限定前缀开头,此示例中为/jsp

方法头部的@RequestMapping("/reg")排列在类之后,示例中reg方法整体将会显示为/jsp/reg

(@RequestMapping("/jsp")也可以限定post或get方法,@RequestMapping(method = RequestMethod.GET))


容易出现的问题tips:

1.路径存在错误,检查请求的url以及 @RequestMapping位置

2.前端页面放的位置存在问题,或许在WEB-INF/里(手动狗头)

3.有没有mv.setViewName("login");


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值