`
朝风一旭
  • 浏览: 2626 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

spring mvc 和struts2,struts的比较

阅读更多

                           第一讲
     我们先来讲讲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的执行过程。

分享到:
评论
2 楼 朝风一旭 2012-09-06  
嗯 会讲的
1 楼 daichao1225 2012-09-06  
来点分页的讲解 啊

相关推荐

Global site tag (gtag.js) - Google Analytics