动态字符串连接结果为 Long
Dynamic string concatenation results in Long
我目前正面临一个奇怪的 JSF 问题,更准确地说是名为 XPages 的残缺 IBM 方言。
基本上我想要的是遍历一个通过 SSJS 设置的数组,因为 EL3 不是 Xpages 中的东西。到目前为止,太糟糕了。
我必须遵循源代码:
<xp:repeat rows="3" value="#{javascript: ['1','2','3']}" var="i">
<xp:div>
<xp:text styleClass="columnLabel" value="Bei Zahlung innerhalb von "></xp:text>
<xp:text value=" Tagen, "/>
<xp:text style="font-weight: bold" value="#{crmDoc['SKONTO_PZ'+i]}"/>
<xp:text value=" % Skonto "/>
<div class="cleaner4px"></div>
</xp:div>
</xp:repeat>
i
的类型是 java.lang.String
,但是,在 EL 中我收到以下错误(翻译自德语):
Exception while trying to convert String "SKONTO_PZ" to type "java.lang.Long"
部分堆栈跟踪:
com.sun.faces.el.impl.ElException: Ausnahmefehler beim Versuch, String "SKONTO_PZ" in Typ "java.lang.Long" zu konvertieren
com.sun.faces.el.impl.Coercions.coerceToPrimitiveNumber(Coercions.java:536)
com.sun.faces.el.impl.Coercions.applyArithmeticOperator(Coercions.java:832)
com.sun.faces.el.impl.ArithmeticOperator.apply(ArithmeticOperator.java:101)
com.sun.faces.el.impl.BinaryOperatorExpression.evaluate(BinaryOperatorExpression.java:189)
com.sun.faces.el.impl.ArraySuffix.evaluateIndex(ArraySuffix.java:141)
com.sun.faces.el.impl.ArraySuffix.evaluate(ArraySuffix.java:170)
com.sun.faces.el.impl.ComplexValue.evaluate(ComplexValue.java:163)
com.sun.faces.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:257)
com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:150)
com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:134)
javax.faces.component.UIOutput.getValue(UIOutput.java:159)
com.ibm.xsp.util.FacesUtil.convertValue(FacesUtil.java:1121)
我只是不明白他到底为什么要把两个字符串加上一个加号当作长。
由于对您的 post 的评论暗示,XPages EL 对此没有真正正确的语法:+
是加法,然后我认为没有字符串连接操作员。最快的方法是为该绑定切换到 SSJS。
或者,如果您将 xp:div
设为 xp:panel
,您可以附加一些 xp:dataContexts
并执行 BalusC 的建议。
我目前正面临一个奇怪的 JSF 问题,更准确地说是名为 XPages 的残缺 IBM 方言。
基本上我想要的是遍历一个通过 SSJS 设置的数组,因为 EL3 不是 Xpages 中的东西。到目前为止,太糟糕了。
我必须遵循源代码:
<xp:repeat rows="3" value="#{javascript: ['1','2','3']}" var="i">
<xp:div>
<xp:text styleClass="columnLabel" value="Bei Zahlung innerhalb von "></xp:text>
<xp:text value=" Tagen, "/>
<xp:text style="font-weight: bold" value="#{crmDoc['SKONTO_PZ'+i]}"/>
<xp:text value=" % Skonto "/>
<div class="cleaner4px"></div>
</xp:div>
</xp:repeat>
i
的类型是 java.lang.String
,但是,在 EL 中我收到以下错误(翻译自德语):
Exception while trying to convert String "SKONTO_PZ" to type "java.lang.Long"
部分堆栈跟踪:
com.sun.faces.el.impl.ElException: Ausnahmefehler beim Versuch, String "SKONTO_PZ" in Typ "java.lang.Long" zu konvertieren
com.sun.faces.el.impl.Coercions.coerceToPrimitiveNumber(Coercions.java:536)
com.sun.faces.el.impl.Coercions.applyArithmeticOperator(Coercions.java:832)
com.sun.faces.el.impl.ArithmeticOperator.apply(ArithmeticOperator.java:101)
com.sun.faces.el.impl.BinaryOperatorExpression.evaluate(BinaryOperatorExpression.java:189)
com.sun.faces.el.impl.ArraySuffix.evaluateIndex(ArraySuffix.java:141)
com.sun.faces.el.impl.ArraySuffix.evaluate(ArraySuffix.java:170)
com.sun.faces.el.impl.ComplexValue.evaluate(ComplexValue.java:163)
com.sun.faces.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:257)
com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:150)
com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:134)
javax.faces.component.UIOutput.getValue(UIOutput.java:159)
com.ibm.xsp.util.FacesUtil.convertValue(FacesUtil.java:1121)
我只是不明白他到底为什么要把两个字符串加上一个加号当作长。
由于对您的 post 的评论暗示,XPages EL 对此没有真正正确的语法:+
是加法,然后我认为没有字符串连接操作员。最快的方法是为该绑定切换到 SSJS。
或者,如果您将 xp:div
设为 xp:panel
,您可以附加一些 xp:dataContexts
并执行 BalusC 的建议。