`
longflang
  • 浏览: 64127 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

spring 3.0MVC 一个简单demo

阅读更多

 今天看到网上的文章,说如何在项目中选择MVC框架,看了一下Spring 3.0 MVC 的文档,感觉用注解的方式还是比较方便。跟Struts2比起来各有优点(注:以前用过struts1.x,现在用的是Strust2.x)。如果要选择的话看实际项目架构情况来选择。不说了,动手做一个spring 3.0MVC 的demo,包含页面和controller之间的参数传递(list,map,object,Sting) 及页面的展示。

 

1)创建web工程

2)引入相关jar包(注:commons-fileupload.jar,commons-logging.jar不在spring官方下载包中,需另外添加)

3)配置web.xml

	<servlet>
		<servlet-name>example</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>example</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

 

4)编写引用mvc的配置文件 example-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans   
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
           http://www.springframework.org/schema/context   
           http://www.springframework.org/schema/context/spring-context-3.0.xsd">
	<context:component-scan base-package="com.longflang.controller" />

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

</beans>

 注:example-servlet.xml的命名: example为web.xml定义的名称。系统启动时自己扫描以web定义名称-servlet.xml的配置文件

 

5)编写controller  DemoController .java

package com.longflang.controller;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import com.longflang.pojo.User;

@Controller
public class DemoController {
	@RequestMapping(value="getmv")
	public ModelAndView getInfo(){
		
		ModelAndView modelAndView = new ModelAndView();
		//传String
		modelAndView.addObject("title", "Return ModelAndView:");
		//传Object
		User u = new User("longflang","12");
		modelAndView.addObject("user", u);
		//传List
		List<User> userlist = new ArrayList<User>();
		userlist.add(new User("longflang1","123"));
		userlist.add(new User("longflang2","345"));
		userlist.add(new User("longflang3","45"));
		modelAndView.addObject("list", userlist);
		//传Map
		Map<String, String> usermap = new HashMap<String, String>();
		usermap.put("name", "longflang");
		usermap.put("age", "234");
		modelAndView.addObject("user", usermap);
		
		modelAndView.setViewName("result");
		return modelAndView;
	}
	@RequestMapping(value="string")
	public String getInfo(Model model){
		
		//传String
		model.addAttribute("title", "return String:");
		//传Object
		User u = new User("longflang","12");
		model.addAttribute("user", u);
		//传List
		List<User> userlist = new ArrayList<User>();
		userlist.add(new User("longflang1","123"));
		userlist.add(new User("longflang2","345"));
		userlist.add(new User("longflang3","45"));
		model.addAttribute("list", userlist);
		//传Map
		Map<String, String> usermap = new HashMap<String, String>();
		usermap.put("name", "longflang");
		usermap.put("age", "234");
		model.addAttribute("map", usermap);
		
		return "result";
	}
	@RequestMapping(value="strparam")
	public String getInfo(@RequestParam("name") String name ,@RequestParam("age") String age,Model model){
		
		//传String
		model.addAttribute("title", "return String: @RequestParam");
		//传Object
		User u = new User(name,age);
		model.addAttribute("user", u);
		//传List
		List<User> userlist = new ArrayList<User>();
		userlist.add(new User(name,age));
		userlist.add(new User(name,age));
		userlist.add(new User(name,age));
		model.addAttribute("list", userlist);
		//传Map
		Map<String, String> usermap = new HashMap<String, String>();
		usermap.put("name", name);
		usermap.put("age", age);
		model.addAttribute("map", usermap);
		
		return "result";
	}
	@RequestMapping(value="strparam/{name}")
	public String getInfo2(@PathVariable("name") String name ,@RequestParam("age") String age,Model model){
		
		//传String
		model.addAttribute("title", "return String: @PathVariable");
		//传Object
		User u = new User(name,age);
		model.addAttribute("user", u);
		//传List
		List<User> userlist = new ArrayList<User>();
		userlist.add(new User(name,age));
		userlist.add(new User(name,age));
		userlist.add(new User(name,age));
		model.addAttribute("list", userlist);
		//传Map
		Map<String, String> usermap = new HashMap<String, String>();
		usermap.put("name", name);
		usermap.put("age", age);
		model.addAttribute("map", usermap);
		
		return "result";
	}
	
}

 

6)定义POJO User.java

package com.longflang.pojo;

public class User {
	private String name;
	private String age;
	
	public User() {
		super();
		// TODO Auto-generated constructor stub
	}
	public User(String name, String age) {
		super();
		this.name = name;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
}

 

 

7)编写调用页面及结果页面 index.jsp

 

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  <body>
    <a href="http://localhost:8080/mvc/getmv">ModelAndView:http://localhost:8080/mvc/getmv</a> <br>
    <a href="http://localhost:8080/mvc/string">String:http://localhost:8080/mvc/string</a> <br>
    <a href="http://localhost:8080/mvc/strparam?name=longflang&age=234">String@RequestParam:http://localhost:8080/mvc/strparam?name=longflang&age=234</a> <br>
    <a href="http://localhost:8080/mvc/strparam/longflang?age=234">String@PathVariable:http://localhost:8080/mvc/strparam/longflang?age=234</a> <br>
  </body>
</html>

 

result.jsp(注:位置与配置文件定义相同\WEB-INF\jsp\result.jsp )

 

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  
  <body> 
    	<br>String:${title }<br>
    	Object:<br>
    	name:${user.name }&nbsp;&nbsp;
    	age:${user.age }<br>
    	<hr>
    	List:<br>
    	<c:forEach var="u" items="${list}">
    	name:${u.name } &nbsp;&nbsp;
    	age:${u.age }<br>
    	</c:forEach>
    	<hr>
    	Map:<br>
    	name:${map.name }&nbsp;&nbsp;
    	age:${map.age }<br>
    	<hr>
    	
  </body>
</html>

 

 

分享到:
评论
1 楼 a307487540 2011-08-09  
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:security="http://www.springframework.org/schema/security"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.0.xsd">

	<context:component-scan base-package="com.yystar.web" />
	<bean
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/" />
		<property name="suffix" value=".jsp" />
	</bean>
	
</beans>

相关推荐

Global site tag (gtag.js) - Google Analytics