天天看點

基于注解的Spring MVC(所需jar包,web.xml配置,Spring檔案配置,@Controller,@RequestMapping,@RequestParam,model填參,EL取值)

1、添加jar

基于注解的Spring MVC(所需jar包,web.xml配置,Spring檔案配置,@Controller,@RequestMapping,@RequestParam,model填參,EL取值)

2、web.xml配置:

<?xml version="1.0" encoding="utf-8"?>

<web-app version="2.5"

 <servlet>

  <servlet-name>action</servlet-name>

  <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class>

  <init-param>

   <param-name>contextconfiglocation</param-name>

   <param-value>classpath:springmvc.xml</param-value>

  </init-param>

 </servlet>

 <servlet-mapping>

  <url-pattern>/</url-pattern>

 </servlet-mapping>

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

</web-app>

3、springmvc.xml配置

">

 <!-- 注解驅動 -->

 <mvc:annotation-driven/>

 <!-- 元件掃描 -->

 <context:component-scan base-package="cn.itcast.springmvc.controller"></context:component-scan>

 <!-- 配置内部資源視圖解析器 -->

 <bean class="org.springframework.web.servlet.view.internalresourceviewresolver">

  <property name="prefix" value="/web-inf/jsp/"></property>

  <property name="suffix" value=".jsp"></property>

 </bean>

</beans>

4、實體bean

package cn.itcast.springmvc.domain;

public class user {

 private string name;

 private string address;

 private integer age;

 private string tel;

 public string getname() {

  return name;

 }

 public void setname(string name) {

  system.out.println("正在通過setname方法注入name的值:" + name);

  this.name = name;

 public string getaddress() {

  return address;

 public void setaddress(string address) {

  this.address = address;

 public integer getage() {

  return age;

 public void setage(integer age) {

  this.age = age;

 public string gettel() {

  return tel;

 public void settel(string tel) {

  this.tel = tel;

 @override

 public string tostring() {

  return "{name:" + name + ",address:" + address + ",age:" + age

    + ",tel:" + tel + "}";

}

5、編寫homecontroller,代碼如下:

package cn.itcast.springmvc.controller;

import java.util.map;

import javax.servlet.http.httpservletrequest;

import org.springframework.stereotype.controller;

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

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

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

import cn.itcast.springmvc.domain.user;

/**

 * @brief iaccountdao.java 學習spring注解方式

 * @attention

 * @author 塗作權

 * @date 2014-5-18

 * @note begin modify null

 */

@controller  //添加注解

@requestmapping(value = "/home") // 根路徑,有些類似strut2的命名空間

public class homecontroller {

 /**

  * 子路徑,表示隻支援get送出

  * @param req 可以通過傳遞httpservletrequest的方式獲得參數

  * @param name 表示連接配接的地方有:xxx?name=

  * @param u 如果url的?後面參數過多,要想獲得參數,可以直接将這個參數寫成user

  * @param model :定義一個map對象,可以通過這種方式将之傳遞給jsp頁面

  *

  *         ?name=toto&address=haidian&age=24&tel=136xxx

  * 獲得的參數為:正在執行hello方法 name:toto user: {name:toto,address:haidian,age:24,tel:136xxx}

  * @return

  */

 @requestmapping(value="/hello",method=requestmethod.get)

 public string hello(httpservletrequest req,

   @requestparam(value = "name")

   string name, user u, map<string, object> model) {

  //string name = req.getparameter("name");

  system.out.println("正在執行hello方法 name:" + name);

  system.out.println("user: " + u);

  //req.setattribute("msg", "hello " + name);

  model.put("msg", "hello " + name);

  return "hello";//邏輯名

  * \brief 定義方法hi

  * @attention url的地方通過/home/hi的方式通路要想通路的位址

  * @author 塗作權

     * @date 2014-5-18

  * @note begin modify by null

 @requestmapping(value="/hi") //子路徑

 public string hi(){

  system.out.println("正在執行hi方法");

  return "hi";  //邏輯名

6、編寫的hello.jsp

<%@ page language="java" import="java.util.*" pageencoding="utf-8"%>

<html>

  <head>

    <title> 'hello.jsp'</title>

  </head>

  <body>

    ${requestscope.msg}

  </body>

</html>