Spring MVC入門教程(二)

一任天然發表於2016-10-13

本篇介紹一下MVC中很重要的一個角色Controller,通過一個簡單例子來學習。

@Controller
@RequestMapping("/user")
public class UserController {
    @Resource
    private IUserService userService;
    @RequestMapping("/userInfo")
    public String userInfo(@RequestParam int id, Model model){
        User user = this.userService.getUserById(id);
        model.addAttribute("user", user);
        return "userInfo";
    }

    @RequestMapping(path="/userInfoPath/{id}")
    public String userInfoPath(@PathVariable int id,Model model){
        User user = this.userService.getUserById(id);
        model.addAttribute("user",user);
        return "userInfo";
    }

    @ResponseBody
    @RequestMapping(path="/userInfoJson/{id}")
    public User userInfoJson(@PathVariable int id){
        User user = this.userService.getUserById(id);
        return user;
    }
}

@Controller

@Controller註解使用在類上,表明這個類是一個Controller(控制器,MVC中的C)。

@RequestMapping

@RequestMapping註解可以使用在類上也可以使用在方法上。

類中

使用在類上的@RequestMapping(“/user”),用於指定訪問此控制器的的路徑。http://localhost:8080/user 訪問到UserController。

方法中

使用在方法上的@RequestMapping(“/userInfo”),用於指定訪問該方法的路徑。http://localhost:8080/user/userInfo 訪問到UserController中的userInfo方法。

@RequestParam

@RequestParam註解將訪問引數繫結到方法變數中。

    @RequestMapping("/userInfo")
    public String userInfo(@RequestParam int id, Model model){
        User user = this.userService.getUserById(id);
        model.addAttribute("user", user);
        return "userInfo";
    }

訪問路徑http://localhost:8080/user/userInfo?id=1

@PathVariable

@PathVariable是一個路徑變數,配合URI模板使用。

    @RequestMapping(path="/userInfoPath/{id}")
    public String userInfoPath(@PathVariable int id,Model model){
        User user = this.userService.getUserById(id);
        model.addAttribute("user",user);
        return "userInfo";
    }

訪問路徑http://localhost:8080/user/userInfoPath/1

返回json資料

controller中

    @ResponseBody
    @RequestMapping(path="/userInfoJson/{id}")
    public User userInfoJson(@PathVariable int id){
        User user = this.userService.getUserById(id);
        return user;
    }

xml中

<mvc:annotation-driven />

    <bean id="mappingJacksonHttpMessageConverter"
        class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>text/html;charset=UTF-8</value>
            </list>
        </property>
    </bean>
    <bean
            class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"
            p:ignoreDefaultModelOnRedirect="true">
        <property name="messageConverters">
            <list>
                <ref bean="mappingJacksonHttpMessageConverter" />   <!-- JSON轉換器 -->
            </list>
        </property>
    </bean>

訪問路徑http://localhost:8080/user/userInfoJson/1

DEMO

http://blog.csdn.net/yirentianran/article/details/52706289

相關文章