【问题标题】:Property or field 'httpServletRequest' cannot be found on object of type 'org.springframework.webflow.engine.impl.RequestControlContextImpl'在“org.springframework.webflow.engine.impl.RequestControlContextImpl”类型的对象上找不到属性或字段“httpServletRequest”
【发布时间】:2019-03-10 21:59:02
【问题描述】:

我有一个检查用户 cookie 的注册流程,为此我需要处理 HttpServletRequest。我创建了一个方法,它将 HttpServletRequest 作为参数应用,并且我还有一个决策状态,它将请求发送到我的方法。

我的方法:

public Boolean checkCartOnExisting(HttpServletRequest request) {
    currentCookie =  Arrays.stream(request.getCookies()).filter(cok -> cok.getName().equals("book_cart")).findFirst().get();
    return Arrays.stream(request.getCookies()).anyMatch((cookie) -> cookie.getName() == "book_cart");
}

我的决策状态:

<decision-state id="checkCart">
    <if test="orderFlowService.checkCartOnExisting(httpServletRequest)" then="addUserWithCart" else="saveUser" />
</decision-state>

当我运行我的程序时,我得到了这个错误:

   org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field 'httpServletRequest' cannot be found on object of type 'org.springframework.webflow.engine.impl.RequestControlContextImpl' - maybe not public or not valid?
org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:217)
org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:104)
org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:91)
org.springframework.expression.spel.ast.MethodReference.getArguments(MethodReference.java:163)
org.springframework.expression.spel.ast.MethodReference.getValueRef(MethodReference.java:80)
org.springframework.expression.spel.ast.CompoundExpression.getValueRef(CompoundExpression.java:68)
org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:89)
org.springframework.expression.spel.ast.SpelNodeImpl.getTypedValue(SpelNodeImpl.java:114)
org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:300)
org.springframework.binding.expression.spel.SpringELExpression.getValue(SpringELExpression.java:94)
org.springframework.webflow.engine.support.DefaultTransitionCriteria.test(DefaultTransitionCriteria.java:48)
org.springframework.webflow.engine.Transition.matches(Transition.java:185)
org.springframework.webflow.engine.TransitionSet.getTransition(TransitionSet.java:124)
org.springframework.webflow.engine.TransitionableState.getRequiredTransition(TransitionableState.java:88)
org.springframework.webflow.engine.DecisionState.doEnter(DecisionState.java:51)
org.springframework.webflow.engine.State.enter(State.java:194)

【问题讨论】:

    标签: java spring spring-webflow


    【解决方案1】:

    在你的决策状态下,你可以使用externalContext.nativeRequest

    <decision-state id="checkCart">
        <if test="orderFlowService.checkCartOnExisting(externalContext.nativeRequest)" then="addUserWithCart" else="saveUser"/>
    </decision-state>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-10
      • 2019-12-12
      • 1970-01-01
      • 2022-06-29
      • 1970-01-01
      • 2014-04-27
      • 2012-03-04
      • 1970-01-01
      相关资源
      最近更新 更多