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>