1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Dúvida ao sobreescrever atributos com Apache-Tiles

Olá. Estou estudando um pouco sobre o Tiles e me surgiu uma dúvida. Tenho a seguinte definição :

<definition name="main" template="/views/templates/main.jsp">
        <put-attribute name="titulo" value="##" />
        <put-attribute name="header">
            <definition template="/views/templates/header.jsp">
                  <put-attribute name="first" value="/views/menu/first.jsp" />
                <put-attribute name="second" value="/views/menu/second.jsp" />
            </definition>
        </put-attribute>
        <put-attribute name="footer" value="/views/templates/footer.jsp" />
    </definition>

Estou fazendo um template para uma tela de crud, no qual essa tela será composta por 2 painéis. Um com campos de pesquisa e outro com uma tabela de resultados.Porémm o formulário de pesquisa e os resultados serão diferentes para cada tela obviamente, então gostaria de sobreescrever os atributos search-fields e result-table nas páginas que extendam essa definição. Para isso criei a seguinte definição:

  <definition name="crud" extends="main">
        <put-attribute name="content" >
            <definition template="/views/templates/crud-page.jsp">
                <put-attribute name="search-fields" value="override" />
                <put-attribute name="result-table" value="override" />
            </definition>
        </put-attribute>
    </definition>

Definido esse template, tentei criar uma página que usasse esse template da seguinte forma:

<definition name="crud-users" extends="crud">
        <put-attribute name="search-fields" value="/views/crud/usuario/search.jsp" />
        <put-attribute name="result-table" value="/views/crud/usuario/result-table.jsp"/>
    </definition>

Vejam os arquivos .jsp -

main.jsp:

 <body>
    <tiles:insertAttribute name="header" />
    <main>
        <tiles:insertAttribute name="content" />    
    </main>
    <tiles:insertAttribute name="footer" />    
   </body>

crud-page.jsp:

    <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
    <tiles:insertAttribute name="search-fields" />
    <tiles:insertAttribute name="result-table" />

Porém o que aparece na tela é "override" e não o conteúdo das páginas que sobrescrevi. Como proceder em casos desse tipo? Qual erro estou cometendo? Obrigado a todos.

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java apache web ou faça a sua própria pergunta.