当前位置: 首页 > 知识库问答 >
问题:

当SpEL评估在WebFlow中无法正确评估时,如何调试它?

柳深
2023-03-14

我正在使用Spring WebFlow 2.5.0,但是我的SpEL表达式没有得到正确的计算。我想我一定是做了什么与我的WebFlow配置或SpEL错误,但我不确定哪个。

我的登录流中有以下决策状态。xml:

<decision-state id="submitChallenge">
    <on-entry>
        <evaluate expression="authenticationService.respondToChallenge(externalContext.nativeRequest, authRequest)"  result="flowScope.challengeName" result-type="org.springframework.webflow.execution.Event"/>
    </on-entry>
    <if test="flowScope.challengeName == 'success'" then="loginComplete" else="answerChallenge"/>
</decision-state>

但是,即使我的响应ToChallenge()方法返回一个Event.success(),我也从未转换到login完整状态。测试结果似乎总是错误的。

是我的SpEL错了,还是我做评估/测试的方式错了?如何调试SpEL评估以查看发生了什么?

我尝试将调试点放在组织中。springframework。结合表示斯佩尔。SpringELExpression类,但当我在执行getValue()/等时尝试跟踪逻辑时,我有点不知所措。我所能看到的是,它的计算结果始终为false。

共有1个答案

方飞鸣
2023-03-14

在更仔细地使用调试器之后,我看到我的流cope.challengeName成功的类型不同。因此Spring在表达式计算上返回false,因为它们是不同类型的。

 类似资料:
  • 评估可能的员工,却没有得到它应得的能量。一个糟糕的雇佣,就像糟糕的婚姻,是非常糟糕的。每个人首要的一部分精力应该投入到招聘上,尽管这很少发生。 有不同的面试风格。有的是折磨人的,设计用来把候选人放在巨大压力下。这是为了这样一个有用的目的:在压力下折射出性格缺陷和弱点。候选人对待面试官不会比对待他们自己更诚实,而且,人的自欺能力是令人惊奇的。 你应当,最少,对候选人进行两个小时的与口头考核等价的技术

  • 问题内容: : 1 < 2 < 3 true : 3 > 2 > 1 false … … : 3 > 2 && 2 > 1 true 也许我真的在考虑问题,但是我认为它们都会评估为真。为什么不呢? 问题答案: 因为评估为小于, 但评估为不大于

  • 我在查询两个Oracle数据库时遇到问题。 查询是: (NULL实际上是一个参数,传递给查询,查询可能为空,所以我缩短了查询)。 在生产数据库上,它工作正常,响应为NULL。 在dev DB上,我发现了一个错误,即TRUNC不能应用于NUMBER,需要DATE(ORA-00932)。 显然,生产数据库跳过了OR之后条件中的所有内容,开发人员执行OR之后的部分。 我确实知道通过将CAST(MY_PA

  • 问题内容: 我如何创建一些简单的ajax评级,如本页http://watir.com/documentation/所示?每个访问者都应该能够评分,我不需要设置权限。我想将评级存储在列中。因此,用户可以按评分排序。请举一个详细的例子。我不是JavaScript专家。 我找到了一个从头开始创建评分的示例。但是它授权用户。有人可以向我显示创建没有评分者(用户)的评分的指南吗?它不仅应存储值,还应计算票数

  • 问题内容: 我正在尝试以下代码,该代码向RDD中的每一行添加一个数字,并使用PySpark返回RDD列表。 输入文件(sample.txt)中的内容为: 我期待这样的输出(将rdd中的数字分别添加0、1、2): 而实际输出是: 这意味着无论 范围(4) 为何,该理解仅将值3用于变量i 。 为什么会发生这种现象? 问题答案: 它的发生是由于Python的后期绑定,而不是特定于(Py)Spark的。将

  • 校验者: 翻译者: @李孟禹 通常,解决机器学习问题的最困难的部分可能是找到恰当的的评估器(estimator)。 不同的评估器更适合不同类型的数据和不同的问题。 下面的流程图是一些粗略的指导,可以让用户根据自己的数据来选择应该尝试哪些评估器。 点击下图的任何评估器,查看其文档。