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