おそらく、ヘルパー関数を作成する必要がありますが、Java がそのままの式でこれを処理できる方法はありません。
${Employee.joinEmployeesByName(Employees, "--")}
Employee
クラスのコード:
public static String joinEmployeesByName( Employee[] arr, String separator ) {
//implement
}
リフレクションを使用した動的な例を次に示します。
public static String getFieldByName(Employee obj, String fieldName) {
String ret = null;
Class<?> c = obj.getClass();
try {
Field field = c.getDeclaredField(fieldName);
ret = field.get(obj).toString();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return ret;
}
public static String joinEmployeesByField(Employee[] arr, String fieldName, String separator) {
if(arr.length < 1) {
return "";
}
StringBuilder ret = new StringBuilder();
ret.append(getFieldByName(arr[0], fieldName));
for( int i = 1; i < arr.length; ++i ) {
ret.append( separator );
ret.append( getFieldByName( arr[i], fieldName) );
}
return ret.toString();
}
使用法は次のとおりです。
${Employee.joinEmployeesByField(Employees, "Name", "--")}
${Employee.joinEmployeesByField(Employees, "Designation", "--")}