springMVCWord格式.docx
《springMVCWord格式.docx》由会员分享,可在线阅读,更多相关《springMVCWord格式.docx(21页珍藏版)》请在冰豆网上搜索。
param-name>
contextConfigLocation<
/param-name>
param-value>
classpath*:
applicationContext.xml<
/param-value>
/init-param>
load-on-startup>
0<
/load-on-startup>
/servlet>
servlet-mapping>
url-pattern>
*.do<
/url-pattern>
/servlet-mapping>
3在WEB-INF下配置springMVC的配置文件
文件名任意,通常情况下,文件名为核心控制器配置时
的值加-servlet.xml例如first-servlet.xml
当不这样命名时,需要在配置核心控制器是通过
/WEB-INF/spring-servlet.xml<
指定
启动spring的注解
context:
annotation-config/>
启动bean扫描
<
component-scanbase-package="
web.controller"
/>
启动springMVC注解方式
beanclass="
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"
或<
mvc:
annotation-driven/>
3Controller(控制器)
1@Controller表示这个类是控制层
2@RequestMapping配置Controller的访问路径
加在类上,也要加在方法上
例如:
@Controller
@RequestMapping(value="
userController.do"
)
publicclassUserController{
这个controller的访问路径为RegisterController.do
3controller中的方法:
返回值类型任意
方法名任意
参数列表任意
建议:
返回String类型----用来做跳转路径
方法要想被访问,必须在方法也添加@RequestMapping
@RequestMapping
publicStringregister(){
return"
index.jsp"
;
}
4关于@RequestMapping
1加在类上@RequestMapping(value="
RegisterController.do"
配置controller的访问路径
2加在方法上@RequestMapping
使得方法可以被访问
3加在方法上@RequestMapping一些其他属性的配置
@RequestMapping(method=RequestMethod.GET)
表示这个方法只有是GET请求时才能访问
4一个controller中有多个方法时,如何区分访问
@RequestMapping(method=RequestMethod.GET,params="
method=aaa"
)
这个方法的访问路径为:
HelloWorldController.do?
method=aaa
5不在class上配置@RequestMapping,只在方法上配置@RequestMapping
访问路径就是项目名/helloworld/test.do
@RequestMapping(value="
/helloworld/test"
5controller中获取客户端提交的数据的方式:
1方法中定义HttpServletRequest类型的参数
publicStringregister(HttpServletRequestrequest){
Stringname=request.getParameter(“name”);
@RequestParam("
name"
2在方法参数中使用@RequestParam注解
publicStringregister(@RequestParam("
)Stringname,@RequestParam("
age"
)intage){
System.out.println(name);
System.out.println(age);
@RequestParam("
)中的"
要和请求参数的key值相同
注意:
当请求参数和方法参数同名时,@RequestParam注解可以省略
3使用@PathVariable注解--这种用法比较特殊,少用
/hello/你好/18
/hello/{name}/{age}"
publicStringhello(@PathVariable("
)Stringname,@PathVariable("
)intage){
//省略了class上的@RequestMapping
//访问这个方法?
?
hello/zhangsan/100.do
System.out.println(name+"
\t"
+age);
/helloworld.jsp"
6controller方法中在作用域中设置值带回给客户端
1通过request.setAttribute();
2通过方法的参数ModelMapmodel
publicStringregister(ModelMapmodelMap){
modelMap.put(“key”,Object);
--放在request作用域
7controller中使用Session
1通过request获取sessionrequest.getSession()
2使用@SessionAttributes
@SessionAttributes的使用方式:
必须加在class上
@SessionAttributes({"
user"
"
.....})@RequestMapping(value="
publicclassRegisterController{
modelMap.put("
user);
中软高科"
);
modelMap中存的值将会在session中也保存一份
8关于跳转
1返回字符串默认是转发方式
2重定向return“redirect:
index.jsp”
3跳转路径前缀后缀的设置
!
--配置视图
beanid="
viewResolver"
class="
org.springframework.web.servlet.view.InternalResourceViewResolver"
p:
prefix="
/WEB-INF/view/"
suffix="
.jsp"
>
propertyname="
viewClass"
value>
org.springframework.web.servlet.view.JstlView<
/value>
/property>
/bean>
-->
return“index”将会跳转到/WEB-INF/view/index.jsp
9关于使用ModelAndView
通常用于方法的返回值
publicModelAndViewtest2(){
Stringname=“中软高科”;
returnnewModelAndView(newRedirect(“index.jsp”));
returnnewModelAndView(newRedirect(“index.jsp”),”name”,name);
--另一种带值得方式
returnnewModelAndView(newRedirectViews(“index.jsp”),map);
--map为Map也是用来带值
}
或
ModelAndViewmav=newModelAndView();
mav.setViewName(viewName);
//设置跳转路径
mav.addObject(obj)//这种设置方式,带的值key为这个对象所属类的类名首字母小写
mav.addObject(“key”,obj)
returnmav;
10@ModelAttribute注解
作用一:
获取请求参数:
publicStringregister(@ModelAttributeUseruser,@RequestParam("
birthday111"
)Stringbirthday)
客户端提交的数据会直接封装user中,要保证请求参数的key和user的属性相同
还会将user存入request作用域
对于Date的birthday无法完成直接的赋值,因此单独进行配置
另一个作用:
加在方法上,方法将会在controller中要调用的方法之前执行
@ModelAttribute("
myList"
publicList<
User>
getList(){//这个方法将在register方法之前执行
System.out