电商笔记-05(路径携带参数等问题)

来源:互联网 发布:nginx 不同目录转发 编辑:程序博客网 时间:2024/06/05 11:51

重点内容PS:

    以下的问题,对于大神来说可能不止一提,但是对于跟我同等水平的童鞋来说,也是有可能会出现的问题!针对实践中所发生的真实情况,本人会写下发生的问题,和出现问题的原因,以及处理问题的方式.如果出现技术和理解错误的地方,还请各童鞋能够指出,我们共同进步!

头疼的问题

昨天一直在为这样的问题所困扰;

问题:

当我第一次进入页面,分页显示第一页的数据.此时的条件为空是没有值的.点击删除其中的数据,完成删除之后,页面跳转是400,路径格式问题.此时考虑的是条件的参数为null所导致的,但是地址栏中拼接依然可以访问:

然后又想到了Controller向页面中发送数据,页面用EL表达式取值的默认值问题.进入分页Controller时所有的值都为null,回显到页面的条件栏是用EL取的值,此时${name}如果String类型的name为null,那么结果就是空字符串:”“.这时又困扰了:name是空,可以访问.为null也可以访问,为什么还会报400呢?上了个厕所回来发现原来我只去考虑name了,却忽略了还有一个条件就是Integer 类型的isDisplay.经过测试发现如果Integer类型的值为null,用EL表达式取值,结果也是”“,但是同学请往这里看:

当两个判断都不会去执行时,后台接收的就是一个大大的null.

也就是说当重定向过去时,地址的后面携带的参数,如果key是非String类型,value又为null时,就会发生路径的语法格式问题

问题找到了就好办了,最方便的办法就是将isDisplay放到Model中

品牌图片上传问题

1.在通过ajaxSubmit()做上传图片到FastDFS时,要做到用户选择图片点击打开时就要进行上传,并且要在页面上显示用户选择的图片


这里就要用到异步提交,第一个想到的肯定是ajax但是传统ajax只能发送字符串一个key对应一个value,是无法发送字节流的,ajaxSubmit()可以解决:

  • 1,异步提交,保证页面不会刷新
  • 2,可以发送字节流
  • 3,可以返回上传后的信息

    var options = {    url : "/uploadFile.do",    type : "post",    //这里一定要指定数据类型,不然返回的就是jasn格式的spring类型.    dataType : "json",    success : function(data) {        //上传后的反馈信息        alert(data);    }}    $("#jvFrom").ajaxSubmit(options);  

在上传完毕之后,就可以将上传后的文件的路径,返回到页面,用于页面的显示.

API问题

1.在编写分布式文件系统的FastDFS工具类时,要去获取配置文件在classes下的全路径时,用到了ClassPathResource,从字面意思上看是类的资源路径.但是早已忘得一干二净.重新测试整理了下:

ClassPathResource classPathResource = new   ClassPathResource("spring.xml");    //获取在classes目录下真实的名称    String existName = classPathResource.getPath();    System.out.println(existName);    //获取在此配置文件的全路径    String path = classPathResource.getClassLoader().getResource("spring.xml").getPath();    // 例如:  E:/Users/Administrator/target/classes/spring.xml    System.out.println(path);   

2.FilenameUtils 实用的工具类,下面只是在项目中用到的.

更多:http://eksliang.iteye.com/blog/2217081

//坐标<dependency>    <groupId>commons-io</groupId>    <artifactId>commons-io</artifactId>    <version>2.4</version>  </dependency>  //获取文件的后缀名    String suffixName = FilenameUtils.getExtension("spring.xml");    //   xml    System.out.println(suffixName);    //取出路径和后缀名,获取文件名    String baseName = FilenameUtils.getBaseName("E:/Users/Administrator/target/classes/spring.xml");    //  spring    System.out.println(baseName);
原创粉丝点击