1.返回字符串 Controller方法返回字符串可以指定逻辑视图的名称,根据视图解析器为物理视图的地址。
@RequestMapping(value="/hello") public String sayHello() { System.out.println("Hello SpringMVC!!"); // 跳转到XX页面 return "success"; }2. 返回值是void 如果控制器的方法返回值编写成void,执行程序报404的异常,默认查找JSP页面没有找到, 默认会跳转到@RequestMapping(value="/initUpdate") initUpdate的页面。 可以使用请求转发或者重定向跳转到指定的页面(需要使用绝对地址)
3. 返回值是ModelAndView对象 ModelAndView对象是Spring提供的一个对象,可以用来调整具体的JSP视图 可以通过addObject()方法将目标保存到Request域中
该注解用于将 Controller 的方法返回的对象,通过 HttpMessageConverter 接口转换为指定格式的 数据如:json,xml 等,通过 Response 响应给客户端
DispatcherServlet会拦截到所有的资源,导致一个问题就是静态资源(img、css、js)也会被拦截到,从而 不能被使用。解决问题就是需要配置静态资源不进行拦截,在springmvc.xml配置文件添加如下配置
mvc:resources标签配置不过滤location元素表示webapp目录下的包下的所有文件mapping元素表示以/static开头的所有请求路径,如/static/a 或者/static/a/b <!-- 设置静态资源不过滤 --> <mvc:resources location="/css/" mapping="/css/**"/> <!-- 样式 --> <mvc:resources location="/images/" mapping="/images/**"/> <!-- 图片 --> <mvc:resources location="/js/" mapping="/js/**"/> <!-- javascript -->使用@RequestBody获取请求体数据
模拟ajax异步请求响应把json的字符串转换成JavaBean的对象.json字符串和JavaBean对象互相转换的过程中,需要使用jackson的jar包 <script> //页面加载,绑定单击事件 $(function () { $("#btn").click(function () { // alert("hello btn") //发送ajax请求 $.ajax({ url:"user/testAjax", contentType:"application/json;charset=UTf-8", data:'{"username":"悦悦","password":"123","age":18}', dataType:"json", type:"psot", success:function (data) { //data服务器端响应的json数据,进行解析 alert(data) alert(data.username) alert(data.password()) alert(data.age) } }) }) }) </script>文件上传的必要前提
form 表单的 enctype 取值必须是:multipart/form-datamethod 属性取值必须是 Post提供一个文件选择域使用 Commons-fileupload 组件实现文件上传,需要导入该组件相应的支撑 jar 包配置文件解析器对象 <!--配置文件解析器对象,id固定,最大值为10M(10*1024*1024)--> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="10485760"></property> </bean>控制器代码
/** * springmvc文件上传 * * @param request * @return * @throws Exception */ @RequestMapping("/fileUpload2") public String fileUpload2(HttpServletRequest request, MultipartFile upload) throws Exception {//upload名字必须跟表单一致 System.out.println("springmvc文件上传。。。"); //使用fileupload组件完成文件上传 //上传的位置 String path = request.getSession().getServletContext().getRealPath("/uploads/"); //判断该路径是否存在 File file = new File(path); if (!file.exists()) { //创建该文件 file.mkdirs(); } //说明上传文件项 //获取上传文件的名称 String filename = upload.getOriginalFilename(); //把文件的名字设置为唯一值,uuid String uuid = UUID.randomUUID().toString().replace("-", ""); filename = uuid + "_" + filename; //完成文件上传 upload.transferTo(new File(path,filename)); return "success"; }