我的第一个ssh项目之改bug

日常报错
在这里插入图片描述
看到这个两个action没,Struts框架里面,Action类不写在action包里面会找不到,类的名字后面不取Action,也会报错。如果你问原理?咱也不知道,咱也不敢问

=====================================================================
在这里插入图片描述
这是一个数据库表的多对一结构,如果在映射文件里面存在两个相同外键,就会出现错误提示你应该添加 should be mapped with insert=“false” update="false" 这样的语句。去除多余的外键就可以了。

========================================================================
在这里插入图片描述
这个是驱动模型,不要忘记前面的名字,不然获取不到值,会报空指针异常!

=====================================================================

下面这句错误提示

Caused by: The Result type [json] which is defined in the Result annotation on the class

在这里插入图片描述
这个错误,是因为action类使用Ajax时,类上面没有加
@ParentPackage(“json-default”)
的注解!

在这里插入图片描述
Ajax是js页面,在js里面的==判断用于比较值,不用来比较地址。

在这里插入图片描述
用struts2框架,Ajax传的值,需要添加get set方法。不然data值为空;

======================================================================

获取绝对路径,上传文件

使用ServletActionContext.getServletContext()的getRealPath属性,需要导入Tomcat的配置。

在这里插入图片描述

========================================================================
在这里插入图片描述
出现这个错误,是因为sql的原因,无非就是传的值为空与数据库设置的属性是否为空不符合,继续看错误日志都会有提示。我出现错误的原因是因为 传输过去的字符串长度过长。

=======================================================================

千辛万苦,终于写完了 图片的回显和上传

回显功能是百度找到的,我的能力还不足以自己写出来。下面的代码看起来不难,但是挺折磨人的,你不知道如何下手。

                <td>
					添加线路类型图标:
					[外链图片转存失败(img-dB2DDIds-1562123988390)(https://mp.csdn.net/mdeditor/$%7BlineType.icon%7D)]
				</td>
				<td>
					请选择图片:
					<input type="file" name="file" id="file" onchange="imgChange(this);"/>
				</td>

		
		<script>
			// 选择图片显示
			function imgChange(obj) {
                 //获取点击的文本框
				var file =document.getElementById("file");
				var imgUrl =window.URL.createObjectURL(file.files[0]);
				var img =document.getElementById('pic');
				img.setAttribute('src',imgUrl); // 修改img标签src属性值
			};
		</script>
    public String insertLineType(){
        //获取图片地址
        String path = ServletActionContext.getServletContext().getRealPath("/ht/images/imgs/"+fileFileName);
        String contextPath ="/ht/images/imgs/"+fileFileName;
        File file1 = new File(path);
        try {
            FileUtils.copyFile(file,file1);
        } catch (IOException e) {
            e.printStackTrace();
        }
        //获取添加的当前时间

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String time = sdf.format(new Date());

        //持久化当前对象
        lineType.setLineTypeId(lineType.getTypeName());
        lineType.setIcon(contextPath);
        lineType.setTime(time);
        lineTypeService.insertLineType(lineType);
        return "success";
    }

文件上传

1.创建文件 选择 绝对路径
2.在存储地址到数据库 时选择 相对路径,因为在jsp页面 获取文件 时只能通过 相对路径 获取到文件。

=======================================================================

空指针异常
1.idea自动生成实体类,关系连接没有实体类,关系连接没有实例化。调用集合时会报空指针异常!
在这里插入图片描述

====================================================================

在这里插入图片描述
这是hibernate的延时加载策略,提升性能。将 lazy=“false” 加入连接关系,保持session开启状态

====================================================================
继上一个坑之后又会出现第二个坑。
我还是觉得上一个问题处理得不好,导致出现第二个坑!
在这里插入图片描述
由于session一直开启。当创建新的session时,具有相同标识符值的不同对象已经与会话相关联,通俗来讲就是,存在相同session。这个错误怎么解决呢?

getSession().clear();
加上这个,将所有存在的Session清除!

====================================================================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值