0.学习教程

http://www.cnblogs.com/jiekzou/p/9205117.html

https://github.com/crossoverJie/SSM

1.gradle没刷新导致的jar包不能解析:

点击View->Tool Window->Gradle->点击面板里第一个按钮Refresh All.重新运行即可.

2.打开gradle构建的项目,import找到build.gradle文件确定.

3.mybatis注解like(http://lavasoft.blog.51cto.com/62575/1386870/):

@Select("select * from girl where name like \"%\"#{name}\"%\"")
public List<Girl> likeName(String name);

4.mybatis insert 返回id自增的值

<insert id="register" useGeneratedKeys="true" keyProperty="memberId" parameterType="com.xxx.entity.Member">
  insert into member (member_name,member_phone_no)values(#{memberName},#{memberPhoneNo})
</insert>

insertOrUpdate(member);
var returnId=member.id;
 

5.idea使用git版本控制

菜单 vcs ->Enable Version Control Integration选择git

6.git提示非空目录:先在目录内执行git init命令

7.eclipse: class path resource [applicationContext.xml] cannot be opened because it does not exist;

close项目,重新添加到eclipse,然后project->clean

20.java lambda linq

查找第一个(https://www.cnblogs.com/liguoyi/p/5899179.html)

Optional<WbCompany> tmpCompany = filteredCompanyList.stream().filter(s -> s.id.equals(wbCompany.getId())).findFirst();

if (tmpCompany.isPresent()) {

  WbCompany company=tmpCompany.get();

}

 //lambda中访问外部变量 (不用threadlocal报错:local variable f defined in an enclosing scope must be final)

ThreadLocal<Float> f=new ThreadLocal<Float>() ;
wbCompanyGzList.forEach(s->{
f.set(f.get()+s.getMoney());
});

 

21.jsp和js数组互操作

var c='<c:out value="${bp.title}"/>';
alert(c);

var ias=[];
alert('<c:out value="${atts.size()}"/>');

for(var i=0;i<${atts.size()};i++){
var fp='${atts[0].filePath}';
//alert(fp);
}

console.log(ias);

 

22.多文件上传

第一种需要input的name和requestparam里的value设置一直

<form method="post" action="issue/uploadFile.do?FileType=Photo" enctype="multipart/form-data">
<input name="uploadFiles" type="file" />
<button type="submit">submit</button>
</form>

@RequestMapping("/uploadFile")
public void uploadFile(@RequestParam(value = "uploadFiles") MultipartFile[] uploadFiles, HttpServletRequest request, HttpServletResponse response,
HttpSession session) {
JSONObject param = new JSONObject();

if (uploadFiles == null || uploadFiles.length <= 0) {
param.put("token", false);
param.put("datas", null);
param.put("msg", "请选择文件.");
ServletUtil.write(response, param.toString());
return;
}

for (MultipartFile file : uploadFiles) {
String filename = file.getOriginalFilename();
String oriName = file.getOriginalFilename();
String extName = oriName.substring(oriName.lastIndexOf(".")).toUpperCase();
if (!extension.contains(extName)) {
param.put("token", false);
param.put("datas", null);
param.put("msg", "不支持的文件格式.仅支持:" + extension);
ServletUtil.write(response, param.toString());

}
String savePath=serverPath+"\\photo\\"+UUID.randomUUID()+"--"+filename;
file.transferTo(new File(savePath));//保存
}

}

第二种 input的 name随便取

@RequestMapping("/uploadFile1")

public void uploadFile1(MultipartHttpServletRequest request, HttpServletResponse response, HttpSession session)throws IllegalStateException, IOException {

List<CommonsMultipartFile> uploadFiles = new ArrayList<>();
CommonsMultipartFile multipartFile = null;
Iterator<String> itr = request.getFileNames();
while (itr.hasNext()) {
String str = itr.next();
multipartFile = (CommonsMultipartFile) request.getFile(str);
String fileName = multipartFile.getOriginalFilename(); // 原文件名
CommonsMultipartFile mpf = (CommonsMultipartFile) request.getFile(str);
//// mpf.transferTo(new File("c:\\upload\\"+fileName));
uploadFiles.add(mpf);
}

}

23.ffmpeg将amr转mp3

(仅限window平台)将ffmpeg.exe放在webroot下

调用: ToMp3(request.getSession().getServletContext().getRealPath("/"), savePath);

https://blog.csdn.net/luqyu/article/details/43525795

/**
* 将上传的录音转为mp3格式
* @param webroot 项目的根目录
* @param sourcePath 文件的相对地址
*/
public static void ToMp3(String webroot, String sourcePath){
//File file = new File(sourcePath);
String targetPath = sourcePath+".mp3";//转换后文件的存储地址,直接将原来的文件名后加mp3后缀名
Runtime run = null;
try {
run = Runtime.getRuntime();
long start=System.currentTimeMillis();
Process p=run.exec(webroot+"/ffmpeg -i "+sourcePath+" -acodec libmp3lame "+ targetPath);//执行ffmpeg.exe,前面是ffmpeg.exe的地址,中间是需要转换的文件地址,后面是转换后的文件地址。-i是转换方式,意思是可编码解码,mp3编码方式采用的是libmp3lame
//释放进程
p.getOutputStream().close();
p.getInputStream().close();
p.getErrorStream().close();
p.waitFor();
long end=System.currentTimeMillis();
System.out.println(sourcePath+" convert success, costs:"+(end-start)+"ms");
//删除原来的文件
//if(file.exists()){
//file.delete();
//}
} catch (Exception e) {
e.printStackTrace();
}finally{
//run调用lame解码器最后释放内存
run.freeMemory();
}
}

(跨平台) http://www.sauronsoftware.it/projects/jave/download.php下载jave.jar导入

http://mfan.iteye.com/blog/2032454

public static void changeToMp3(String sourcePath, String targetPath) {
File source = new File(sourcePath);
File target = new File(targetPath);
AudioAttributes audio = new AudioAttributes();
Encoder encoder = new Encoder();

audio.setCodec("libmp3lame");
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("mp3");
attrs.setAudioAttributes(audio);

try {
encoder.encode(source, target, attrs);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InputFormatException e) {
e.printStackTrace();
} catch (EncoderException e) {
e.printStackTrace();
}
}

From:http://www.cnblogs.com/xuejianxiyang/p/7298303.html

java idea+ssm框架遇到的问题的更多相关文章

  1. Java基于ssm框架的restful应用开发

    Java基于ssm框架的restful应用开发 好几年都没写过java的应用了,这里记录下使用java ssm框架.jwt如何进行rest应用开发,文中会涉及到全局异常拦截处理.jwt校验.token ...

  2. JAVA:ssm框架搭建

    文章来源:http://www.cnblogs.com/hello-tl/p/8328071.html 环境简介 : jdk1.7.0_25/jdk1.8.0_31  tomcat-7.0.81  m ...

  3. JAVA 后台SSM框架接收安卓端的json数据

    最近项目上与安卓端做JSON数据交互,使用的SSM框架,刚开始的时候感觉很简单,想着不就是把安卓端的JSON数据封装为Bean类对象吗? 于是就这样写了 可是这样一直报400,百度原因是因为请求url ...

  4. 【Java】SSM框架整合 附源码

    前言 前面已经介绍Spring和Mybatis整合,而本篇介绍在IDEA下Spring.Spring MVC.Mybatis(SSM)三个框架的整合,在阅读本篇之前,建议大家先去了解一下Spring. ...

  5. java开发SSM框架的搭建(SpringMVC+Spring+MyBatis)

    因为某些原因,重装系统,java-web开发尽管顺手,但烦人的一点是开发环境的搭建.几乎相同折腾了一整天,笔者在这里把SSM开发环境的搭建又一次清理一遍,以飨读者.也供自己以后參考.善于总结,是做好每 ...

  6. java配置SSM框架下的redis缓存

    pom.xml引入依赖包 <!--jedis.jar --> <dependency> <groupId>redis.clients</groupId> ...

  7. java实现ssm框架的crud

    上一篇博客写了通过表名获取数据库表结构的demo,现在我以此为基础实现了一个简单的通过数据库表结构生成对应的实体,通过读取mapper接口文件.mapping映射文件. service映射文件模板,替 ...

  8. 使用idea搭建SSM框架

    搭建个SSM框架居然花费了我好长时间!特此记录! 需要准备的环境: idea 2017.1 jdk1.8 Maven 3.3.9  请提前将idea与Maven.jdk配置好,本次项目用的都是比较新的 ...

  9. java web后台开发SSM框架(Spring+SpringMVC+MyBaitis)搭建与优化

    一.ssm框架搭建 1.1创建项目 新建项目后规划好各层的包. 1.2导入包 搭建SSM框架所需包百度云链接:http://pan.baidu.com/s/1cvKjL0 1.3整合spring与my ...

随机推荐

  1. leetcode-118-Pascal's Triangle(生成具有n行的帕斯卡三角形)

    题目描述: Given a non-negative integer numRows, generate the first numRows of Pascal's triangle. Example ...

  2. Bootrap 项目实战(微金所前端首页)第一部分

    微金所前端首页成果图:(这是本人自己按照微金所官网首页,采用Bootrap,JS,JQuery,css制作的网页效果图,在第二部分我会公布网页源代码) 如需网页源代码,请在下方留言,备注你的qq邮箱. ...

  3. java8特性之Lambda表达式

    1.典型的用Lambda表达式的场景 如果有这样的一个小应用,其中的一个类Student包含姓名(name),性别(sex),分数(score),如下: package demo; public cl ...

  4. 【中间件】Struts2系列漏洞POC小结

    #Struts2-045 ''' CVE-2017-5638 影响范围:Struts 2.3.5 – Struts 2.3.31,Struts 2.5 – Struts 2.5.10 触发条件:基于J ...

  5. python 类,对象

    声明类 ''' class 类名: '类的文档字符串' 类体 ''' #我们创建一个类 class Data: pass 声明类 class Person: #定义一个人类 role = 'perso ...

  6. ubuntu下nodejs环境搭建

    #0.0.0.0 account.jetbrains.com”添加到hosts文件中 apt-get升级 sudo apt-get upgrade apt-get更新 sudo apt-get upd ...

  7. 理解ReentrantLock的公平锁和非公平锁

    学习AQS的时候,了解到AQS依赖于内部的FIFO同步队列来完成同步状态的管理,当前线程获取同步状态失败时,同步器会将当前线程以及等待状态等信息构造成一个Node对象并将其加入到同步队列,同时会阻塞当 ...

  8. Protrator 官网和下载工具稍慢 , 但能使用. Angular CLI 内置 官方推荐 TS的 demo 不明显 , 而且依赖无法安装

    npm uninstall -g protractor  && cnpm install -g protractor && protractor --version 复 ...

  9. Ubuntu 16.04安装SecureCRT替代XShell

    XShell应该是最强大的,在Ubuntu下只有SecureCRT能实现跨平台(Linux/Windows/Mac),并且可以实现Tab的功能等.当然,还有其它的类似PuTTY这些.Windows下建 ...

  10. PC端政务云产品的一些的看法

    第一部分:网站整体问题 1. 在hover或click时,没有明确的色彩等样式变化,如腾讯采取的是背景和颜色同时变化,搜狐和知乎采取的是颜色字体颜色的改变,无论时哪种,我觉得都是必要的. 2. 与上一 ...