springmvc基礎知識:配置;ajax;重定向;文件上傳

 

1,springmvc中的基礎配置java

<bean name="/toIndex.do" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
<!-- 配置你想要跳轉的視圖 -->
<property name="viewName" value="index"></property>
</bean>

<bean name="/toIndex1.do" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
<!-- 配置你想要跳轉的視圖 -->
<property name="viewName" value="jsp1/index"></property>
</bean>

<bean name="/comm.do" class="com.sxx.controller.xxxx">
<!-- 用來指定接收的參數類型 -->
<property name="commandClass" value="com.sxx.model.xxx"></property>
</bean>

<bean name="/form.do" class="com.sxx.controller.xxxx">
<!-- 用來指定接收的參數類型 -->
<property name="formView" value="com.sxx.model.xxx"></property>
<property name="successView" value="com.sxx.model.xxx"></property>
</bean>web

 

2,springmvc:ajax調用springmvc的方法ajax

/**
     * 使用ajax的返回值是void,不能使用string。
     * 在參數列表中定義HttpServletResponse,爲了得到PrintWriter。
     * @param name
     * @param resp
     */
    @RequestMapping("/ajax.do")
    public void ajax(String name,HttpServletResponse resp){
        String result = "hello" + name;
        try {
            resp.getWriter().write(result);
        } catch (IOException e) {
            e.printStackTrace();
        }
        
    }
    
    /**
     * 若是有中文問題,就沒法處理
     * @param name。在參數列表中定義PrintWriter。
     * @param out
     */
    @RequestMapping("/ajax1.do")
    public void ajax1(String name,PrintWriter out){
        String result = "hello" + name;
        out.write(result);
    }

 3.springmvc的重定向小例spring

/**
     * controller類內部的重定向return時不須要加類上的@RequestMapping的值,
     * 只要加上方法上@RequestMapping的值就能夠了。例如轉發到form.jsp
     * 語法:redirect:toForm.do
     * (toForm.do當前controller中要重定向到的方法的@RequestMapping的值)
     * @return
     */
    @RequestMapping("/redirectForm.do")
    public String redirectForm(){
        
        return "redirect:toForm.do";
    }
    
    /**
     * controller類中間的額重定向。
     * 語法:redirect:後面加/:表明從項目的根目錄開始匹配。
     * 再加上要重定向到的類上的@RequestMapping值,再加上方法上的@RequestMapping值。
     * @return
     */
    @RequestMapping("/redirectForm1.do")
    public String redirectForm1(){
        
        return "redirect:/test1/toForm.do";
    }

 4,文件上傳數組

4.1,複雜類型表單解析器的配置mvc

<!-- 
            複雜類型表單的解析器
            id:必須使用multipartResolver,不能隨便設置
         -->
        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <!-- 以字節爲單位 -->
            <property name="maxUploadSize" value="1024000"></property>
        </bean>

4.2,controller類app

package com.sxx.controller;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
@Controller
@RequestMapping("/upload")
public class UploadController {

    @RequestMapping("/uploadPic.do")
    public String uploadPic(HttpServletRequest req) throws IOException{
        //轉換request
        MultipartHttpServletRequest mr = (MultipartHttpServletRequest) req;
        //接受文件
        MultipartFile mf = mr.getFile("pic");
        //得到文件的字節數組
        byte[] bs = mf.getBytes();
        //給文件命名
        String fileName = new SimpleDateFormat("yyyyMMddHHmmssSSS")
                            .format(new Date());
        Random random = new Random();
        for(int i = 0; i < 3; i++){
            fileName = fileName + random.nextInt(10);
        }
        //得到文件的後綴名
        String oriFileName = mf.getOriginalFilename();
        //得到到包括.的後綴名
        String suffix = oriFileName.substring(oriFileName.lastIndexOf("."));
        //得到項目部署的絕對路徑
        String realPath = req.getSession().getServletContext().getRealPath("/");
        OutputStream out = new FileOutputStream(realPath+"/upload/"+fileName+suffix);
        out.write(bs);
        out.flush();
        return "sucess";
    }

    @RequestMapping("/toForm.do")
    public String toForm(){
    return "form1";
    }dom


}

4.3 jsp頁面jsp

 <body>
    <form action="upload/uploadPic.do" method="post" enctype="multipart/form-data">
        <input name="pic" type="file">
        
        <input type="submit" value="submit">
    </form> <br>
相關文章
相關標籤/搜索