springmvc圖片上傳及json數(shù)據(jù)轉(zhuǎn)換過(guò)程詳解
springmvc的圖片上傳
1.導(dǎo)入相應(yīng)的pom依賴(lài)
<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.3</version> </dependency>
2.添加springmvc-servlet.xml里面的配置
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 必須和用戶(hù)JSP 的pageEncoding屬性一致,以便正確解析表單的內(nèi)容 -->
<property name="defaultEncoding" value="UTF-8"></property>
<!-- 文件最大大小(字節(jié)) 1024*1024*50=50M-->
<property name="maxUploadSize" value="52428800"></property>
<!--resolveLazily屬性啟用是為了推遲文件解析,以便捕獲文件大小異常-->
<property name="resolveLazily" value="true"/>
</bean>
3.前臺(tái)文件上傳表單
<%--
Created by IntelliJ IDEA.
User: ASUS
Date: 2019/10/5
Time: 10:25
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>文件上傳</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/upload" method="post" enctype="multipart/form-data">
上傳的文件:<input type="file" name="img" id="">
<button type="submit">提交</button>
</form>
</body>
</html>
HelloController
/**
* 文件上傳
* @param img
* @return
*/
@RequestMapping("/upload")
public String upload(MultipartFile img){
try {
FileUtils.copyInputStreamToFile(img.getInputStream(),new File("F:/xxx/"+img.getOriginalFilename()));
} catch (IOException e) {
e.printStackTrace();
}
return "forward:hello3";
}
json數(shù)據(jù)轉(zhuǎn)換
注解格式轉(zhuǎn)換@ResponseBody
工具類(lèi)JSONResult
package com.liuwenwu.util;
public class JSONResult {
// 響應(yīng)業(yè)務(wù)狀態(tài)
private Integer status;
// 響應(yīng)消息
private String msg;
// 響應(yīng)中的數(shù)據(jù)
private Object data;
private String ok; // 不使用
public static JSONResult build(Integer status, String msg, Object data) {
return new JSONResult(status, msg, data);
}
public static JSONResult ok(Object data) {
return new JSONResult(data);
}
public static JSONResult ok() {
return new JSONResult(null);
}
public static JSONResult errorMsg(String msg) {
return new JSONResult(500, msg, null);
}
public static JSONResult errorMap(Object data) {
return new JSONResult(501, "error", data);
}
public static JSONResult errorTokenMsg(String msg) {
return new JSONResult(502, msg, null);
}
public static JSONResult errorException(String msg) {
return new JSONResult(555, msg, null);
}
public JSONResult() {
}
public JSONResult(Integer status, String msg, Object data) {
this.status = status;
this.msg = msg;
this.data = data;
}
public JSONResult(Object data) {
this.status = 200;
this.msg = "OK";
this.data = data;
}
public Boolean isOK() {
return this.status == 200;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public String getOk() {
return ok;
}
public void setOk(String ok) {
this.ok = ok;
}
}
HelloController
@ResponseBody
@RequestMapping("/jsonData3")
public JSONResult jsonData3(){
return JSONResult.ok("成功:這里可以存放字符串、對(duì)象、數(shù)組、集合都行,這樣可以節(jié)省拼接map結(jié)合的過(guò)程");
}
@ResponseBody
@RequestMapping("/jsonData4")
public JSONResult jsonData4(){
return JSONResult.errorMsg("失敗:這里可以存放字符串、對(duì)象、數(shù)組、集合都行,這樣可以節(jié)省拼接map結(jié)合的過(guò)程");
}
效果:


以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java將數(shù)據(jù)寫(xiě)入內(nèi)存,磁盤(pán)的方法
下面小編就為大家分享一篇java將數(shù)據(jù)寫(xiě)入內(nèi)存,磁盤(pán)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
Android中Parcelable的作用實(shí)例解析
這篇文章主要介紹了Android中Parcelable的作用,對(duì)于Android初學(xué)者有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2014-08-08
劍指Offer之Java算法習(xí)題精講鏈表專(zhuān)題篇
跟著思路走,之后從簡(jiǎn)單題入手,反復(fù)去看,做過(guò)之后可能會(huì)忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會(huì)發(fā)現(xiàn)質(zhì)的變化2022-03-03
Spring?Clou整合?Security?+?Oauth2?+?jwt實(shí)現(xiàn)權(quán)限認(rèn)證的詳細(xì)過(guò)程
本文介紹了如何使用Spring?Cloud、Spring?Security、Oauth2和JWT實(shí)現(xiàn)統(tǒng)一認(rèn)證和權(quán)限管理,并分享了項(xiàng)目結(jié)構(gòu)和主要代碼示例,感興趣的朋友跟隨小編一起看看吧2025-02-02
解決springboot的aop切面不起作用問(wèn)題(失效的排查)
這篇文章主要介紹了解決springboot的aop切面不起作用問(wèn)題(失效的排查),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。 一起跟隨小編過(guò)來(lái)看看吧2020-04-04
springsecurity實(shí)現(xiàn)登錄驗(yàn)證以及根據(jù)用戶(hù)身份跳轉(zhuǎn)不同頁(yè)面
Spring?Security是一種基于Spring框架的安全技術(shù),用于實(shí)現(xiàn)身份驗(yàn)證和訪問(wèn)控制,本文介紹了如何使用Spring?Security,結(jié)合session和redis來(lái)存儲(chǔ)用戶(hù)信息,并通過(guò)編寫(xiě)特定的登錄處理類(lèi)和Web配置,實(shí)現(xiàn)用戶(hù)登錄和注銷(xiāo)功能2024-09-09
如何在MyBatis中實(shí)現(xiàn)DataSource
今天給大家整理了如何在MyBatis中實(shí)現(xiàn)DataSource,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下2021-06-06
Java面試題沖刺第二十六天--實(shí)戰(zhàn)編程
這篇文章主要為大家分享了最有價(jià)值的三道java實(shí)戰(zhàn)面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下2021-08-08
Java?NIO下ByteBuffer的常用方法學(xué)習(xí)
這篇文章主要帶大家來(lái)初步學(xué)習(xí)一下NIO?中的?ByteBuffer的應(yīng)用與常用方法,文中的示例代碼講解詳細(xì),對(duì)我們深入學(xué)習(xí)Java有一定的幫助,感興趣的可以了解一下2023-05-05

