Websphere中的角度EL表达式有什么问题?

Websphere中的角度EL表达式有什么问题?,websphere,Websphere,我对Java web应用程序使用完全服务器端的i18n机制 我们为java.text.MessageFormat.format函数创建了一个EL包装器,它将本地化模式和参数作为输入 我需要显示随用户语言(服务器端)和角度变量值变化的文本 考虑下面的例子 恩:“你好,{0}” 它:“再见,{0}” 现在{{vmApp.principal}}是'Bobby' 以下类型的表达式在Websphere中不起作用 ${acme:messageFormat1(messages.GREETING,'{{vm

我对Java web应用程序使用完全服务器端的i18n机制

我们为
java.text.MessageFormat.format
函数创建了一个EL包装器,它将本地化模式和参数作为输入

我需要显示随用户语言(服务器端)和角度变量值变化的文本

考虑下面的例子

  • 恩:“你好,{0}”
  • 它:“再见,{0}”
现在
{{vmApp.principal}}
'Bobby'

以下类型的表达式在Websphere中不起作用

${acme:messageFormat1(messages.GREETING,'{{vmApp.principal}}'}
错误是

[22/03/18 16.14.22:169 CET] 000000bc webapp        E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[/secure/admin/pages/process/detail.jsp]: com.ibm.ws.jsp.translator.JspTranslationException: JSPG0227E: Exception caught while translating /secure/admin/pages/process/detail.jsp:  
/secure/admin/pages/process/detail.jsp(8,9) --> JSPG0122E: Unable to parse EL function ${pnx:messageFormat1(messages.PROCESS_DETAIL_EXECUTION_STARTCTX,'{{vmApp.row.exceptionClass}.

                at com.ibm.ws.jsp.translator.visitor.validator.ELValidator.validateElFunction(ELValidator.java:505)
                at com.ibm.ws.jsp.translator.visitor.validator.ELValidator.validateELExpression(ELValidator.java:123)
                at com.ibm.ws.jsp.translator.visitor.validator.ValidateVisitor.visitJspELTextStart(ValidateVisitor.java:1268)
                at com.ibm.ws.jsp.translator.visitor.validator.ValidateVisitor.visitCDataTag(ValidateVisitor.java:887)
                at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:409)
                at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:419)
                at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:369)
                at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:419)
                at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:369)
                at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:419)
                at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:369)
                at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:419)
                at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:234)
                at com.ibm.ws.jsp.translator.visitor.JspVisitor.visit(JspVisitor.java:216)
我的研究指导我使用IBM,但我认为它不适用于我的案例,因为堆栈跟踪线是不同的。我也不使用保留变量名

是什么导致了这个问题

我想呈现以下HTML

  • 恩:“你好,{{vmApp.principal}”
  • 它:“再见,{{vmApp.principal}”

至于语法错误,具体来说,它不是有效的语法。Tomcat也将以类似的方式失败。这是因为,在其他开括号中未加修饰地使用括号{}被视为嵌套的“eval表达式”,该标准不支持,即参见EL 3.0规范第1.2.1节