Jsf

Tenho alguns objetos e preciso formatar a fonte deles, cores de fundo e tudo mais…

estou usando jsf para criaçao desses objetos e o mesmo cria no meu xhtml, sendo que preciso formatar eles pelo java.

entre os objetos, existe o mais usado que é:

private HtmlInputText texto;

Se alguem souber se tem como formatar…

Olá,

Você já experimentou usar o setStyle(String) ou setStyleClass(String) do HtmlInputText?

Depois dê uma olhada:

http://download.oracle.com/docs/cd/E17824_01/dsc_docs/docs/jscreator/apis/jsf/javax/faces/component/html/HtmlInputText.html

Pois é cara, ate tentei passar com o SetStyle

texto.setStyle("red");

mas ele é uma string, nao sei ao certo como vai ser interpretado a string, pois se passar, red, ou color = red, nao funciona.

texto.setStyle("font-color:red;"); 

Tenta fazer dessa maneira.

Nao deu certo, ele nao interpreta, nao dá erro algum, mas tbm nao altera a fonte

alguma outra sugestao?

View:

<h:inputText style="#{styleBean.style}" />

ManagedBean:

@Named
public class StyleBean {
  public String getStyle() {
    return "color:red;font-size:900px;";
  }
}

O meu caso é diferente eu nao tenho nada no meu xhtml, somente o retorno de menagedbean, entao eu tenho que fazer todo o processo de criaçao e formataçao na propria classe.

Mas funcionou, passando assim:

private HtmlInputText texto;
texto.setStyle("color:black;background:red");

Se nao fosse pedir demais, alguem sabe como faz para formatar os campos com:
data, hora e valor monetario, pelo java, em classe?

Obrigado!

Tome cuidado, a ausência de código na view é provavelmente um erro arquitetural grave. Vc deve sempre procurar separar
o código da view do código q atende a requisição. E ainda é muito mais fácil escrever a view com xml do que com um monte
de métodos em Java. Além do mais, a combinação JSF/Facelets tem inúmeras ferramentas para que vc possa construir a sua
view dinamicamente sem a necessidade de recorrer ao código Java.

Entao cara, a minha tela hoje em JSF, está sendo criada totalmente dinamicamente, ou seja, eu criei um metodo que gera qualquer tipo de tela pra mim, usando diretamente do banco de dados, quanto a isso está funcionando perfeitamente.
O que agora eu estou fazendo é a “frescura” de formataçao, cor e tudo mais que é a parte usuario final, que nao deixa de ser necessaria.

Mas nao sei como formatar, moeda, data e hora nesses HtmlInputText.
Tens alguma sugestao?

Para formatar data, hora, moeda e outros formatos, basta usar Converters do JSF. Por exemplo:

&lt;h:inputText id="dateTime" value="#{meuBean.data}"&gt;
    &lt;f:convertDateTime type="date" pattern="dd/mm/yyyy"/&gt;
&lt;/h:inputText&gt;

Para moeda você pode usar o f:convertNumber ou outro customizado. Basta declarar no faces-config.xml.

Entao cara, eu preciso fazer tudo isso no meu MenagedBean, sem nada com html…ou seja, o componente é criado dinamicamente, e preciso que quando seja criado, já seja feita a formataçao, para quando ir pro meu xhtml, ele ir já pronto, seria basicamente isso:

meu metodo de criaçao do componente que passo os parametros e ele retorna o componente pronto:

public UIComponent CriaTexto(Integer maxLength, Integer size,
			Boolean readOnly, Boolean required, Boolean styleObrigatorio) {
		Complementos comple = new Complementos();

		texto = new HtmlInputText();
		texto.setMaxlength(maxLength);
		texto.setSize(size);
		texto.setReadonly(readOnly);
		texto.setRequired(required);
		if (styleObrigatorio) {
			texto.setStyle(comple.getStyleObrigatorio());
		}
		if (texto.isReadonly()) {
			texto.setStyle(comple.getSytleReadOnly());
		}
		return texto;
	}

e no meu xhtml fica somente isso:

&lt;h:panelGrid columns="2"  binding="#{criaTela.criaCampos}"/&gt;

ou seja, preciso formatar o meu objeto “texto” na classe ainda.