Duvida Struts 2 e taglib

10 respostas
euripedes_jr

Olá pessoal tudo bom???

Bom alguem consegue me explicar como funciona a parte de taglib no Struts 2??? Pq tipo tenho um form.jsp que coloco os campos em uma ordem mas quando rodo o projeto a ordem dos campos são alteradas e ele adiciona css nos

e
q nao coloquei no form.jsp.
form.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
<s:form action="Fabricante" method="post" validate="evalue">
	        <s:hidden name="fabricante.fabricanteId"/>
	        <table width="95%" border="0" cellspacing="2" cellpadding="3">
                <tr>
                    <td align="left">Status:</td>
                    <td align="left">
                        <s:select key="label.status" name="fabricante.statusFabricante" list="%{#{'A':'Ativado', 'D':'Desativado'}}" class="SELECT01"/>
                    </td>
                </tr>
                <tr>
                    <td align="left">Nome:</td>
                    <td align="left">
                        <s:textfield name="fabricante.nomeFabricante" key="label.nome" class="INPUT01" size="80" maxlength="80"/>
                    </td>
                </tr>
                <tr>
                    <td colspan="2"  align="left">&nbsp;</td>
                </tr>
                <tr>
                    <td colspan="2"  align="left">&nbsp;</td>
                </tr>
                <tr>
                    <td colspan="2"  align="left"><s:submit name="action" key="button.label.submit" method="save"/></td>
                </tr>
            </table>
            </s:form>
quando mando exibir codigo fonte no browser
<form id="Fabricante" name="Fabricante" onsubmit="return true;" action="/Projeto/Fabricante.action" method="post">
<table class="wwFormTable">
	<input type="hidden" name="fabricante.fabricanteId" value="" id="Fabricante_fabricante_fabricanteId"/>
	<tr>
    <td class="tdLabel"><label for="Fabricante_fabricante_nomeFabricante" class="label">Nome:</label></td>

    <td
><input type="text" name="fabricante.nomeFabricante" size="40" maxlength="40" value="" id="Fabricante_fabricante_nomeFabricante"/>
</td>
</tr>
    <tr>
    <td class="tdLabel"><label for="Fabricante_fabricante_statusFabricante" class="label">Status:</label></td>
    <td
><select name="fabricante.statusFabricante" id="Fabricante_fabricante_statusFabricante">
    <option value="A">Ativado</option>
    <option value="D">Desativado</option>
</select>
</td>
</tr>
	<tr>
    <td colspan="2"><div align="right"><input type="submit" id="Fabricante_action" name="method:save" value="Incluir"/>
</div></td>
</tr>
</table></form>

10 Respostas

fiaux

Eu acho que tem a ver com o theme do Struts 2. Leia http://struts.apache.org/2.0.11.2/docs/themes-and-templates.html. Experimente usar o theme=“simple”

juloko666

olá…tive esse problema aki onde trabalho…dentro do jar struts2-core-2.0.9.jar (que é a versão q EU uso) tem um package template.* que contém arquivos ftl, o arquivo form.ftl que está em template.ajax, por exemplo, é usado quando vc declara um form com o template ajax(óbvio) e este arquivo(form.ftl) gera automaticamente as tags table, tr, td…

para corrigir esse contratempo, vc deve criar um diretorio em seu WebContent chamado template e dentro dele vc criará outro diretorio(ajax, simple ou xhtml) que conterá os arquivos FTL que vc sobrescreverá

segue um exemplo do diretorio template que vc colocará em seu WebContent…

tem mais coisa aki neste site

http://www.vitarara.org/cms/struts_2_cookbook/creating_a_theme

qualquer coisa é só falar…

se tiver outra maneira de fazer isso gostaria de saber!!

até mais…

fiaux

juloko666:
olá…tive esse problema aki onde trabalho…dentro do jar struts2-core-2.0.9.jar (que é a versão q EU uso) tem um package template.* que contém arquivos ftl, o arquivo form.ftl que está em template.ajax, por exemplo, é usado quando vc declara um form com o template ajax(óbvio) e este arquivo(form.ftl) gera automaticamente as tags table, tr, td…

para corrigir esse contratempo, vc deve criar um diretorio em seu WebContent chamado template e dentro dele vc criará outro diretorio(ajax, simple ou xhtml) que conterá os arquivos FTL que onde sobrescreverá

segue um exemplo do diretorio template que vc colocará em seu WebContent…

tem mais coisa aki neste site

http://www.vitarara.org/cms/struts_2_cookbook/creating_a_theme

qualquer coisa é só falar…

se tiver outra maneira de fazer isso gostaria de saber!!

até mais…

Isso foi o que eu vi um cara aqui no trabalho fazer sem muita explicação. Valeu pela explicação.

Cerjr

tive o mesmo problema quando desenvolvi um projeto usando Struts 2.

usar o theme=“simple” resolveu o meu problema,
porém tudo que necessitava de javascript (ex. validações usando tag errors se não estou enganado e a tag de autocomplete) deiaxram de funcionar.

fica aí a dica se vc estiver usando uma dessas tags…

euripedes_jr

entao e isso q nao entendi so de eu chamar a taglib “<%@ taglib prefix=“s” uri=”/struts-tags" %>" como ele sabe quais os campos que eu tenho e separa por

e ???
Herrera

euripedes

Qdo vc usa as tags s:form e s:textfield e etc, o struts coloca automaticamente os td e tr que estao definidos no template, se vc colocar como template = simple, o struts ira colocar os campos de forma simples, sem a formatação.

Herrera

euripedes_jr

ta isso dele colocar os <tr> e <td> eu entendi agora nao encontrei falando de onde ele pega esses campos, se e do arquivo .properties, POJO ou outro. Vc sabe?

Herrera

esta dentro do jar do struts2 . no diretorio template/css_xhtml .

vc pode sobrepor, .copiando para dentro do seu src do projeto , esse diretorio template e fazendo as suas customizações, ou criar um novo template.

Abçs

Herrera

euripedes_jr

entao Herrera isso eu entendi e ja funfou aqui. oq lhe perguntei antes e oq eu nao achei apostila se eu nao sobrebor o arquivo e deixar o padrao como q o struts sabe quais os campos q ele vai trazer no HTML? ele traz os campos no HTML com base no meu POJO ou algum outro arquivo???

muldon

nossa isso me ajudou agora ( 2 anos depois hehehehe ) valeu galera !!!

Criado 25 de setembro de 2008
Ultima resposta 7 de abr. de 2010
Respostas 10
Participantes 6