java xwork_java-与休眠的Struts2 xwork类型转换
在Struts2应用程序中转换类型的最佳方法是什么?
现在,我想为我的应用程序中的某个休眠实体创建CRUD.假设我想更改与用户关联的帐户.只要我具有所有适当的获取器/设置器,我就可以传递带有特定值的参数user.account.id.
第一次创建对象(帐户为空)时,这可以很好地工作.这使ognl创建了一个新的帐户对象,并将ID设置为传入的对象.
尝试更改封装的Account对象时,会发生此问题.使用相同的user.account.id参数,ognl将此解释为getUser().getAccount().setId(param). Hibernate将此解释为尝试更改主键.
我知道为什么会这样做,我只是想知道是否有更好的方法来处理这种情况.这在我们的应用程序中很常见,我不需要在通过休眠保存它们之前继续创建多个对象并将其编组.
没有人在struts2中有更好的方法来解决此问题吗?
解决方法:
持久性类型转换器
为实体创建类型转换器,然后仅传递user.account而不是user.account.id.这将调用getUser().setAccount(account),不会使您头痛.
更新记录时,只需将user.account传递为表单中的隐藏字段.
至于为您的实体提供的广泛解决方案,您可以选择以下几种:
多个转换器
创建一个处理大多数逻辑的抽象类型转换器,以使您拥有真正轻量级的每个实体的子类.在xwork-conversion.properties中注册每个转换器.
接口驱动转换器
我使用的方法是有一个名为IdBasedJpaEntity的接口,该接口实现了99.9%的实体.它定义了Integer类型的getId()方法.然后,我有一个JpaDAORegistry单例类,该类是在应用程序启动时创建的.我向它注册了我的每个实体,并且它构造了每个DAO的单个实例(基本上是事实上的单例).我有一个实体类到DAO实例的映射.这使我的类型转换器可以为任何给定的IdBasedJpaEntity查找合适的DAO实例,从而使我可以使用一个JpaEntityConverter类,该类可以与实现该接口的任何实体一起使用.这条路线还有很多工作要做,但是对我来说已被证明是高度可重用的.
标签:hibernate,type-conversion,struts2,crud,java
来源: https://codeday.me/bug/20191208/2094076.html
java xwork_java-与休眠的Struts2 xwork类型转换相关推荐
- (十二)struts2的类型转换
所有的MVC框架,都属于表现层的解决方案,都需要负责收集用户请求参数,并将请求参数传给应用的控制器组件. 这时问题出现了,所有的请求参数都是字符串类型数据,因此MVC框架必须具备将这些字符串请求参数转 ...
- java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.Struts问题解决
在eclipse中新建了ssh项目报错:1.java.lang.ClassNotFoundException:org.apache.struts2.dispatcher.ng.filter.Strut ...
- java继承类型转换_#java 一个简单的例子理解java继承、成员函数重写、类型转换...
一个简单的例子理解java继承.成员函数重写.类型转换 1.继承简介 举一个简单的例子:笔分为很多种,比如毛笔.钢笔.圆珠笔等等,这些笔都有一些相同的属性比如长度.笔迹的粗细等等:但他们也有不同的特点 ...
- java类型转换答案,在java中支持两种类型的类型转换,自动类型转换和强制类型转换。父类转化为子类需要强制转换。...
在java中支持两种类型的类型转换,自动类型转换和强制类型转换.父类转化为子类需要强制转换. 更多相关问题 计算机病毒通过()传染扩散得极快,危害最大. 当一个现象的数量由小变大,另一个现象的数量相反 ...
- java整数能强转转字符,Java中数据类型默认转换和强制类型转换
默认转换: a:由低到高一次为:(byte short char )---int ---long ---float --- double b:注意:byte short char ...
- Struts2之类型转换
http://blog.csdn.net/xiazdong/article/details/7229682 一.Struts2 类型转换介绍 类型转换:解析HTTP请求参数,将Http请求参数赋值给A ...
- Struts2的类型转换(下)
Struts2提供的类型转换: Struts2提供的是一个名叫StrutsTypeConverter的抽象类,这个类实际上是DefaultTypeConverter的子类.当我们继承自该抽象类 时,要 ...
- java刘保_[SSH] Eclipse+Struts2的简单应用
终于要开始研究框架了,没有大神的指导,只能自己上网摸索着来,没有唯一对的方案,只能找到最适合自己的就可以了. 首先整理一下,代码是参考别人的代码,按照别人的版本有问题,大概整理了一下,自己重新弄了一个 ...
- Struts2 Date类型转换问题
来源:http://blog.csdn.net/cowboy324/article/details/6704716 在Struts2中,一般的内置类型都会在由系统自动进行转换.但是Date类型好像有时 ...
最新文章
- MJRefresh iphonx 显示问题
- asp正则替换链接实现伪静态效果
- 牛客 - 斐波那契和(杜教BM)
- 如何在Eclipse中显示行号
- android启动其他app的服务器,Android中通过外部程序启动App的三种方法
- python中文字体怎么设置_python matplotlib 中文字体设置
- vue从入门到开发--2-基本结构
- 浏览器了解(五)资源加载顺序
- 常见 HTTP/FTP/WebSocket 错误代码大全 - 转
- PTA-航空公司VIP客户查询
- 计算机一级三维饼图,计算机考试excel制作复合饼图的方法
- 聊聊千古名方逍遥丸【转载】
- python 重定向 网址错_Python URL重定向问题
- 什么是DDOS攻击?怎么抵抗DDOS攻击?
- MIME (多用途互联网邮件扩展类型)
- Idea 去掉 mapper.xml 文件的黄色、淡绿色警告
- idea debug教程启用Debug模式可以分析定位异常发生的位置
- springboot+thymeleaf模糊查询功能和分页实现以及input前端回显(前台到后台)
- 微信小程序---弹性盒子模型
- 从零开始写C++打怪小游戏(1)