今天看到网上的文章,说如何在项目中选择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 }
age:${user.age }<br>
<hr>
List:<br>
<c:forEach var="u" items="${list}">
name:${u.name }
age:${u.age }<br>
</c:forEach>
<hr>
Map:<br>
name:${map.name }
age:${map.age }<br>
<hr>
</body>
</html>
分享到:
相关推荐
本文将深入探讨Spring 3.0版本的Model-View-Controller(MVC)架构,并通过一个名为"SpringMvcDemo1"的实际项目实例来展示其核心概念和使用方法。 一、Spring MVC简介 Spring MVC是Spring框架的一部分,它遵循MVC...
运行好,调试好的spring3.0 mvc_rest_demo.war ****************************** * 运行说明 ****************************** 1. 直接部署dist/springmvc_rest_demo.war至tomcat并启动服务器 2. 访问...
Spring3.0 MVC Simple Demo是一个基础的示例项目,它展示了如何在Spring 3.0框架下使用Model-View-Controller(MVC)架构来构建应用程序。Spring MVC是Spring框架的一部分,专门用于处理Web应用程序的请求和响应。...
在Spring 3.0 MVC框架中,定时器和多线程任务是两个关键概念,用于构建高效、自动化的Web应用程序。下面将详细讲解这两个概念及其在实际应用中的使用。 一、Spring 3.0 MVC定时器 在Spring 3.0中,我们可以使用...
Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。
Spring MVC 的一个DEMO jiaolongzhi作品 采用 Spring 3.0 MVC 框架 JSTL+EL 语句输出界面 利用 注解 的形式定义 控制层 服务层 和持久层 采用MYSQL5.0数据库 自己建2张表 student 和teacher 字段 看实体类中...
这个文件可能是一个示例的书目目录portlet,它展示了如何在Spring MVC Portlet中创建一个简单的图书检索系统。可能包含以下几个部分: - `Book`模型类:表示图书实体,包括书名、作者等属性。 - `BookService`接口和...
在Spring 3.0中,Spring MVC添加了对RESTful服务的支持,通过以下关键组件实现: 1. **@RestController**:这是一个注解,用于标记控制器类,表明该类将处理HTTP请求并返回JSON或XML等资源。与传统的@Controller...
折腾了好几天,终于从零开始把spring mvc 3.0 + ibatis 3.0 (基于oracle)的Demo完全跑通了。Demo中有不少注释,使用的jar包基本是最精简的了。留着做个备用,也给大家一个参考!
**Spring3.0** 是一个全面的企业级应用开发框架,强调依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)。它允许开发者通过XML或注解来声明bean的依赖关系,使得代码更加松...
标题和描述中提到的"spring3.0+hibernate3.0+struts2"是一个经典的Java Web开发框架组合,通常简称为SSH框架。这个Demo涵盖了基础的CRUD(创建Create、读取Read、更新Update、删除Delete)操作,是学习和理解这三大...
Spring Security 是一个强大的且高度可定制的身份验证和访问控制框架,用于保护基于 Java 的应用程序。在3.0版本中,它提供了许多关键功能,旨在确保应用程序的安全性,防止未经授权的访问,并实现用户身份验证和...
这个"springmvc4.3 mybatis3.0整合的一个demo ssm"项目是一个很好的起点,它展示了如何将这三个框架协同工作来实现基本的数据操作功能,如增删改查(CRUD)。下面我们将详细探讨这三个核心组件以及它们在项目中的...
SpringMVC是Spring框架的一个模块,专为构建Web应用程序提供模型-视图-控制器(MVC)架构。在SpringMVC 3.0版本中,引入了许多增强功能和优化,使得开发更加高效且灵活。这个名为"SpringMVC3.0_Demo"的压缩包文件很...
该在线测试系统是一个使用Spring-MVC框架构建的简单示例,旨在模拟实际的在线考试环境,尤其是处理客观题型。Spring-MVC是Spring框架的一部分,它提供了模型-视图-控制器(MVC)的设计模式,使得开发人员能够更有效...
通过这个Spring自启动项目demo,我们可以学习到Spring如何管理和初始化Bean,以及如何使用Spring MVC来构建一个简单的Web应用。这只是一个基础的示例,实际项目中可能涉及到更复杂的配置和功能,如AOP(面向切面编程...
总的来说,"SpringSecurity3.0 Demo"项目是一个深入学习和实践SpringSecurity的好机会,通过对这个项目的研究,我们可以了解到SpringSecurity如何保障应用程序的安全,以及如何在实际开发中有效地利用它的功能。
这个示例展示了Spring 3.0如何与NoSQL数据库Couchbase结合,构建一个在线银行系统。Couchbase作为文档型数据库,提供了高可用性和高性能的数据存储解决方案。Spring Data Couchbase模块允许开发者通过简单的API操作...
Spring MVC Portlet是Spring Framework的一部分,它提供了一种优雅的方式来构建portlet应用程序,而IBM WebSphere Portal则是一个强大的企业级门户平台,用于集成各种Web内容和应用。 首先,让我们了解Portlet 3.0...
以下是一个简单的例子: ```java @Controller @EnableAsync public class AsyncController { @Autowired private AsyncService asyncService; @GetMapping("/async") public Callable<String> asyncRequest()...