第二十四天 框架之痛-Spring MVC(四)

6月3日,晴。“绿树浓阴夏日长。 楼台倒影入池塘。 水晶帘动微风起, 满架蔷薇一院香”。

以用户注冊过程为例。我们可能会选择继承AbstractController来实现表单的显示。

1、导入spring-framework-2.5.6的jar包,详见第八天
框架之痛-Spring MVC(一)

2、编写web.xml 的配置文件。主要增加spring Web MVC框架提供的

org.springframework.web.filter.CharacterEncodingFilter用于解决POST方式造成的中文乱码问题。

<?

xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>utf-8</param-value>
    </init-param>
  </filter>
	<filter-mapping>
	    <filter-name>CharacterEncodingFilter</filter-name>
	    <url-pattern>/*</url-pattern>
	</filter-mapping>

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

3、myOneMVC-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:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">

	<bean name="/reg" class="edu.eurasia.controller.RegControl"></bean>

    <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、后端控制器RegControl.java

package edu.eurasia.controller;

import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;

public class RegControl extends SimpleFormController {

	public RegControl() {
		setCommandClass(User.class);
	}

	@Override
	protected ModelAndView onSubmit(Object object, BindException errors)
			throws Exception {
		User user=(User)object;
		ModelAndView mav = new ModelAndView("hello");
		mav.addObject("user", user);
		return mav;

	}
}

RegControl.java继承SimpleFormController类,构造器中调用setCommandClass方法绑定定命令对象(这里为User类),转换object为User类进行业务逻辑操作。onSubmit()方法能够返回一个ModelAndView对象,完毕向页面输出数据的功能。

5、表单相应的POJO-User.java

package edu.eurasia.controller;

public class User {
	private String username;
	private int age;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}

6、表单填写页面index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="reg" method="post">
		用户名:<input type="text" name="username"><br/>
		年龄:<input type="text" name="age"><br/>
		<input type="submit">
	</form>
</body>
</html>

7、返回一个对应的给client页面hello.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	Brazil世界杯,你好!<br/>
          用户名:${user.username }<br/>
         年龄:${user.age }
</body>
</html>

8、执行Tomcat 7 。输入http://localhost:8080/springMVC_controllerweb_1/index.jsp

项目结构图

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvendzendz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >

时间: 2024-10-01 20:58:12

第二十四天 框架之痛-Spring MVC(四)的相关文章

Spring与Web框架(例如Spring MVC)漫谈——关于Spring对于多个Web框架的支持

在看Spring MVC的官方文档时,最后一章是关于Spring对于其它Web框架的支持(如JSF,Apache Struts 2.x,Tapestry 5.x),当然Spring自己的MVC框架Spring MVC就不用多说了. 这里并不想讨论其它的Web框架,而是记录下这章开头提到的关于Spring为何还要支持其它Web框架. Spring Framwork的一个核心价值观是:允许开发者自由选择. 一般而言,Spring并不会强迫你使用或者购买某些特别的架构.技术或者方案,尽管它们肯定会特别

第二十五部分_Struts2.1与Spring整合

依赖注入之后.对象销毁之前自动调用方法: 通过类似于之前Spring项目编码的方式,我们可以通过在setXXX()方法中输出相关的语句来获悉依赖关系注入的执行时机,通过下面介绍的方法可以在依赖关系注入完成之后自动执行一些方法. 如果我们想让一个类的实例在所有属性都已经设置好之后,就让它自动执行某些方法,有两种方式: 实现InitializingBean接口,并且实现里面的唯一方法afterPropertiesSet(),这个方法就会在所有的属性注入完之后自动的得到调用. 在该类中定义一个任意名称

深入理解java:4.1. 框架编程之Spring MVC

Spring MVC是当前最优秀的MVC框架,自从Spring 2.5版本发布后,由于支持注解配置,易用性有了大幅度的提高. Spring 3.0更加完善,实现了对Struts 2的超越.现在越来越多的开发团队选择了Spring MVC. Struts2也是非常优秀的MVC构架,优点非常多比如良好的结构,拦截器的思想,丰富的功能. 但这里想说的是缺点,Struts2由于采用了值栈.OGNL表达式.struts2标签库等,会导致应用的性能下降,应避免使用这些功能. Spring3 MVC的优点:

WEB开发技术框架利器之一 -- Spring MVC

A.介绍: Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的. Spring Web MVC也是服务到工作者模式的实现,但进行可优化.前端控制器是DispatcherServlet:应用控制器其实拆为处理器映射器(Handler Mapping)进行处理

Spring 4 官方文档学习(十一)Web MVC 框架之配置Spring MVC

在前面的文档中讲解了Spring MVC的特殊beans,以及DispatcherServlet使用的默认实现.在本部分,你会学习两种额外的方式来配置Spring MVC.分别是:MVC Java config 和  MVC XML namespace. 原文: Section 22.2.1, "Special Bean Types In the WebApplicationContext" and Section 22.2.2, "Default DispatcherSer

玩转spring mvc(四)---在spring MVC中整合JPA

关于在Spring MVC中整合JPA是在我的上一篇关于spring mvc基本配置基础上进行的,所以大家先参考一下我的上一篇文章:http://blog.csdn.net/u012116457/article/details/43528111 接下来是需要新添加的一些文件: jdbc.properties: jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc\:mysql\://localhost\:3306/tmos?useUni

第二十五课、布局管理器(四)

一.栈式布局管理器 1.栈式布局管理器(QStatckedLayout)概要 (1).所有组件垂直于屏幕的方向上被管理 (2).每次只有一个组件会显示在屏幕上 (3).只有最顶层的组件会被最终显示 2.栈式布局管理器的特点 (1).组件大小一致且充满父组件的显示区 (2).不能直接嵌套其它布局管理器(可以依赖中间组件间接嵌套) (3).能够自由切换需要显示的组件 (4).每次能且仅能显示一个组件 3.QStatckedLayout的用法概要 二.计时器 1.计时器的概念 (1).计时器是工程开发

Spring MVC入门第1天--框架说明与快速入门

文档版本 开发工具 测试平台 工程名字 日期 作者 备注 V1.0 2016.06.29 lutianfei none springmvc框架 springmvc业务流程框架 springmvc框架组件说明 Spring MVC入门程序 配置前端控制器 配置处理器适配器 开发Handler 视图编写 配置Handler 配置处理器映射器 配置视图解析器 部署调试 非注解的处理器映射器 和 适配器 非注解的处理器映射器 非注解的处理器适配器 springmvc的默认加载 注解的处理器映射器和适配器

J2EE框架(Struts&amp;Hibernate&amp;Spring)的理解

SSH:Struts(表示层)+Spring(业务层)+Hibernate(持久层)Struts:Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求.在MVC框架中,Struts属于VC层次,负责界面表现,负责MVC关系的分发.(View:沿用JSP,HTTP,Form,Tag,Resourse :Controller:ActionServlet,struts-config.xml,Action)Hibernate:Hibernate是一个持久层框架,它只负责与关系数据库的操作