当前位置: 首页 > 面试题库 >

如何以编程方式设置-Dorg.apache.el.parser.COERCE_TO_ZERO = false

仲孙凡
2023-03-14
问题内容

这个问题类似于:

jsf:在UI中绑定到inputtext的integer属性在提交时设置为零

但是我对解决方案并不完全满意。上下文是相同的:我有一个Web表单,需要一个Integer值。如果文本框为空,我希望我的Integer字段为“null”,但是EL Parser会自动将我的id字段设置为“ 0”。

我可以通过在本地Tomcat VM中设置JVM参数来解决此问题:

-Dorg.apache.el.parser.COERCE_TO_ZERO = false

但是,这不适用于我们客户的计算机。是否可以设置/更改此JVM参数“ in-code”。

更新: 我发现有人要求这样做,但是如果其他人有其他解决方法,我也想听听。

https://issues.apache.org/bugzilla/show_bug.cgi?id=48813

更新2: 我无法将值从“ 0”改回“ null”,因为我的应用程序应将“ 0”视为实际ID。因此,我需要在运行时知道id文本框是否为空。


问题答案:

您可以使用编程设置系统属性System#setProperty()

System.setProperty("org.apache.el.parser.COERCE_TO_ZERO", "false");

但是,您需要确保 初始化JSF / EL 之前 已设置此设置。最好的地方是ServletContextListener

public class Config implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent event) {
        System.setProperty("org.apache.el.parser.COERCE_TO_ZERO", "false");
    }

    @Override
    public void contextDestroyed(ServletContextEvent event) {
        // NOOP
    }

}

使用或在已经使用Servlet 3.0(Tomcat7等)时将其注册为<listener>中的注释。web.xml``@WebListener



 类似资料:
  • 问题内容: 我的问题很简单 如何以编程方式设置我的按钮layout_gravity? 我在互联网上找到了它,但它只是抛出了一个Nullpointer异常: 有什么办法吗? 问题答案: Java Kotlin 有关重力值以及如何设置重力,请检查“重力”。 基本上,您应该选择依赖于父项。可以是等等。

  • 问题内容: 我正在使用来自Android百分比支持包的PercentRelativeLayout。这就是我的布局。 我想以编程方式更改高度。我该如何使用或其他方式进行操作。 问题答案: 您要设置一个新的百分比值吗?如果是,则需要:

  • 问题内容: 我有一个奇怪的问题。我试图以编程方式将dataSource分配给表。 我已使用界面生成器在ViewController中为其创建了一个和IBOutlet。我创建了一个实现的类。我将表的设置为dataSource的实例。一切都会编译并正常运行,直到设置dataSource的行在运行时执行。 错误是并且定义线突出显示。 有什么想法为什么我得到这个运行时错误?我正在Swift中使用XCode

  • 服务器时间在单击按钮事件中自动设置为我的设备。

  • 我正在使用AutoLayout开发iPad应用程序,如果用户启用某个模式(“平视”模式),我希望只支持纵向(或纵向倒置)方向,而且,如果设备处于横向,我希望自动切换到纵向模式。 在顶视图控制器中,我有以下内容: 根据我在这里其他地方看到的答案,答案似乎是我应该使用“application SetStatusBaroOrientation”。因此,在用户选择“抬头”模式的方法中,我包括: 然而,这似

  • 问题内容: 如何以编程方式设置媒体播放器的音量。我将其用于警报通知。非常感谢您的任何帮助,并在此先感谢。 问题答案: 使用 AudioManager ,您可以简单地控制媒体播放器的音量。 也来自MediaPlayer(但我没有尝试过) 由于:API级别1 设置此播放器的音量。建议使用此API来平衡应用程序中音频流的输出。除非您正在编写用于控制用户设置的应用程序,否则应优先使用此API来代替setS