Lendo uma questão em uma comunidade JAVA sobre namespace, fiquei curioso com o namespace.
Qual o namespace do JSF devo utilizar. Nas bibliografias consultadas é utilizado o namespace: http://java.sun.com/jsf/html. Porém percebi que também existe o http://xmlns.jcp.org/jsf/html.
Fazendo uma consulta rápida, a Oracle apresenta que a partir do Java EE 7, os novos schemas estarão contidos no namespace http://xmlns.jcp.org/xml/ns/javaee/, mantendo os antigos no namespace http://java.sun.com/xml/ns/javaee/.
Referência: http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html
As distribuições Linux normalmente não vem com Java instalado e configurado. Um modo simples de fazer sua instalação é usar o comando sudo apt-get install openjdk-7-jre.
No entanto, você pode ter a necessidade de instalar outra versão.
Veja abaixo os passos necessários para instalar e configurar o JAVA 6 (serve para o 7) no Ubuntu Server 12 ou Debian (5). Neste ponto, considerando que você já fez o download no site da Oracle e descompactou o bin em um diretório qualquer, como o /opt.
Passo 1 – Remover a versão do JAVA atualmente instalado
apt-get remove --purge openjdk-*
Passo 2 – Alterar o arquivo /etc/profile e definir variáveis de ambiente JAVA
JAVA_HOME=/opt/jdk1.6.0_41 JRE_HOME="/opt/jre1.6.0_41" PATH=$PATH:$HOME/bin:$JAVA_HOME/bin PATH=$PATH:$HOME/bin:$JRE_HOME/bin export JAVA_HOME export JRE_HOME export PATH
Passo 3 – Informar ao Ubuntu local da JDK/JRE
sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jre1.6.0_41/bin/java" 1 sudo update-alternatives --install "/usr/bin/javac" "javac" "/opt/jdk1.6.0_41/bin/javac" 1 sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/opt/jre1.6.0_41/bin/javaws" 1
Passo 4 – Informar ao Ubuntu a JDK/JRE default
sudo update-alternatives --set java /opt/jre1.6.0_41/bin/java sudo update-alternatives --set javac /opt/jdk1.6.0_41/bin/javac sudo update-alternatives --set javaws /opt/jre1.6.0_41/bin/javaws
Passo 5 – Recarregar o profile
. /etc/profile
Passo 6 – Testar
java -version
Passo 7 – Verifique o resultado.
java version "1.6.0_41" Java(TM) SE Runtime Environment (build 1.6.0_41-b02) Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01, mixed mode)
Existem vários frameworks e ferramentas para gerar arquivos PDFs usando JAVA, sendo a dupla JasperReports/iReport uma das mais utilizadas.
Em relatórios, é comum a necessidade de apresentar uma listagem qualquer. Abaixo mostrarei como fazer uma lista no JasperReport 4.5 através de subDataset, jr:list e jr:listContents. Vamos aos passos:
Passo 1: criar uma classe Vo/TO com um método getMe que retorna this. O código abaixo não apresentará construtores e métodos get/set.
[sourcecode language=”java”]
public MinhaClasse implements Serializable {
private int id;
private String nome;
public MinhaClasse getMe() {
return this;
}
// Métodos get/set foram suprimidos
}
[/sourcecode]
Passo 2: no iReport, adicione um subDataset e um parâmetro do tipo ArrayList. Este dataSet será composto por um conjunto de Fields que serão usados na apresentação da lista. O parâmetro do tipo ArrayList será o responsável por receber a lista com objetos do tipo MinhaClasse.
[sourcecode language=”xml”]
<subDataset name="dataset1">
<field name="id" class="java.lang.Integer">
<fieldDescription><![CDATA[me.id]]></fieldDescription>
</field>
<field name="nome" class="java.lang.String">
<fieldDescription><![CDATA[me.nome]]></fieldDescription>
</field>
</subDataset>
<parameter name="listaMinhaClasse" class="java.lang.Integer"/>
[/sourcecode]
Passo 3: no iReport, adicione o componente jr:list. No código abaixo, informaremos que a lista terá como dataSource o objeto dataSet que definimos anteriormente.
[sourcecode language=”xml”]
<!– O componente abaixo foi colocado na estrutura detail/band/componentElement –>
<jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
<!– Informando que o DataSource da lista é nosso parâmetro ArrayList–>
<datasetRun subDataset="dataset1">
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{listaMinhaClasse})]]></dataSourceExpression>
</datasetRun>
<!– Aqui faremos a iteração da lista –>
<jr:listContents height="157" width="555">
<staticText>
<reportElement x="4" y="10" width="121" height="20"/>
<textElement/>
<text><![CDATA[ID:]]></text>
</staticText>
<staticText>
<reportElement x="4" y="40" width="111" height="20"/>
<textElement/>
<text><![CDATA[NOME:]]></text>
</staticText>
<textField>
<reportElement x="137" y="10" width="398" height="20">
<printWhenExpression><![CDATA[$F{id} != null]]></printWhenExpression>
</reportElement>
<textElement/>
<textFieldExpression><![CDATA[$F{id}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="137" y="40" width="398" height="20">
<printWhenExpression><![CDATA[$F{nome} != null]]></printWhenExpression>
</reportElement>
<textElement/>
<textFieldExpression><![CDATA[$F{nome}]]></textFieldExpression>
</textField>
</jr:listContents>
</jr:list>
[/sourcecode]
Escrevi sobre este assunto:
Espero que este código consiga ajudá-lo em seus projetos.