Hi all,

I am implementing a project using tiles with myfaces.  I can successfully
run the sample myfaces-1.0.7-tiles-example, but I am having a lot of
problems when turing this sample into a more complex implementation.

Here is my layout:


<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"; %>

<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"; %>

<%@ taglib prefix="tiles" uri="http://struts.apache.org/tags-tiles"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

  <meta http-equiv="Content-Type" content="text/html;CHARSET=iso-8859-1" />

  <link rel="stylesheet" type="text/css" href="css/basic.css" />

</head>

<body>

 <f:view>

     <div id="level0">

        <div id="level1">

           <div id="topBar">

              <f:subview id="header">

                   <tiles:insert attribute="header" flush="false"/>

              </f:subview>

        </div>

     <div id="level2">

            <f:subview id="content">

                <tiles:insert attribute="body" flush="false"/>

            </f:subview>

     </div>

   </div>

  </div>

</f:view>

</body>

</html>

Here is my tiles-def.xml


<tiles-definitions>

         <definition name="main.layout" path=
"/jsp/template/basicLayout.jsp">

              <put name="header" value="/jsp/common/adminHeader.jsp" />

         </definition>

         <definition name="/login.tiles" extends="main.layout">

              <put name="body" value="/jsp/admin/login.jsp" />

         </definition>

<tiles-definitions>

Here is the adminHeader.jsp:

<%@ taglib uri="http://java.sun.com/jsf/html"; prefix="h"%>

<h:graphicImage id="logo" url="/image/logo.jpg" /

Here is the page login.jsp


<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"; %>

<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"; %>

<h:form id="loginForm">

<table align="center">

<tr>

<td style="padding:20">

<table>

<tr>

<td align="right">

<h:outputText value="UserId"/>

</td>

<td align="left">

<h:inputText value="#{userAdminBean.userId}" id="userId" required="true"/>

<h:message styleClass="errorMessage" for="userId"/>

</td>

</tr>

<tr>

<td align="right">

<h:outputText value="Password"/>

</td>

<td align="left">

<h:inputSecret value="#{userAdminBean.password}" id="password" required=
"true"/>

<h:message styleClass="errorMessage" for="password"/>

</td>

</tr>

<tr>

<td colspan="2" align="center">

<h:commandButton value="Login" action="#{userAdminBean.loginAction}"/>

</td>

</tr>

<tr >

<td colspan="2" align="center">

<h:messages errorClass="errorMessage" globalOnly="true"/>

</td>

</tr>

</table>

</td>

</tr>

</table>

</h:form>

When I type http://localhost:8080/myApp/login.jsf, everything is deplayed,
but the layout is messed out.  userid + userid textfield + password +
passwordfield + login button are all displayed in only single row.  If I
don't use tiles, all the above fields are displayed row by row, which is
correct.

Can anyone please tell me if I did anything wrong.  I am desperately need
your help.

Thanks,
James

Reply via email to