关于使用srping @RequestParam 容易出错的地方
大家都知道,在spring中的@RequestParam主要用户传递参数用的,具体的解释就是将请求参数去数据映射到功能处理方法的参数上。其中包括三个参数:
value:参数名字,即入参的请求参数名字,如username表示请求的参数区中的名字为username的参数的值将传入;
required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报404错误码;
defaultValue:默认值,表示如果请求中没有同名参数时的默认值,默认值可以是SpEL表达式,如“#{systemProperties['java.vm.version']}”。
具体的用法为(我以form表单提交为例):
html代码:
<form action="localhost:8080/vincent/admin/video/add.htm" method="post" enctype="multipart/form-data" name="fom" id="fom" >
提交文字内容:<input name="name" id="name" />
提交文件:<input name="file" id="file" type="file"/>
提交按钮:<input type="button" name="Submit" value="提交" onclick="submit()"/>
</form>
js代码:
<script>
function submit() {
var name = $f("name").value; //获得文字内容,用于判断用户输入了没有
if(name == null || name == "") {
alert("菜单名称不能为空!");
return;
}
$f("fom").submit(); //如果判断都没有问题,那么就把这些文字提交到web端
}
</script>
服务器端(java):
@Controller
@RequestMapping("/admin/video") //要与form表单提交上来的路径保持一致(第一个路径)
public class VideoController{
@RequestMapping(method = RequestMethod.POST, value="add") // 最后一个路径
public ModelAndView add(@RequestParam("file") MultipartFile[] file,HttpServletRequest request){
//(重点:)看见上面@requestParam里面的值和MultipartFile[]的值没(就是:file),这个值一定要与form里面提交的一模一样才行,因为这个是文件类型,所以要用MultipartFile[]参数,除此之外,还有一点值得提醒的是:这个名字不能为特殊的符号,像#、_、*等等的都会报错。
try { //抛出异常,防止错误
//得到文字内容
String name=request.getParameter("name"); //通过httpservletRequest得到从form端提交上来的文字内容
System.out.println(video.getName()); //打印出来看看
//得到文件(以图片为例)内容,并存放在对应位置(前提是这个位置是已经存在的)
if (!myfile.isEmpty()) { //判断提交的文件是不是空的,如果不是空的就存放在一定位置
String realPath = request.getSession().getServletContext().getRealPath(""); //设置存放图片的路径
realPath += "/images/news/"; //存放图片的路径
String fileName = myfile.getOriginalFilename(); //得到完整到的图片名称
System.out.println(fileName); //打印出来看看
}
} catch(Exception e) {
e.printStackTrace();
}
}
}
有不懂的可以相互交流(qq):1434475404
弱弱的来一句:其实我也是菜鸟一枚~
关于使用srping @RequestParam 容易出错的地方的更多相关文章
- python序列元素引用容易出错的地方
python序列分列表和元组,不同之处在于元组的元素不能修改.元组使用小括号,列表使用方括号.元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可.举个简单的例子,a1是一个元组,a2是一个列表 ...
- 使用Storyboard拖线容易出错的地方
使用Storyboard拖线容易出错的地方: 在Storyboard中,选中某个控件,按住ctrl键进行拖线,建立Outlet和Action后,不能手动再去修改自动生成的代码,然后再次进行连线,这样会 ...
- 如果$.ajax函数迟迟得不到响应,那么最有可能出错的地方是请求参数写错了
如下的$.ajax函数 $.ajax({ url: url,// 请求的地址 data:{id:id,pieceId:pieceId,pieceDesc:pieceDesc,actualStock:a ...
- Java向前引用容易出错的地方
所谓向前引用,就是在定义类.接口.方法.变量之前使用它们,例如, class MyClass { void method() { System.out.println(myvar); } String ...
- c语言几个松散的地方(不足的地方,不严谨的地方,它容易出错的地方)。
c语言是面向过程的语言,是弱类型语言,c语言的源代码基本就是无数个函数的堆砌.即很多函数就组成c语言源代码了,也即它的源代码基本就是函数构成的. C语言里面的test()和test(void)是不一样 ...
- delphi中 dataset容易出错的地方
最近写delphi项目,用到的数据集中的dataset,一直修改exception啊,写下过程. 在对数据集进行任何操作之前,首先要打开数据集.要打开数据集,可以把Active属性设为True,例如: ...
- linux 上操作常用的命苦与出错的地方
帮助信息 ./configure -help|grep mysql 出错提示安装libxml2 tar -zxvf libxml2xxxx.tar cd libxml2xxx ./configure ...
- 转: jdbc连接数据库需要注意和出错的地方
* 1.数据库登录模式不能只使用windows登录模式,要采取混合模式登录, * 并记住相应的密码和账户: * 2.连接数据库后一定要记得关闭资源,否则就会造成资源浪费. * 关闭的时候也要注意顺序, ...
- sotower1.5-LS_工作流容易出错的地方
流程代码如下: 1>LeiSheng.WorkFlow.FlowInfo fInfo = new LeiSheng.WorkFlow.FlowInfo(); 2&g ...
随机推荐
- CSS--使用方式
创建CSS有三种方式: 外部样式表, 内部样式表和内联样式. 外部样式表 先建立外部样式表文件(.css),然后在网页文件的<head>内使用<link>链接.这种方式将样式文 ...
- ORACLE对象大小写问题
在数据库新建一个测试表(数据库版本为ORACLE 10.2.0.1.0),表名为小写的test. 脚本如下所示: CREATE TABLE test( id NUMBER(10), ...
- Gsp
Gsp 接触到了groovy开发,自然就接触到了gsp.在grails开发中,gsp作为Grails的视图技术,事实上, 不过是标准 HTML 加上一些提供动态内容的 Grails 标记而已. gsp ...
- CSS样式中常用的字体名称
css中引入字体: @font-face { font-family: "AncientWar"; src: url('style/css/fonts/AncientWar.ttf ...
- https原理及实践
转载请注明出处 安全知识 网络安全问题 数据机密性 在网络传输数据信息时,对数据的加密是至关重要的,否则所有传输的数据都是可以随时被第三方看到,完全没有机密性可言. 数据机密性解决问题思路 利用算法 ...
- tensorflow.python.framework.errors_impl.OutOfRangeError: FIFOQueue
tensorflow.python.framework.errors_impl.OutOfRangeError: FIFOQueue 原创文章,请勿转载哦~!! 觉得有用的话,欢迎一起讨论相互学习~F ...
- 关于HTTP GET & POST的区别(转)
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE. URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTT ...
- 开源中文分词工具探析(五):Stanford CoreNLP
CoreNLP是由斯坦福大学开源的一套Java NLP工具,提供诸如:词性标注(part-of-speech (POS) tagger).命名实体识别(named entity recognizer ...
- Hadoop学习笔记二
一.设置无密码sudo权限,不用在普通用户和root用户间来回切换 chmod u+w /etc/sudoers vim /etc/sudoers #首行添加如下的内容: hadoop ALL=(ro ...
- 《深入理解Java虚拟机》学习笔记(二)
垃圾回收的前提是判断对象是否存活,对象不再存活时将会被回收,下面是2种判断的方法. 引用计数法: 主流的Java虚拟机并没有使用引用计数法来管理内存,重要的原因就是循环引用的问题难以解决. 可达性分析 ...