首页
3D照片墙
统计
留言
Search
1
1.OAuth 的简单理解
115 阅读
2
多个拦截器的执行顺序
105 阅读
3
基于Annotation方式的声明式事务
102 阅读
4
6.设计模式汇总
101 阅读
5
Unity 依赖注入
98 阅读
Java
JDBC
Spring
Spring MVC
SpringBoot
SpringCloud
MybatisPlus
Mybatis
Maven
SpringSecurity
JVM
java注解与反射
Java JUC并发编程
SSM
.NET
IdentityServer4
EF
.Net Core
AbpVNext + DDD
.NET MVC Api
前端
Jquery&JavaScript
uniapp
VUE
Echars
Vue底层原理
Python
Django
软考笔记
软件设计师
1.计算机组成与体系结构
10.面向对象技术
11.UML类图建模
12.面向对象程序设计
13.数据结构
14.算法基础
16.知识产权标准化
17.程序设计语言
2.操作系统
3.数据库
4.数据库设计
5.计算机网络
6.信息安全
7.系统开发基础
8.项目管理
9.数据流图
架构设计
CQRS架构
DDD架构
数据库技术
SQL锁
SqlServer
Oracle 主从备份
Oracle RAC集群
Mysql
云原生/容器技术
kubernetes
Docker
数据结构与算法
常用中间件
Redis
RabbitMQ 消息队列
ElasticSearch
其他
PHP
OAuth 2.0
WebSocket
ArkTs Harmony 开发
运维
Search
标签搜索
排序算法
vue
算法
遍历
docker
线性
数组
dom
synchronized
数据库
xml语言
log4j
bigint
静态函数
静态方法
哈夫曼树
const
冒泡排序
商标设计
命令模式
Bi8bo
累计撰写
304
篇文章
累计收到
6
条评论
首页
栏目
Java
JDBC
Spring
Spring MVC
SpringBoot
SpringCloud
MybatisPlus
Mybatis
Maven
SpringSecurity
JVM
java注解与反射
Java JUC并发编程
SSM
.NET
IdentityServer4
EF
.Net Core
AbpVNext + DDD
.NET MVC Api
前端
Jquery&JavaScript
uniapp
VUE
Echars
Vue底层原理
Python
Django
软考笔记
软件设计师
1.计算机组成与体系结构
10.面向对象技术
11.UML类图建模
12.面向对象程序设计
13.数据结构
14.算法基础
16.知识产权标准化
17.程序设计语言
2.操作系统
3.数据库
4.数据库设计
5.计算机网络
6.信息安全
7.系统开发基础
8.项目管理
9.数据流图
架构设计
CQRS架构
DDD架构
数据库技术
SQL锁
SqlServer
Oracle 主从备份
Oracle RAC集群
Mysql
云原生/容器技术
kubernetes
Docker
数据结构与算法
常用中间件
Redis
RabbitMQ 消息队列
ElasticSearch
其他
PHP
OAuth 2.0
WebSocket
ArkTs Harmony 开发
运维
页面
3D照片墙
统计
留言
搜索到
16
篇与
的结果
2024-03-11
AJAX 提交表单混合文件
今天做一个SSM框架项目的时候碰到一个问题,ajax表单混合文件提交如何实现,整半天终于弄出来了 HTML部分 <form id="formData"> <div class="form-row"> <div class="form-group col-md-6"> <label>商品名称</label> <input type="text" name="name" class="form-control"> </div> <div class="form-group col-md-6"> <label>商品外部编号</label> <input type="number" name="externalId" class="form-control"> </div> </div> <div class="form-row"> <div class="form-group col-md-6"> <label>所属分类</label> <select name="categoryId" class="custom-select"> <c:forEach var="items" items="${categories}"> <option value="${items.id}">${items.name}</option> </c:forEach> </select> </div> <div class="form-group col-md-6"> <label>市场价格</label> <input type="text" name="price" class="form-control"> </div> </div> <div class="form-row"> <div class="form-group col-md-6"> <label>店内价格</label> <input name="shopPrice" type="text" class="form-control"> </div> <div class="form-group col-md-6"> <label>商品库存</label> <input type="number" name="quantity" class="form-control"> </div> </div> <div class="form-row"> <div class="form-group col-md-6"> <label>是否记录库存</label> <div> <div class="form-check form-check-inline"> <input class="form-check-input" type="radio" name="inventoryFlag" id="quantityyes" value="0" checked> <label class="form-check-label" for="quantityyes">是</label> </div> <div class="form-check form-check-inline"> <input class="form-check-input" type="radio" name="inventoryFlag" id="quantityno" value="1"> <label class="form-check-label" for="quantityno">否</label> </div> </div> </div> <div class="form-group col-md-6"> <label>是否热销</label> <div> <div class="form-check form-check-inline"> <input class="form-check-input" type="radio" name="hot" id="hotno" value="1"> <label class="form-check-label" for="hotno">非热门商品</label> </div> <div class="form-check form-check-inline"> <input class="form-check-input" type="radio" name="hot" id="hotyes" value="0" checked> <label class="form-check-label" for="hotyes">热门商品</label> </div> </div> </div> </div> <div class="form-row"> <div class="form-group col-md-6"> <label>状态</label> <select name="productStatus" class="custom-select"> <option selected value="0">上架</option> <option value="1">下架</option> </select> </div> <div class="form-group col-md-6"> <label>商品概要说明</label> <input type="text" name="generalExplain" class="form-control"> </div> </div> <div class="form-row"> <div class="form-group col-md-6"> <label>上传图片</label> <div class="custom-file"> <input type="file" name="file" class="custom-file-input" id="imagefile"> <label class="custom-file-label" for="inputGroupFile03">上传图片</label> <small class="form-text text-muted">上传图片的最佳尺寸:300像素*300像素,其他尺寸会影响页面效果,格式png,jpeg,jpg,gif。大小不超过1M</small> </div> </div> </div> <div class="form-row"> <div> <button type="button" style="margin-right:10px" id="save" class="btn btn-success">保存</button> </div> <div> <button type="button" class="btn btn-success">返回</button> </div> </div> </form> JS 代码 $(function () { //提交 $("#save").click(function () { //创建表单数据容器 var formData = new FormData() //获取文件数据 file = $('#imagefile')[0].files[0]; //检查文件上传 if (!file) { alert('请先上传文件'); return; } //添加表单数据 formData.append('file', file); //得到页面所有表单数据,Array转Object var AllInputData = $("#formData").serializeArray(); AllInputData.forEach(function (e) { formData.append(e['name'], e['value']); }); //发送请求 $.ajax({ url: 'addProduct?${_csrf.parameterName}=${_csrf.token}', type: 'post', data: formData, contentType: false, processData: false, success: function (resp) { console.log(resp); } }) }) }) 注意:如果JQury出现Illegal invocation异常是因为没有取消表单处理,ajax里面添加processData: false属性就OK了 后台接收部分 包含的文件用 MultipartFile接收 并且 必须加上@RequestParam注解,不然不能正常接收! /** * 添加商品 */ @RequestMapping(value="addProduct",method=RequestMethod.POST) //Product是我自己定义的一个包装类, public String addProduct(Product product,@RequestParam("file")MultipartFile file){ System.out.println(product.getName()); System.out.println(file.getOriginalFilename()); return null; }
2024年03月11日
77 阅读
0 评论
58 点赞
2023-09-23
拦截器配置
顺序一定不能错 <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/user/**"/>//拦截/user下的所有方法 <mvc:exclude-mapping path="/user/login"/>//可以选择不拦截登录和添加以及其他的方法,根据情况自己定 <mvc:exclude-mapping path="/user/add"/> <bean class="com.tcc.interceptor.interceptor"></bean> </mvc:interceptor> </mvc:interceptors>
2023年09月23日
18 阅读
0 评论
22 点赞
2023-05-24
ViewResolver视图解析器
暂无简介
2023年05月24日
11 阅读
0 评论
20 点赞
2023-04-23
@Controller注解的使用
暂无简介
2023年04月23日
46 阅读
0 评论
24 点赞
2023-03-30
@RequestMapping注解的属性
暂无简介
2023年03月30日
26 阅读
0 评论
83 点赞
1
2
3
4