问题标签 [spring-el]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2943 浏览

java - 访问 ID 中带有点 (.) 的 bean

在流定义中,我试图访问一个在其 ID 中有一个点的 bean

(例子:<evaluate expression="bus.MyServiceFacade.someAction()" />

但是,它不起作用。SWF 试图找到一个 bean“总线”。

最初,我通过使用辅助 bean 加载所需的 bean 来克服它,但解决方案不优雅且不舒服。使用别名也是不可能的,因为 bean 是大型系统的一部分,我无法篡改它们。

简而言之,没有一个解决方案允许我使用原始名称直接引用 bean。这在当前的 SWF 版本中是否可能?

0 投票
2 回答
1922 浏览

c# - 引用对象定义的 Spring.NET 表达式

我正在尝试从表达式中引用我在 Spring 配置文件中定义的另一个对象。具体来说,我正在尝试使用调用方法的表达式的值填充属性,然后填充从该方法返回的对象的属性。
我尝试了以下方法(名称已更改):

我在配置文件中定义的另一个对象的引用在哪里,Some.Object.Id例如:

但我的应用程序无法以解析异常开始expecting "COLON", found '}'。我认为它需要一个命名空间,但我没有找到这方面的文档。

我已经尝试了几件事,但到处都遇到了死胡同。我最初尝试了我们在其他地方用于不可为空类型的MethodInvokingFactoryObject和的组合,但是对于实际上是因为 Spring 将对象工厂视为失败(通常是这样)返回的可空类型,这会失败。PropertyRetrievingFactoryObjectnullnull

0 投票
3 回答
11477 浏览

spring - 使用 spring3 @Value 访问 PropertyPlaceholderConfigurer 值?

当我@Value的属性源是PropertyPlaceholderConfigurer. 有人知道怎么做吗 ?

0 投票
9 回答
61388 浏览

java - Spring 3 表达式语言如何与属性占位符交互?

Spring 3 引入了一种新的表达式语言(SpEL),可以在 bean 定义中使用。语法本身是相当明确的。

尚不清楚的是,如果有的话,SpEL 如何与先前版本中已经存在的属性占位符语法进行交互。SpEL 是否支持属性占位符,或者我是否必须结合两种机制的语法并希望它们结合?

让我举一个具体的例子。我想使用属性语法${x.y.z},但添加了elvis 运算符提供的“默认值”语法来处理${x.y.z}未定义的情况。

我尝试了以下语法但没有成功:

  • #{x.y.z?:'defaultValue'}
  • #{${x.y.z}?:'defaultValue'}

第一个给我

在“org.springframework.beans.factory.config.BeanExpressionContext”类型的对象上找不到字段或属性“x”

这表明 SpEL 不将其识别为属性占位符。

第二个语法抛出一个异常,表示无法识别占位符,因此正在调用占位符解析器但由于未定义属性,因此按预期失败。

文档没有提到这种交互,所以要么这样的事情是不可能的,要么没有记录。

有人设法做到这一点吗?


好的,我为此想出了一个小型的、独立的测试用例。这一切都按原样工作:

首先,bean定义:

然后,平凡的 bean 类:

包装测试;

最后,测试用例:

挑战 - 在 bean 文件中提出一个 SpEL 表达式,它允许我在${x.y.z}无法解析的情况下指定默认值,并且此默认值必须指定为表达式的一部分,而不是在另一个属性集中外部化。

0 投票
2 回答
813 浏览

spring-security - Spring:使用什么解析器来解析安全表达式

我想解析诸如hasRole等之类的标准安全表达式以在变量中(在 JSP 中)获取它们的值。我怎样才能做到这一点?SpelExpressionParser是标准的 EL 解析器,但我认为它不会解析安全表达式。

0 投票
2 回答
8109 浏览

spring - 我可以在 Spring EL 中使用属性占位符吗?

在升级到 Spring 3 之前,我的 applicationContext.xml 文件中有这个:

其中 ${validateRequest) 和 ${validateRequest) 指的是我的属性文件中可能定义或未定义的属性。

在 Spring 2 中,如果属性文件中不存在这些属性,则不会调用 bean 上的设置器,因此使用 PolePayloadValidatingInterceptor 中硬编码的默认值。

升级到 Spring 3 后,行为似乎有所不同:如果属性文件中不存在属性,则会出现以下异常:

我尝试涉足 Spring EL,但以下似乎不起作用:

始终使用 Elvis 运算符之后的值,即使在 proeprties 文件中定义了属性也是如此。有趣的是语法被接受。

有什么建议么?

0 投票
1 回答
9540 浏览

java - 在 spring-webflow 2.1 中使用 SPEL 测试空字符串

我有一个用例,我想设置我在会话中保留并添加到 . 我在 flowScope 中保留“myModel”

现在我想设置对象 myModel 的 String 属性,如果它是空的,所以我想做这样的事情:

其中SuggestName() 是myModel 类的实例方法,它返回一个字符串SPEL 在评估表达式时告诉我以下信息:

所以我猜 SPEL 不像标准 EL 那样知道函数“空”(例如检查空字符串)

在弹簧手册(6.5.9 函数)中,我读到我可以注册自己的函数。这样我就可以注册一个 emptyString 函数并将其委托 StringUtils.isEmpty()

我该怎么做?这是正确的方法吗?我可以在 web-flow 手册中阅读如何隐式注册表达式解析器,但如何将函数实际添加到 StandardEvaluationContext 对我来说是个谜。

任何帮助表示赞赏

0 投票
1 回答
163 浏览

java - 我可以使用什么模式?

我正在使用 Selenium 2 实现一个项目,该项目目前不能很好地支持确认对话框。

有一个解决此限制的方法,您只需覆盖 window.confirm 以返回您需要为特定测试用例返回的值。

可以设置并执行以下字符串:

作为模板方法,这似乎非常简单,但是我在同一个页面对象上有多个测试用例,在与页面交互后我需要确认/拒绝。因此,使用单一方法一次完成所有这些测试是行不通的。

将命令注入到测试方法中可能是有意义的,但我在这里的最终目标是允许我们技术较少的人员通过将一些字符串写入 XML 来创建测试,然后使用 Spring 表达式语言执行它;这消除了编写测试的一些“容易”。

主要需要注意的是,由于需求,该测试套件实际上是一个应用程序,而不是一组单独运行的测试用例。如果它们是小测试用例会容易得多,因为我可以扩展一个抽象测试用例并使用相同的设置和拆卸例程。

我最终要寻找的是沿着这个模板方法的东西,但我需要能够在单个页面对象上支持多个测试用例。

0 投票
3 回答
16947 浏览

java - 如何在 SpEL 中转义值?

我正在用 XML 编写一些 SpEL 语句,但无法让解析器确定何时需要转义字符。

我尝试了以下方法:

但是,添加 \' 似乎并没有逃脱该单引号,并且我一直收到解析器异常。

有没有办法逃避这些价值观?

0 投票
2 回答
8482 浏览

java - 在 OGNL 上使用 Spring EL 的好处?

我想知道究竟是什么促使 Spring 在其 Web 流产品中使用 Spring EL 而不是 OGNL:

http://static.springsource.org/spring-webflow/docs/2.2.x/reference/htmlsingle/spring-webflow-reference.html#el-language-choices

使用OGNL,我可以直接通过流程动态创建简单的类和执行方法等。我知道在实际的网页模板(即 JSP)中这样做不是一个好习惯,因为它们是基于表示的,但是 Web 流控制您的程序的逻辑,我发现在那里有效使用 OGNL 的能力非常方便。此外,您可以测试流程以确保其轻松运行。

所以,两个问题:

  1. 在 OGNL 上使用 Spring EL 有什么主要好处,尤其是在 Spring Webflow 的上下文中?

  2. 您可以使用 Spring EL 创建对象吗?