openxava
博客

2023年11月20号

OpenXava 7.2 已发布

在这 OpenXava 的新版本里包含了许多令人兴奋的更新,我们终于有时间新增大家长期以来一直要求的功能,例如列表模式中的日历、@Mask 注解、可编辑值的组合 ,一个用于清除引用的按钮,等等。

此外,我们付出了巨大的努力来增强应用程序的网络安全性。因此,如果您的应用程序可以在网络上被大众和各种黑客访问,那么它们现在将更加安全。

要更新至此版本,请在项目中的 pom.xml 文件中更改 openxava.version 属性的值,如下:

<properties>
    <openxava.version>7.2</openxava.version>
    ...
</properties>

然后重编译您的项目:

  • 在 OpenXava Studio 中:
    • 在项目中点击鼠标右键 > Run As > Maven clean
    • 在项目中点击鼠标右键 > Run As > Maven install
  • 或使用命令行: mvn clean package

请查看迁移指南

日历中的周/日

当实体中的 Timestamp、Date 属性带有 @DateTime 注解时,那么在日历的视图中,将显示周或日的选项。周视图如下:



日视图如下:


在这两个视图中,您可以点击任何小时来创建一个具有预设日期和时间的记录。

此外,我们对日历进行了以下改进:

  • 在日历中的记录上新增文字提示。
  • 在日历中为每日新增加号图标,用于创建新记录。

更多网络安全改进

我们持续改进 OpenXava 生成的 Web 界面,使其更加安全且更不易受到黑客攻击。以下是安全功能改进的清单:

  • 在 xava.properties 中新增 turnOffWebSecurity 属性,用于禁用 web 标头中的CSP使用。
  • 从浏览器控制台中删除了 CSP 产生的错误。
  • 从 OpenXava 代码中删除了所有 inline JavaScript events。
  • 从 OpenXava 代码中删除了 href="javascript:" 的链接。
  • JavaScript 的 inline events 不再支持自定义视图和编辑器。
  • href="javascript:" 的链接不再支持自定义视图和编辑器。
  • 在 JavaScript 代码中最小化了 eval() 的使用。
  • 由于安全原因,删除了旧的 Yahoo JavaScript 库。
  • 删除或更新了所有有漏洞的第三方 JavaScript 库。
如果您的应用程序是公共的,或者在安全方面至关重要的环境中运行,我们建议您更新到7.2版本。

@Tree 集合的新 editor

我们已经更新使用 @Tree 注解时的 JavaScript 库。它看起来是这样:



除了外观比以前的更现代之外,它没有安全方面漏洞,并且可以使用拖放来移动树中的节点。

Java 21

众所周知,Java 最新 LTS 版本 Java 21 于今年 9 月发布。我们相信您中的一些人也迫不及待地想尝试它。我们已经做了所有必要的适应,例如更新 Lombok 库或调整日期格式,以确保 Java 21 与您的 OpenXava 应用程序无缝协同工作。

要使用它,您只需修改项目的 pom.xml 文件以使用 Java 21:

<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>

如果您使用 OpenXava Studio,您必须在 Window > Preferences > Java > Installed JREs 中注册 JDK 21。完成后, 配置 Maven 任务和运行时设置,以便使用 Java 21 进行编译和运行应用程序。

您可以在我们的文档中找到如何在 OpenXava 中使用 Java 21 的详细指南。

升级的库

我们已经升级了以下第三方库:

  • JasperReports 和 JasperReports Fonts 升级到 6.20.6。
  • jQuery 升级到 3.7.1。
  • jQuery UI 升级到 1.13.2。
  • JUnit 升级到 4.13.2。
  • Commons IO 升级到 2.15.0。
  • POI 和 POI OOXML 升级到 5.2.4。
  • Groovy 升级到 4.0.15。
  • JSoup 升级到 1.16.2。
  • HtmlUnit 升级到 3.7.0。
  • PdfBox 升级到 2.0.30。
  • JAXB 升级到 4.0.4。
  • Lombok 升级到 1.18.30。
  • 开发中使用的嵌入式 Tomcat 升级到 9.0.82。
  • Jersey client、 hk2、 media 升级到 2.41。
  • Log4j API 和 core 升级到 2.21.1。
  • 升级文档和创新项目中的 MySQL、Oracle、AS/400 和 Microsoft SQL Server 版本。

其他改进

我们在其他方面也做了很多改进:

  • 在自定义列表对齐到右侧时删除和重命名列图标。
  • IAccessTrackerProvider 中的新方法 executed(),因此现在执行动作时可以追踪。
  • 从 HtmlUnitUtils 中删除 getHrefAttribute() 方法。

错误修复

尽管这不是一个维护版本,但我们进行了一些修复:

  • 修复从列表中移除带有计算属性的列时,右侧会留下一个空白列。
  • 修复 takes-long=true 的默认动作,如果用户按 ENTER 键,不会显示长时间图像。
  • 修复当使用 inNewWindow() 的 IForwardAction,在按 ENTER 时不会在新窗口中打开,即使它是默认动作。

blog comments powered by Disqus

English - Español