设为首页 加入收藏

TOP

基于springMVC 3.0项目开发实例(二)
2014-11-23 19:17:51 】 浏览:1847
Tags:基于 springMVC 3.0 项目 开发实例
ASE.jar

IOC的基础实现

org.springframework.context-3.0.3.RELEASE.jar

IOC基础上的扩展服务

org.springframework.core-3.0.3.RELEASE.jar

spring的核心包

org.springframework.expression-3.0.3.RELEASE.jar

spring的表达式语言

org.springframework.web-3.0.3.RELEASE.jar

web工具包

org.springframework.web.servlet-3.0.3.RELEASE.jar

mvc工具包

@Controller控制器定义

和Struts1一样,Spring的Controller是Singleton的。这就意味着会被多个请求线程共享。因此,我们将控制器设计成无状态类。

在spring 3.0中,通过@controller标注即可将class定义为一个controller类。为使spring能找到定义为controller的bean,需要在spring-context配置文件中增加如下定义:

"com.sxt.web"/>

注:实际上,使用@component,也可以起到@Controller同样的作用。

@RequestMapping

在类前面定义,则将url和类绑定。

在方法前面定义,则将url和类的方法绑定,如下所示:

package com.sxt.web;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import com.sxt.service.UserService;

@Controller

@RequestMapping("/user.do")

publicclass UserController {

@Resource

private UserServiceuserService;

//http://localhost:8080/springmvc02/user.do method=reg&uname=zzzz

@RequestMapping(params="method=reg")

public String reg(String uname) {

System.out.println("HelloController.handleRequest()");

userService.add(uname);

return"index";

}

public UserService getUserService() {

returnuserService;

}

publicvoid setUserService(UserService userService) {

this.userService = userService;

}

}

@RequestParam

一般用于将指定的请求参数付给方法中形参。示例代码如下:

@RequestMapping(params="method=reg5")

public String reg5(@RequestParam("name")String uname,ModelMap map) {

System.out.println("HelloController.handleRequest()");

System.out.println(uname);

//通过ModelMap传参

map.put("name", uname);

return"index";

}

这样,就会将name参数的值付给uname。当然,如果请求参数名称和形参名称保持一致,则不需要这种写法。

@SessionAttributes

将ModelMap中指定的属性放到session中。示例代码如下:

@Controller

@RequestMapping("/user.do")

@SessionAttributes({"u","a"}) //将ModelMap中属性名字为u、a的再放入session中。这样,request和session中都有了。

publicclass UserController {

@RequestMapping(params="method=reg4")

public String reg4(ModelMap map) { System.out.println("HelloController.handleRequest()");

map.addAttribute("u","uuuu"); //将u放入request作用域中,这样转发页面也可以取到这个数据。

return"index";

}

}

**********${requestScope.u.uname}

**********${sessionScope.u.uname}

注:名字为”user”的属性再结合使用注解@SessionAttributes可能会报错。

@ModelAttribute

这个注解可以跟@SessionAttributes配合在一起用。可以将ModelMap中属性的值通过该注解自动赋给指定变量。

示例代码如下:

package com.sxt.web;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;

import org.springframework.ui.ModelMap;

import org.springframework.web.bind.annotation.ModelAttribute;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.SessionAttributes;

@Controller

@RequestMapping("/user.do")

@SessionAttributes({"u","a"})

publicclass UserController {

@RequestMapping(params="method=reg4")

public String reg4(ModelMap map) {

System.out.println("HelloController.handleRequest()");

map.addAttribute("u","尚学堂高淇");

return"index";

}

@RequestMapping(params="method=reg5")

public String reg5(@ModelAttribute("u")String uname ,ModelMap map) {

System.out.println("HelloController.handleRequest()");

Syst

首页 上一页 1 2 3 4 5 6 7 下一页 尾页 2/8/8
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇ftk学习记(list篇) 下一篇策略模式Strategy――回家乘什么..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目