SSH框架客户下客户与联系人为1对多关系,删除客户时报错

为了完善一个删除功能,期间遇到一些麻烦,希望记录下来,日后回头看会有所帮助,记一次成长,也是第一次写博客。       首先,页面方面使用的是dwz,我是初次接触而且刚开始工作不久,了解不是很深,但是一些功能的搭建是页面开发起来很方便,正如dwz介绍那样,省去开发人员写js的麻烦。      其次,本次项目使用的是SSH框架,我是新人,框架方面就此省略。网上有很多相关知识,框架的搭建,各部分的
级联(cascade)在数据库的多表的操作中是一个比较重要的操作,级联是用来设计一对多关系的。对于一对多的表关系中, 一方表可以通过级联来操对多发表中跟自己相关联的表;比如更新,删除等等。 而在SSH框架集成的开发环境中,因为Hibernate的持久化操作,数据库的操作在开发环境中也显得很重要,而在这里主要是说 一下多表操作中的级联的一些问题:   在一对多
的一方,表达持有多的一方的引用=>使用集合 privat

MVC的架构下,对HTTP+JSON的返回类型也有很好的支持。但是,在开发工作中,对功能的升级是基于既定架构是很常见的情况。本人碰到需要用开发基于Struts2的HTTP+JSON返回类型接口就是基于既定框架结构下进行的。

<!-- 这里可以设置一些全局的返回值映射关系等 -->

从上面结果可知在启用了零配置以后,只是少了在xml中的配置,改为在每个action中用annotation进行注解。这里删除上面在xml中的配置,将下面的代码写入到上面的JsonAction的上部:

root就相当xml配置中的参数配置。

<!-- 默认将会序列所有有返回值的getter方法的值,而无论该方法是否有对应属性 --> <!-- 这里指定将要从dataMap中排除那些属性,这些排除的属性将不被序列化,一般不与上边的参数配置同时出现 -->

2.添加支持包时的bug汇总:

 学当然学的多会的多是好,但是我建议JSTL肯定是要学的,STRUTS了解下就好,不用花太多的时间了,除非公司项目有用到。
  放眼现在几呼所有的软件公司准备开发项目,基本上都是spring mvc了,springmvc已经能完全替代struts了,具体好处嘛可以自行百度。再加上以后的方向是走服务化,特别像微服务这一块,spring boot基本上已经算得上是主流了,dubbo已经不再更新。包括最近面试的项目组,基本都是问会不会spring boot。
  现在如果公司还有struts2项目的话,基本上都不是新开发的项目.
  JSTL为什么一定要学呢,因为现面向服务化的公司一般都是比较大,比较正规的公司,有多种系统,都是前后台分离,通过服务调用,前台用HTML(官方推荐)。但其实还有很多中小型的公司,还是用的jsp来做的系统,JSP的话,离不开jstl和EL表达式。
  当然不是叫你不学STRUTS,这个主要还是看所在的公司,所在的项目组的,如果想了解下,自已看看就行,主要心思还是花在spring框架搭的三层上吧,JSP,JSTL,EL表达式,肯定是不能不学的。因为还是有可能会有很多公司是JSP开发的,它跟服务化是两个方向,是基于容器上下文的,通过request,response请求交互数据。

最近听一些朋友说,招聘面试的很多人简历都差不多,大部分人的简历上面都写了熟悉ssh框架,我朋友就在吐槽,为什么这些人简历都差不多,并且都熟悉ssh框架?

后面他说, 可能这些人都是培训机构出来的, 然后培训机构对于完全外行的人都是简单培训了基本的java语法,然后介绍ssh的概念和简单的使用,然后吹嘘ssh多么牛逼,然后再通过一个简单的实战项目,然后帮你做好简历,就算完成了培训。

听到他这一番话,多少心中有些触动。我不是排斥ssh有什么不好,ssh在很多年前是不错的三个框架(现在struts已经没落 ,spring很春天,hibernate不温不火),只是觉得现在培训机构还在教这个是有点过时了, 花费了学生的时间,并且出去可能也找不到工作(如果现在只是说会ssh,又没有其他方面的知识,确实很难找工作)

为什么说ssh已经过时了?那就要首先知道ssh到底是什么?

struts2:通俗的讲就是为了完成MVC模型中的C的功能,也就是编写具体的业务逻辑的地方。

从他的设计上来看就是请求到了web容器,然后经过了一系列的过滤器,再通过请求FilterDispatcher询问ActionMapper是否需要调用某个Action,如果要调用的话, 然后执行先前配置好的拦截器,就到了我们的具体逻辑,执行完之后,还会继续执行对应的拦截器和过滤器逻辑,最后返回给调用方。

Spring: 通俗的讲只是通过它的核心IOC来管理我们编写逻辑中间的一些bean。我们通过IOC来减少耦合和简化对象的操作。

Hibernate: 是对象关系映射框架,简单的说,它就是对JDBC进行了非常轻量级的对象封装,目的是让操作数据库像操作对象一样简单。

这个就是ssh三者最开始的目的,他们各司其职,在缺乏框架的年代,很好的配合着,以至于一直流传了下来。

介绍完了ssh的本质,接下来介绍一下这三个组件现在的发展情况。

首先struts2框架最近爆出了很多高危漏洞,使的应用的安全有了很大程度的隐患。然后很多做法也不够优雅,特别是JSR-311标准出台之后,随着Restful方式的流程程度普及开来,struts2越来越被大家所抛弃,虽然struts2也加入了一些plugin来进行支持REST,但是还是过于繁琐。所以导致了现在struts2的没落。

然后spring以IOC为核心,然后进行大力扩展,先后推出了SpringMVC来完成逻辑层的编写逻辑,现在SpringMVC基本已经完成了替代struts2的工作(一些很老的项目可能没有进行改造)。然后在SpringMVC大获成功之后,基于SpringMVC和web容器,把他们两者进行结合,推出了SpringBoot,经过几年的发展和酝酿,现在后端基本被Spring系列所统一。所以现在要我来讲,后端框架的王者就只有一个Spring系列了。

最后Hibernate只是一个对操作数据库进行映射的框架,有很多也可以替代,比如ibatis, mybatis, JPA等等,因为orm有自己的优点也有自己缺点,就看使用者如何进行权衡了。从我个人的意见来看,简单的业务逻辑直接用JPA(Spring基于Hibernate的封装)就可以了,如果是复杂的,还不如直接写SQL来得简单,调优也方便。

为什么说ssh已经过时?

现在提倡和流行的是前后端分离(这里指的分离是完全分离,而不是之前通过模版进行分离,前后端数据交互是根据http进行的)。并且后端设计的接口趋向于Restful的架构。为什么有这种变化,因为现在前端不仅仅是web端,在移动互联网时代,app也是很大一部分。所以从后端的角度来看,他们都是客户端。app是没办法通过模版进行渲染的,只能通过http传输数据。这也是后端服务发展的趋势。

Java后端技术有很多,如果想要提高,最好的捷径就是踏踏实实的进行学习,对于刚工作不久的人来说,可以把学习ssh框架的时间用来学习SpringMVC,然后掌握Spring的核心,然后学习什么是Restful概念,最后可以了解JDBC的一些概念(前期不推荐学习ORM框架)。我相信可以有所收获和成长的。

最后不建议再去冲着学习ssh框架去培训机构了,然后附上了我个人针对于经验较少工程师的所建议学习路线。

最后如果觉得所讲的东西能够帮助到你,并且希望了解更多的知识,进行更详细的深入的学习,欢迎加群进行讨论和学习。

我要回帖

更多关于 框架客户 的文章

 

随机推荐