当前位置: 首页>>代码示例>>Java>>正文


Java Expression.setValue方法代码示例

本文整理汇总了Java中org.springframework.expression.Expression.setValue方法的典型用法代码示例。如果您正苦于以下问题:Java Expression.setValue方法的具体用法?Java Expression.setValue怎么用?Java Expression.setValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.springframework.expression.Expression的用法示例。


在下文中一共展示了Expression.setValue方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: initializingCollectionElementsOnWrite

import org.springframework.expression.Expression; //导入方法依赖的package包/类
/**
 * SPR-6984: attempting to index a collection on write using an index that
 * doesn't currently exist in the collection (address.crossStreets[0] below)
 */
@Test
public void initializingCollectionElementsOnWrite() throws Exception {
	TestPerson person = new TestPerson();
	EvaluationContext context = new StandardEvaluationContext(person);
	SpelParserConfiguration config = new SpelParserConfiguration(true, true);
	ExpressionParser parser = new SpelExpressionParser(config);
	Expression expression = parser.parseExpression("name");
	expression.setValue(context, "Oleg");
	assertEquals("Oleg", person.getName());

	expression = parser.parseExpression("address.street");
	expression.setValue(context, "123 High St");
	assertEquals("123 High St", person.getAddress().getStreet());

	expression = parser.parseExpression("address.crossStreets[0]");
	expression.setValue(context, "Blah");
	assertEquals("Blah", person.getAddress().getCrossStreets().get(0));

	expression = parser.parseExpression("address.crossStreets[3]");
	expression.setValue(context, "Wibble");
	assertEquals("Blah", person.getAddress().getCrossStreets().get(0));
	assertEquals("Wibble", person.getAddress().getCrossStreets().get(3));
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:28,代码来源:EvaluationTests.java

示例2: limitCollectionGrowing

import org.springframework.expression.Expression; //导入方法依赖的package包/类
@Test
public void limitCollectionGrowing() throws Exception {
	TestClass instance = new TestClass();
	StandardEvaluationContext ctx = new StandardEvaluationContext(instance);
	SpelExpressionParser parser = new SpelExpressionParser( new SpelParserConfiguration(true, true, 3));
	Expression expression = parser.parseExpression("foo[2]");
	expression.setValue(ctx, "2");
	assertThat(instance.getFoo().size(), equalTo(3));
	expression = parser.parseExpression("foo[3]");
	try {
		expression.setValue(ctx, "3");
	} catch(SpelEvaluationException see) {
		assertEquals(SpelMessage.UNABLE_TO_GROW_COLLECTION, see.getMessageCode());
		assertThat(instance.getFoo().size(), equalTo(3));
	}
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:17,代码来源:EvaluationTests.java

示例3: setValueExpectError

import org.springframework.expression.Expression; //导入方法依赖的package包/类
/**
 * Call setValue() but expect it to fail.
 */
protected void setValueExpectError(String expression, Object value) {
	try {
		Expression e = parser.parseExpression(expression);
		if (e == null) {
			fail("Parser returned null for expression");
		}
		if (DEBUG) {
			SpelUtilities.printAbstractSyntaxTree(System.out, e);
		}
		StandardEvaluationContext lContext = TestScenarioCreator.getTestEvaluationContext();
		e.setValue(lContext, value);
		fail("expected an error");
	} catch (ParseException pe) {
		pe.printStackTrace();
		fail("Unexpected Exception: " + pe.getMessage());
	} catch (EvaluationException ee) {
		// success!
	}
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:23,代码来源:SetValueTests.java

示例4: setValue

import org.springframework.expression.Expression; //导入方法依赖的package包/类
protected void setValue(String expression, Object value) {
	try {
		Expression e = parser.parseExpression(expression);
		if (e == null) {
			fail("Parser returned null for expression");
		}
		if (DEBUG) {
			SpelUtilities.printAbstractSyntaxTree(System.out, e);
		}
		StandardEvaluationContext lContext = TestScenarioCreator.getTestEvaluationContext();
		assertTrue("Expression is not writeable but should be", e.isWritable(lContext));
		e.setValue(lContext, value);
		assertEquals("Retrieved value was not equal to set value", value, e.getValue(lContext,value.getClass()));
	} catch (EvaluationException ee) {
		ee.printStackTrace();
		fail("Unexpected Exception: " + ee.getMessage());
	} catch (ParseException pe) {
		pe.printStackTrace();
		fail("Unexpected Exception: " + pe.getMessage());
	}
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:22,代码来源:SetValueTests.java

示例5: testScenario_AddingYourOwnPropertyResolvers_1

import org.springframework.expression.Expression; //导入方法依赖的package包/类
/**
 * Scenario: add a property resolver that will get called in the resolver chain, this one only supports reading.
 */
@Test
public void testScenario_AddingYourOwnPropertyResolvers_1() throws Exception {
	// Create a parser
	SpelExpressionParser parser = new SpelExpressionParser();
	// Use the standard evaluation context
	StandardEvaluationContext ctx = new StandardEvaluationContext();

	ctx.addPropertyAccessor(new FruitColourAccessor());
	Expression expr = parser.parseRaw("orange");
	Object value = expr.getValue(ctx);
	assertEquals(Color.orange, value);

	try {
		expr.setValue(ctx, Color.blue);
		fail("Should not be allowed to set oranges to be blue !");
	} catch (SpelEvaluationException ee) {
		assertEquals(ee.getMessageCode(), SpelMessage.PROPERTY_OR_FIELD_NOT_WRITABLE_ON_NULL);
	}
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:23,代码来源:ExpressionLanguageScenarioTests.java

示例6: testScenario_AddingYourOwnPropertyResolvers_2

import org.springframework.expression.Expression; //导入方法依赖的package包/类
@Test
public void testScenario_AddingYourOwnPropertyResolvers_2() throws Exception {
	// Create a parser
	SpelExpressionParser parser = new SpelExpressionParser();
	// Use the standard evaluation context
	StandardEvaluationContext ctx = new StandardEvaluationContext();

	ctx.addPropertyAccessor(new VegetableColourAccessor());
	Expression expr = parser.parseRaw("pea");
	Object value = expr.getValue(ctx);
	assertEquals(Color.green, value);

	try {
		expr.setValue(ctx, Color.blue);
		fail("Should not be allowed to set peas to be blue !");
	}
	catch (SpelEvaluationException ee) {
		assertEquals(ee.getMessageCode(), SpelMessage.PROPERTY_OR_FIELD_NOT_WRITABLE_ON_NULL);
	}
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:21,代码来源:ExpressionLanguageScenarioTests.java

示例7: testAddingSpecificPropertyAccessor

import org.springframework.expression.Expression; //导入方法依赖的package包/类
@Test
// Adding a new property accessor just for a particular type
public void testAddingSpecificPropertyAccessor() throws Exception {
	SpelExpressionParser parser = new SpelExpressionParser();
	StandardEvaluationContext ctx = new StandardEvaluationContext();

	// Even though this property accessor is added after the reflection one, it specifically
	// names the String class as the type it is interested in so is chosen in preference to
	// any 'default' ones
	ctx.addPropertyAccessor(new StringyPropertyAccessor());
	Expression expr = parser.parseRaw("new String('hello').flibbles");
	Integer i = expr.getValue(ctx, Integer.class);
	assertEquals((int) i, 7);

	// The reflection one will be used for other properties...
	expr = parser.parseRaw("new String('hello').CASE_INSENSITIVE_ORDER");
	Object o = expr.getValue(ctx);
	assertNotNull(o);

	expr = parser.parseRaw("new String('hello').flibbles");
	expr.setValue(ctx, 99);
	i = expr.getValue(ctx, Integer.class);
	assertEquals((int) i, 99);

	// Cannot set it to a string value
	try {
		expr.setValue(ctx, "not allowed");
		fail("Should not have been allowed");
	} catch (EvaluationException e) {
		// success - message will be: EL1063E:(pos 20): A problem occurred whilst attempting to set the property
		// 'flibbles': 'Cannot set flibbles to an object of type 'class java.lang.String''
		// System.out.println(e.getMessage());
	}
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:35,代码来源:PropertyAccessTests.java

示例8: setGenericPropertyContainingMap

import org.springframework.expression.Expression; //导入方法依赖的package包/类
@Test
public void setGenericPropertyContainingMap() {
	Map<String, String> property = new HashMap<String, String>();
	property.put("foo", "bar");
	this.property = property;
	SpelExpressionParser parser = new SpelExpressionParser();
	Expression expression = parser.parseExpression("property");
	assertEquals("@org.springframework.expression.spel.IndexingTests$FieldAnnotation java.util.HashMap<?, ?>", expression.getValueTypeDescriptor(this).toString());
	assertEquals(property, expression.getValue(this));
	expression = parser.parseExpression("property['foo']");
	assertEquals("bar", expression.getValue(this));
	expression.setValue(this, "baz");
	assertEquals("baz", expression.getValue(this));
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:15,代码来源:IndexingTests.java

示例9: setPropertyContainingMap

import org.springframework.expression.Expression; //导入方法依赖的package包/类
@Test
public void setPropertyContainingMap() {
	Map<Integer, Integer> property = new HashMap<Integer, Integer>();
	property.put(9, 3);
	this.parameterizedMap = property;
	SpelExpressionParser parser = new SpelExpressionParser();
	Expression expression = parser.parseExpression("parameterizedMap");
	assertEquals("java.util.HashMap<java.lang.Integer, java.lang.Integer>", expression.getValueTypeDescriptor(this).toString());
	assertEquals(property, expression.getValue(this));
	expression = parser.parseExpression("parameterizedMap['9']");
	assertEquals(3, expression.getValue(this));
	expression.setValue(this, "37");
	assertEquals(37, expression.getValue(this));
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:15,代码来源:IndexingTests.java

示例10: setPropertyContainingMapAutoGrow

import org.springframework.expression.Expression; //导入方法依赖的package包/类
@Test
public void setPropertyContainingMapAutoGrow() {
	SpelExpressionParser parser = new SpelExpressionParser(new SpelParserConfiguration(true, false));
	Expression expression = parser.parseExpression("parameterizedMap");
	assertEquals("java.util.Map<java.lang.Integer, java.lang.Integer>", expression.getValueTypeDescriptor(this).toString());
	assertEquals(property, expression.getValue(this));
	expression = parser.parseExpression("parameterizedMap['9']");
	assertEquals(null, expression.getValue(this));
	expression.setValue(this, "37");
	assertEquals(37, expression.getValue(this));
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:12,代码来源:IndexingTests.java

示例11: setGenericPropertyContainingList

import org.springframework.expression.Expression; //导入方法依赖的package包/类
@Test
public void setGenericPropertyContainingList() {
	List<Integer> property = new ArrayList<Integer>();
	property.add(3);
	this.property = property;
	SpelExpressionParser parser = new SpelExpressionParser();
	Expression expression = parser.parseExpression("property");
	assertEquals("@org.springframework.expression.spel.IndexingTests$FieldAnnotation java.util.ArrayList<?>", expression.getValueTypeDescriptor(this).toString());
	assertEquals(property, expression.getValue(this));
	expression = parser.parseExpression("property[0]");
	assertEquals(3, expression.getValue(this));
	expression.setValue(this, "4");
	assertEquals("4", expression.getValue(this));
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:15,代码来源:IndexingTests.java

示例12: setGenericPropertyContainingListAutogrow

import org.springframework.expression.Expression; //导入方法依赖的package包/类
@Test
public void setGenericPropertyContainingListAutogrow() {
	List<Integer> property = new ArrayList<Integer>();
	this.property = property;
	SpelExpressionParser parser = new SpelExpressionParser(new SpelParserConfiguration(true, true));
	Expression expression = parser.parseExpression("property");
	assertEquals("@org.springframework.expression.spel.IndexingTests$FieldAnnotation java.util.ArrayList<?>", expression.getValueTypeDescriptor(this).toString());
	assertEquals(property, expression.getValue(this));
	expression = parser.parseExpression("property[0]");
	try {
		expression.setValue(this, "4");
	} catch (EvaluationException e) {
		assertTrue(e.getMessage().startsWith("EL1053E"));
	}
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:16,代码来源:IndexingTests.java

示例13: setPropertyContainingList

import org.springframework.expression.Expression; //导入方法依赖的package包/类
@Test
public void setPropertyContainingList() {
	List<Integer> property = new ArrayList<Integer>();
	property.add(3);
	this.parameterizedList = property;
	SpelExpressionParser parser = new SpelExpressionParser();
	Expression expression = parser.parseExpression("parameterizedList");
	assertEquals("java.util.ArrayList<java.lang.Integer>", expression.getValueTypeDescriptor(this).toString());
	assertEquals(property, expression.getValue(this));
	expression = parser.parseExpression("parameterizedList[0]");
	assertEquals(3, expression.getValue(this));
	expression.setValue(this, "4");
	assertEquals(4, expression.getValue(this));
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:15,代码来源:IndexingTests.java

示例14: testConvert

import org.springframework.expression.Expression; //导入方法依赖的package包/类
@Test
public void testConvert() {
	Foo root = new Foo("bar");
	Collection<String> foos = Collections.singletonList("baz");

	StandardEvaluationContext context = new StandardEvaluationContext(root);

	// property access
	Expression expression = parser.parseExpression("foos");
	expression.setValue(context, foos);
	Foo baz = root.getFoos().iterator().next();
	assertEquals("baz", baz.value);

	// method call
	expression = parser.parseExpression("setFoos(#foos)");
	context.setVariable("foos", foos);
	expression.getValue(context);
	baz = root.getFoos().iterator().next();
	assertEquals("baz", baz.value);

	// method call with result from method call
	expression = parser.parseExpression("setFoos(getFoosAsStrings())");
	expression.getValue(context);
	baz = root.getFoos().iterator().next();
	assertEquals("baz", baz.value);

	// method call with result from method call
	expression = parser.parseExpression("setFoos(getFoosAsObjects())");
	expression.getValue(context);
	baz = root.getFoos().iterator().next();
	assertEquals("baz", baz.value);
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:33,代码来源:ExpressionWithConversionTests.java

示例15: testScenario_UsingADifferentRootContextObject

import org.springframework.expression.Expression; //导入方法依赖的package包/类
/**
 * Scenario: using your own root context object
 */
@Test
public void testScenario_UsingADifferentRootContextObject() throws Exception {
	// Create a parser
	SpelExpressionParser parser = new SpelExpressionParser();
	// Use the standard evaluation context
	StandardEvaluationContext ctx = new StandardEvaluationContext();

	TestClass tc = new TestClass();
	tc.setProperty(42);
	tc.str = "wibble";
	ctx.setRootObject(tc);

	// read it, set it, read it again
	Expression expr = parser.parseRaw("str");
	Object value = expr.getValue(ctx);
	assertEquals("wibble", value);
	expr = parser.parseRaw("str");
	expr.setValue(ctx, "wobble");
	expr = parser.parseRaw("str");
	value = expr.getValue(ctx);
	assertEquals("wobble", value);
	// or using assignment within the expression
	expr = parser.parseRaw("str='wabble'");
	value = expr.getValue(ctx);
	expr = parser.parseRaw("str");
	value = expr.getValue(ctx);
	assertEquals("wabble", value);

	// private property will be accessed through getter()
	expr = parser.parseRaw("property");
	value = expr.getValue(ctx);
	assertEquals(42, value);

	// ... and set through setter
	expr = parser.parseRaw("property=4");
	value = expr.getValue(ctx);
	expr = parser.parseRaw("property");
	value = expr.getValue(ctx);
	assertEquals(4,value);
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:44,代码来源:ExpressionLanguageScenarioTests.java


注:本文中的org.springframework.expression.Expression.setValue方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。