第一讲
我们先来讲讲mvc吧,spring mvc ,struts2,struts 都是mvc框架。
对于现有较成熟的Model-View-Control(MVC)框架而言,其解决的主要问题无外乎下
面几部分:
1.将Web页面中的输入元素封装为一个(请求)数据对象。
2.根据请求的不同,调度相应的逻辑处理单元,并将(请求)数据对象作为参数传入。
3.逻辑处理单元完成运算后,返回一个结果数据对象。
4.将结果数据对象中的数据与预先设计的表现层相融合并展现给用户。
我们先来看看spring mvc 的操作过程。
配置web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4" id="WebApp_ID"> <display-name>web-board-backend</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/service.xml, /WEB-INF/action-servlet.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>/jsp/login.jsp</welcome-file> </welcome-file-list> <session-config> <session-timeout>1440</session-timeout> </session-config> </web-app>
action-servlet
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> <beans> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/"/> <property name="suffix" value=".jsp"/> </bean> <bean id="defaultHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <bean id="simpleUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="*">MessageController</prop> </props> </property> </bean> <bean id="MessageController" class="com.app.boardbackend.ui.html.MessageController"> <property name="methodNameResolver"> <bean class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver"> <property name="mappings"> <props> <prop key="list.do">list</prop> <prop key="delete.do">remove</prop> </property> </bean> </property> <property name="messageService"> <ref bean="messageService"/> </property> </bean> </beans>
上面颜色的必须统一
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:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <bean id="messageDAO" class="com.app.boardbackend.common.dao.MessageDAOImpl"></bean> <bean id="messageService" class="com.downjoy.app.boardbackend.common.service.MessageServiceImpl"> <property name="messageDAO" ref="messageDAO"/> </bean> </beans>
配置文件写好了
上面的三个文件可以放到WEB-INF的目录下。
写好配置文件后 我们就可以写java'代码了
package com.downjoy.app.boardbackend.ui.html; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.portlet.ModelAndView; import org.springframework.web.servlet.mvc.multiaction.MultiActionController; import com.downjoy.app.boardbackend.common.exception.WebBoardBackendException; import com.downjoy.app.boardbackend.common.service.MessageService; import com.downjoy.app.boardbackend.common.to.CollectionTO; import com.downjoy.app.boardbackend.common.to.MessageSearchCriteriaTO; import com.downjoy.app.boardbackend.common.to.MessageTO; import com.yupstudio.lib.webutil.WebStringUtil; /** * 留言板后台Controller层 * */ public class MessageController extends MultiActionController { private static final WebStringUtil webUtil=WebStringUtil.getInstance(); private MessageService messageService; public MessageService getMessageService() { return messageService; } public void setMessageService(MessageService messageService) { this.messageService=messageService; } /** * 列出留言信息 * @param request * @param response * @return ModelAndView * @throws WebBoardBackendException */ public ModelAndView list(HttpServletRequest request, HttpServletResponse response) throws WebBoardBackendException { Map<String, Object> model=new HashMap<String, Object>(); int pageNo=webUtil.getInt(request, "pageNum"); int pageSize=webUtil.getInt(request, "numPerPage"); String keyword=webUtil.getString(request, "keyword"); MessageSearchCriteriaTO criteria=new MessageSearchCriteriaTO(); criteria.setKeyword(keyword); criteria.setPageNo(pageNo); criteria.setPageSize(pageSize); CollectionTO<MessageTO> col=messageService.ListMessagesByCriteria(criteria); List<MessageTO> messages=null; int pageCount=0; if(col != null && col.size() != 0) { messages=col.getList(); pageCount=col.getPageCnt(); pageNo=pageNo > pageCount ? pageCount : pageNo; } model.put("messages", messages); model.put("pageNo", pageNo); model.put("pageSize", pageSize); return new ModelAndView("reply_list", "model", model); } }
在webRoot 下有一个reply_list.jsp最终数据返回给这个jsp。
这是一个小列子,接下来根据这个例子分析,spring mvc的执行过程。
相关推荐
spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 ...
struts1工作原理 struts2工作原理 struts1和struts2比较 spring mvc工作原理 struts和spring mvc比较
spring-webmvc-struts.jar对Struts和Spring整合时需要用到的包
spring-webmvc-struts.jar aspectjweaver.jar
spring-webmvc-struts-2.5.6-sources
含例子 转载自疯芒毕露的专栏 刚开始用spring mvc 做web开发时 经常会不知道如何合适绑定页面数据 用惯struts2的朋友更认为spring mvc 绑定数据不如struts2方便 本人最开始也是这么认为 经过一段时间的应用和测试 ...
Spring3_MVC与Struts2.x比较.pdfSpring3_MVC与Struts2.x比较.pdf
Spring3_MVC与Struts2.x比较.docxSpring3_MVC与Struts2.x比较.docx
spring.jar spring-webmvc-struts.jar spring-webmvc.jar 很难找.......欢迎下载!
Java Web层框架之比较—比较JSF、Spring MVC、Stripes、Struts 2、Tapestry和Wicket.doc
SpringMVC与struts2比较及技术特点
博文链接:https://smallfish.iteye.com/blog/153331
使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、...
在本文中,笔者将Struts2.0.6、Spring2.0.6和Hibernate3.1进行整合,希望通过这样的整合示例,让读者了解这些框架各自的特点,以便于在自己的项目中,根据实际情况,尽快的过渡到Struts2的时代。本文的内容基于...