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
|