Basis Tags
Single tag, all codes are contained between ${
and }
.
Variables
${variable}
or $variable
- plain variable. Outputs variable
variable in current context
example:
var templateContent = "hello $name";
var template = Engine.CreateTemplate(templateContent);
template.Set("name","jntemplate");
var result = template.Render();
Assert.AreEqual("hello jntemplate", render);
Property & Field
${object.Property}
or $object.Property
- object property or field. Outputs property
property in object
example 1:
var templateContent = "hello $model.Name";
var template = Engine.CreateTemplate(templateContent);
template.Set("model",new SiteInfo { Name = "jntemplate" });
var result = template.Render();
Assert.AreEqual("hello jntemplate", render);
example 2(static property):
var templateContent = "${DateTime.Now}";
var template = Engine.CreateTemplate(templateContent);
template.SetStaticType("DateTime", typeof(DateTime));
var result = template.Render();
Assert.AreEqual("str1str2", result);
WARNING
does not support access to anonymous object properties .
Function
${ function(parameter1,parameter2....) }
or $function(parameter1,parameter2....)
- execute instance method
- execute static method
- execute delegate
example 1(instance method):
var templateContent = "$fun.Test(\"hello\")";
var template = Engine.CreateTemplate(templateContent);
template.Set("fun", new TestHelper());
var result = template.Render();
Assert.AreEqual("input: hello", result);
example 2(static method):
var templateContent = "${string.Concat(\"str1\",\"str2\")}";
var template = Engine.CreateTemplate(templateContent);
template.SetStaticType("string", typeof(string));
var result = template.Render();
Assert.AreEqual("str1str2", result);
example 3(delegate):
var templateContent = "$add(8,-2)";
var template = Engine.CreateTemplate(templateContent);
template.Set<Func<int, int, int>>("add", (x, y) =>
{
return x + y;
});
var result = template.Render();
Assert.AreEqual("6", result);
Index
${ array[index]}
or $array[index]
- Indexers are a syntactic convenience that enable you to create a class, struct, or interface that client applications can access as an array.
example 1(dict):
var templateContent = "$dict[\"name\"]";
var template = Engine.CreateTemplate(templateContent);
var dic = new System.Collections.Generic.Dictionary<string, string>();
dic["name"] = "jntemplate";
dic["age"] = "1";
template.Set("dict",dict);
var result = template.Render();
Assert.AreEqual("jntemplate", render);
example 2(array):
var templateContent = "$arr[0]";
var template = Engine.CreateTemplate(templateContent);
template.Set("arr",new int[] { 1, 2, 3 });
var result = template.Render();
Assert.AreEqual("1", render);
TIP
Applies to
v1.4.0+
Logic Expression
${ expression }
- Logical expressions have the value true or false and are constructed with the seven relational operators >
, <
, >=
, <=
, ==
, !=
,||
and &&
.
example
var templateContent = "${3==8}";
var template = Engine.CreateTemplate(templateContent);
var result = template.Render();
Assert.AreEqual("False", result);
Arithmetic Expression
${ expression }
- An arithmetic expression is a syntactically correct combination of numbers, operators, parenthesis, and variables.
example
var templateContent = "${(8+2)*10)}";
var template = Engine.CreateTemplate(templateContent);
var result = template.Render();
Assert.AreEqual("100", result);
Boolean
${ true/false }
- boolean tag have the value true
or false
example
var templateContent = "${true}";
var template = Engine.CreateTemplate(templateContent);
var result = template.Render();
Assert.AreEqual("True", result);
End
${ end }
or $end
- Indicates the end of the tag.
see :for
,foreach
or if
.
Null
${null}
- NULL objects. see : if
.
Number
${number}
- There are two kinds of numeric values, integers (whole numbers), and real or floating point numbers (numbers containing a decimal point).
example
var templateContent = "${65.2}";
var template = Engine.CreateTemplate(templateContent);
var result = template.Render();
Assert.AreEqual("True", result);
String
${ "string" }
- string literals
example
var templateContent = "${\"this is string\"}";
var template = Engine.CreateTemplate(templateContent);
var result = template.Render();
Assert.AreEqual("this is string", render);