springmvc基础知识:配置;ajax;重定向;文件上传

 

1,springmvc中的基础配置

<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>

 

2,springmvc:ajax调用springmvc的方法

/**
     * 使用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的重定向小例

/**
     * 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,复杂类型表单解析器的配置

<!-- 
            复杂类型表单的解析器
            id:必须使用multipartResolver,不能随便设置
         -->
        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <!-- 以字节为单位 -->
            <property name="maxUploadSize" value="1024000"></property>
        </bean>

4.2,controller类

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";
    }


}

4.3 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>

 

posted @ 2019-07-11 15:56  永远没对象  阅读(268)  评论(0编辑  收藏  举报