Я не вижу вашего EmployeesComponent в вашем списке объявлений. EmployeesComponent нужно объявить в том же модуле, в котором вы импортируете MatCardModule, например:
declarations: [
EmployeesComponent
],
imports: [
MatCardModule
]
Я предполагаю, что вы либо забыли объявить EmployeesComponent в модуле приложения, либо у вас есть другой модуль, возможно, модуль «Сотрудники», куда вы должны импортировать MatCardModule.
Самым надежным из имеющихся в наличии является класс URLEncodedUtils из Apache Http Compoments (HttpClient 4.0).
Метод URLEncodedUtils.format ()
- это то, что вам нужно.
Он не использует карту, поэтому вы можете иметь повторяющиеся имена параметров, например,
a=1&a=2&b=3
Не то чтобы я рекомендовал использовать такой вид имен параметров.
Я думаю, что это лучше для использования памяти и производительности, и я хочу отправить просто имя свойства, когда значение является нулевым.
public static String toUrlEncode(Map<String, Object> map) {
StringBuilder sb = new StringBuilder();
map.entrySet().stream()
.forEach(entry
-> (entry.getValue() == null
? sb.append(entry.getKey())
: sb.append(entry.getKey())
.append('=')
.append(URLEncoder.encode(entry.getValue().toString(), StandardCharsets.UTF_8)))
.append('&')
);
sb.delete(sb.length() - 1, sb.length());
return sb.toString();
}
Вот кое-что, что я быстро написал; Я уверен, что это можно улучшить.
import java.util.*;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
public class MapQuery {
static String urlEncodeUTF8(String s) {
try {
return URLEncoder.encode(s, "UTF-8");
} catch (UnsupportedEncodingException e) {
throw new UnsupportedOperationException(e);
}
}
static String urlEncodeUTF8(Map<?,?> map) {
StringBuilder sb = new StringBuilder();
for (Map.Entry<?,?> entry : map.entrySet()) {
if (sb.length() > 0) {
sb.append("&");
}
sb.append(String.format("%s=%s",
urlEncodeUTF8(entry.getKey().toString()),
urlEncodeUTF8(entry.getValue().toString())
));
}
return sb.toString();
}
public static void main(String[] args) {
Map<String,Object> map = new HashMap<String,Object>();
map.put("p1", 12);
map.put("p2", "cat");
map.put("p3", "a & b");
System.out.println(urlEncodeUTF8(map));
// prints "p3=a+%26+b&p2=cat&p1=12"
}
}