Expr (attribute of property)

From JRapid

(Redirected from Expr value property)
Jump to: navigation, search

expr is an attribute of property.



The expr attribute for a property is an EL expression that will be executed every time the value of this property is accessed. This means the getter for this property evaluates the expression.

Use the this keyword to refer to the current object or entity. Read the EL documentation to learn more about available methods to use in this type of expressions.


<entity ...>
      name = NAME
      label = LABEL
      expr = EL_EXPR


This example shows hot to build the value for a transient property based on the concatenation of the values of the other properties. Note that the concat function provided by the EL implementation does only support two parameters and that's why we need to write the expression in this way. You need to use "f:" before every function call.

     <entity label="Company" name="Company">
        <property display="primary" label="Name" name="name"/>

    <entity label="Employee" name="Employee">
        <property display="primary" label="First Name" name="firstName"/>
        <property display="primary" label="Last Name" name="lastName"/>
        <property display="secondary" entity="Company" label="Company" name="company"/>
        <property expr="f:concat(f:concat(this.firstName, f:concat(' ', this.lastName)), f:concat(' ', this.company.name))" label="Full Name" name="title"/>

Expr attribute for property

If you look at the code generated in the EmployeeAbstract class you'll see that the getter for the title property is:

public String getTitle() {
		java.util.Map<String, Object> map = new java.util.HashMap<String, Object>();
		map.put("this", this);
		ExpressionVariableResolver evr = new ExpressionVariableResolver(map);
		FunctionMapper fm = new FunctionMapper();
		ExpressionEvaluatorImpl el = new ExpressionEvaluatorImpl();
		try {
			title = (String) el.evaluate("${f:concat(f:concat(this.firstName, f:concat(' ', this.lastName)), f:concat(' ', this.company.name))}", Object.class, evr, fm);
		} catch (ELException e) {
		return title;

See also

Personal tools