Preciso fazer uma identação em uma dataTable para que fique de acordo com essa (versão de uma aplicação desktop):
O campo nivel representa a quantidade de espaços a esquerda de cada nome.
O método que uso para colocar os espaços está abaixo, o problema é que no xhtml/html esses espaços não são reconhecidos, pensei em usar algo com a entidade  , mas não sei como fazer, se alguém puder me dar uma luz, ficarei grato…
MÉTODO QUE CONCATENA OS ESPAÇOS DE ACORDO COM O NIVEL:
public void formataNome() {
nomeFormatado = new Uteis().constStr(" ",2*(--nivel)) + nome;
}
public String constStr(String caracter, int n) {
String s = String.valueOf(caracter);
for (int i=s.length(); i<n; i++) {
s = s + caracter;
}
return s;
}
Certo, foi o que eu pensei também, porém como falei cada registro da tabela possui um nivel, que representa a quantidade de espaços a esquerda, haveria alguma forma de fazer a concatenação do subelemento no método que mostrei acima?
Eu não sei muito bem, não sou bom em CSS, me parece não ser recomendável utilizar esse por causa dá diferença dependendo do navegadores de espaço e tamanho, etc … seria bom ser feito acredito eu com uma estrutura melhor de div ou table talvez. Apesar que a explicação dele está ao meu entender muito vaga!
Com CSS ele pode utilizar o padding-left, com certeza.
A questão é ele conseguir colocar isso numa lógica que faça sentido, afinal, ele está com dificuldades justamente nessa parte.
Eu tentei concatenar o subelemento   com o nome(string), porém o que era me mostrado na tela não era espaço e sim a string  +nome, então usei o literal unicode \u00A0 e funcionou perfeitamente, mas gostaria de saber se usar isso é correto ou não?
Criar um CSS de 1 a 10 (ou mais dependendo da sua necessidade) e com a ideia do @Luis_Augusto_Santosutilize o padding-left para empurrar da margen da tabela pra dentro, exemplo: