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

SpringMVC----应用

 
阅读更多

 

请求---->web.xml中的Spring MVC拦截器---->Spring MVC框架配置文件spring-mvc.xml---->具体的控制类

一、web.xml中注册Spring MVC框架的拦截器

<!--Servlet定义
  这里我们定义了请求分发Servlet,即:org.springframework.web.servlet.DispatcherServlet
  DispatcherServlet 是Spring MVC 中负责请求调度的核心引擎,所有的请求将由此Servlet 根据配置分发至各个逻辑处理单元。其内部同时也维护了一个ApplicationContext实例。-->

 <servlet>
  <servlet-name>spring-mvc</servlet-name>
  <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class>
  <init-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>classpath:spring-mvc.xml</param-value>
  </init-param>
 </servlet>
 <!--配置一个请求后缀,凡是以html结尾的路径,都会被springmvc拦截-->
 <servlet-mapping>
  <servlet-name>spring-mvc</servlet-name>
  <url-pattern>*.do</url-pattern>
 </servlet-mapping>

 

二、创建classpath:spring-mvc.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/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd  
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd  
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">   
     
      <context:annotation-config />  


       <!-- 把标记了@Controller注解的类转换为bean -->    
      <context:component-scan base-package="com.outsource.weixin.stuwx.controller" />   Spring MVC框架只应用于项目的某个模块 


      <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->    
      <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />    
       
       <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->    
       <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"    
          p:prefix="/weixin/stuwx/jsp/"  />    
          
       <bean id="multipartResolver"    
          class="org.springframework.web.multipart.commons.CommonsMultipartResolver"    
          p:defaultEncoding="utf-8" />    
 </beans> 

 

三、创建Spring MVC的controller(类似Struts2的Action

package com.outsource.weixin.stuwx.controller;

@Controller                                                                   ----注解形式标注该类属于Spring MVC 的Controller层类似Struts2的Action
@RequestMapping(" /upwk.do")                                    ----请求该类的路径
public class UpLoadWeeklyContriller {
 @Autowired 
 @Qualifier("weeklyNotesService") //注释指定注入
 private WeeklyNotesService weeklyNotesService;
 @Autowired 
 @Qualifier("paramConfService") //注释指定注入
 private ParamConfService paramConfService ;
 @Autowired 
 @Qualifier("sysUserService") //注释指定注入
 private SysUserService sysUserService ;
 
 /** 任务管理层 */
 @Autowired 
 @Qualifier("topicManageService") //注释指定注入
 private TopicManageService topicManageService ;
 
 private WeeklyNotes weeklyNotes;
 private SysUser sysUser ;
 
 @SuppressWarnings("unchecked")
 @RequestMapping(params="createWeeklyNotes")    ----请求该方法的路径
 public ModelAndView  createWeeklyNotes(HttpServletRequest request,HttpServletResponse response){
  String redirectUrl=null;
  String url = null ;
  
  try {
   response.setContentType("application/json;charset=utf-8");----设置响应类型
   response.setCharacterEncoding("UTF-8");                          ----设置响应编码
   request.setCharacterEncoding("UTF-8");                             ----设置请求编码
   
   String info = null ;
   String openId = null;
   ModelAndView ma=new ModelAndView();
   
   // 周记内容
   String summaryWeek = request.getParameter("summaryWeek");
   openId = request.getParameter("openId");
   String weeklyCount = request.getParameter("weeklyCount");
   if(summaryWeek.equals("")){
    redirectUrl="redirect:/upwk.do?sendWeeklyNotes&openId="+openId+"&weeklyCount="+weeklyCount;
   }else{
    weeklyNotes = new WeeklyNotes();
    weeklyNotes.setSummaryWeek(summaryWeek);
    
    Map queryMap = new HashMap();
    queryMap.put("start", 0);
    queryMap.put("end", 100);
    /** 根据openId获得用户id sysUserId */
    sysUser = new SysUser();
    
    if(openId!=null ){
     sysUser.setOpenId(openId);
     sysUser = sysUserService.getUserIdByOpenId(sysUser);
    }
    if(sysUser.getSysUserId()!=null||!"".equals(sysUser.getSysUserId())){
     queryMap.put("userId", sysUser.getSysUserId());
    }
    
    weeklyNotes.setWeekUserId(sysUser.getSysUserId());// 用户id
    
    List<ParamConf> pc = paramConfService.getPlanNameList(queryMap);
    if(pc.size()>0){
     weeklyNotes.setPlanId(pc.get(0).getPlanId());
     weeklyNotes.setPlanStartDate(pc.get(0).getStartDate());
    }
    weeklyNotes.setWeekCount(Long.parseLong(weeklyCount));
    weeklyNotes.setWeekUserId(sysUser.getSysUserId());
    weeklyNotesService.insertWeeklyNotes(weeklyNotes);
    // 根据学生id获得指导老师id
    Map map = new HashMap();
    map.put("studentId", sysUser.getSysUserId());
    List guidelist = topicManageService.getGuideInfoByStudent(map);
    Long guidesId = null ;
    for(int i = 0; guidelist!= null && i < guidelist.size(); i++){
     Map tempMap = (HashMap)guidelist.get(i);
     guidesId = Long.parseLong(tempMap.get("IGUIDE_THR_ID").toString())  ;
    }
    if(guidesId!=null){
     // 创建任务
     topicManageService.createTaskByUser("/vsm/zul/weeklyNotes/teacherAuditWeeklyNotesWindow.zul", sysUser.getSysUserId() , guidesId, weeklyNotes.getWeeklyNotesId());
    }
    redirectUrl="redirect: /upwk.do?getPageWeeklyNotes&openId="+openId;----请求本类upwk.dogetPageWeeklyNotes方法并传递参数openId
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
  
  return new ModelAndView(redirectUrl) ;  ---通过模型视图传递数据
 }

 

  /**
  * 周记查看列表
  */
 @SuppressWarnings("unchecked")
 @RequestMapping(params="getPageWeeklyNotes")  ----请求该方法的路径
 public String getPageWeeklyNotes(HttpServletRequest request,HttpServletResponse response){
  List<WeeklyNotes> list = null ;
  String redirectUrl=null;
  try {
   response.setContentType("application/json;charset=utf-8");
   response.setCharacterEncoding("UTF-8");
   request.setCharacterEncoding("UTF-8");
   
   String openId=request.getParameter("openId");
   Map queryMap = new HashMap();
   queryMap.put("start", "0");
   queryMap.put("end", "100");
   /** 根据openId获得用户id sysUserId */
   sysUser = new SysUser();
   if(openId!=null ){
    sysUser.setOpenId(openId);
    sysUser = sysUserService.getUserIdByOpenId(sysUser);
   }
   if(sysUser!=null){
    if(sysUser.getSysUserId()!=null||!"".equals(sysUser.getSysUserId())){
     queryMap.put("userId", sysUser.getSysUserId());
    }
   }
   
   list = weeklyNotesService.getWeeklyNotesPage(queryMap);
   System.out.println(list.size());
   request.setAttribute("list",list);
   
   redirectUrl= "viewWeekly.jsp?openId="+openId; ----请求viewWeekly.jsp页面并传递参数openId
  } catch (Exception e) {
   e.printStackTrace();
  }
  return redirectUrl; ---通过request传递数据
 }

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics