spring mvc的學習

Spring MVC屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裏面。Spring 框架提供了構建 Web 應用程序的全功能 MVC 模塊。


參考的文章:

http://elf8848.iteye.com/blog/875830/


http://blog.csdn.net/chichengit/article/details/12098111


OPEN文檔




記錄一些基本的使用方法【版本要比較新】

package com.smvc.action;

import java.io.File;
import java.util.Date;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import com.smvc.modal.User;
import com.smvc.service.UserService;


@Controller
@RequestMapping("/test")
public class TestController {
	
	private UserService userService;
	
	@Autowired
	public void setUserService(UserService userService) {
		this.userService = userService;
	}
	
	
	/**
	 * @方法一[現代方式]
	 * @功能 http://localhost:8081/springMVC/test/test01?id=123
	 * 		請求方式:get	
	 * **/
	@RequestMapping(value="/test01",method=RequestMethod.GET)
	public String testSpringmvcOne(@RequestParam("id") String id,Model model){
		User user = userService.getUser(id);
		model.addAttribute(user);
		return "test";
	}
	
	
	/**
	 * @方法二[現代方式]
	 * @功能 http://localhost:8081/springMVC/test/test02/123
	 * 		請求方式:get	
	 * **/
	@RequestMapping(value="/test02/{id}",method=RequestMethod.GET)
	public String testSpringmvcTwo(@PathVariable("id") String id,Map<String,Object> model){
		User user = userService.getUser(id);
		model.put("user", user);
		return "test";
	}
	
	
	/**
	 * @方法三[傳統方式]
	 * @功能 http://localhost:8081/springMVC/test/test03?id=123
	 * 		請求方式:get	
	 * **/
	@RequestMapping(value="/test03",method=RequestMethod.GET)
	public String testSpringmvcThree(HttpServletRequest request){
		String id = String.valueOf(request.getParameter("id"));
		User user = userService.getUser(id);
		request.setAttribute("user", user);
		return "test";
	}
	
	
	/**
	 * @方法四[現代方式]
	 * @功能 http://localhost:8081/springMVC/test/admin?add
	 * 		請求方式:get	
	 * **/
	//跳轉頁面
	@RequestMapping(value="/admin",method=RequestMethod.GET,params="add")
	public String testSpringmvcBindingOne(){
		return "admin/index";
	}
	
	//保持成功之後,重定向
	@RequestMapping(value="/save",method=RequestMethod.POST,params="add")
	public String testSpringmvcBindingTwo(User user){
		userService.add(user);
		//跳轉到方法二
		return "redirect:test02/"+user.getId();
	}
	
	
	/**
	 * @方法五 文件上傳
	 * @功能 http://localhost:8081/springMVC/test/fileUp
	 * 		請求方式:get	
	 * **/
	@RequestMapping(value="/fileUp",method=RequestMethod.POST)
	public String testSpringmvcOne(@RequestParam("file") MultipathFile file){
		if(!file.isEmpty()){
			System.out.println(file.getOriginalFilename());   
		}		
		return "success";
	}
	
	
	/**
	 * @方法六 json
	 * @功能 http://localhost:8081/springMVC/test/jsonView?id=123
	 * 		請求方式:get	
	 * **/
	@RequestMapping(value="/jsonView",method=RequestMethod.GET)
	public @ResponseBody User testSpringmvcJson(@RequestParam("id") String id){		
		return userService.getUser(id);//返回json
	}


}

springMVC-servlet.xml 配置

<!-- 啓動Springmvc註解驅動 -->
    <mvc:annotation-driven/>
 <!-- 返回json 方法一 需要導入 fastjson.jar包 -->  
    <mvc:annotation-driven>
        <mvc:message-converters register-defaults="false">
            <!-- 避免IE執行AJAX時,返回JSON出現下載文件 -->
            <bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <!-- 這裏順序不能反,一定先寫text/html,不然ie下出現下載提示 -->
                        <value>text/html;charset=UTF-8</value>
                        <value>application/json;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>
     
   
  <!-- 返回json 方法二 需要導入 jackson-annotations.jar,jackson-core.jar,jackson-databind.jar-->  
   <!--  <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="messageConverters">
            <list>
                <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <value>text/html; charset=UTF-8</value>
                            <value>application/json;charset=UTF-8</value>
                        </list>
                    </property>
                </bean>
                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <value>text/html; charset=UTF-8</value>
                            <value>application/json;charset=UTF-8</value>
                        </list>
                    </property>
                </bean>
            </list>
        </property>
    </bean> -->
 
 
<!-- 其下與返回json 無關  -->
 
    <!-- 自動將控制器加載到bean -->
    <context:component-scan base-package="org.controller"></context:component-scan>    
    <!-- 配置處理靜態資源的請求 -->
    <mvc:resources location="/resources/" mapping="*/res/**"/>
     
    <!-- 攔截器配置 -->
    <mvc:interceptors>
        <bean class="org.aop.LoginInteceptor" />
    </mvc:interceptors>
     
    <!-- 配置視圖解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">    
        <property name="prefix" value="/WEB-INF/jsp/"/>    
        <property name="suffix" value=".jsp"/><!--可爲空,方便實現自已的依據擴展名來選擇視圖解釋類的邏輯  -->    
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />    
    </bean>   
     
     <!-- 上傳 需要使用到的配置-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="1046666000"/>
    </bean>
     
     <!--配置全局的異常-->
    <!-- <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <property name="exceptionMappings">
            <props>
                <prop key="com.guanlan.util.SportException">error</prop>
            </props>
        </property>
    </bean> -->


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章