You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by sr...@wachovia.com on 2007/02/20 23:56:56 UTC
Usage of Struts - Tiles using tile controllers (After i tried using the
link provided)
Hi Dave,
Thanks for pointing me towards the link, it was of great help. Here is
what i did. And i am also pasting the error i am getting.
Step1: I created the following definition in my tiles-defs.xml
tiles-defs.xml
<tiles-definitions>
<definition name="base.page" path="/pages/entCounsTileLayout.jsp">
<put name="header" value="/pages/entCslHeader.jsp" />
<put name="contact" value="/pages/contact.jsp" />
<put name="footer" value="/pages/seminarFooter.jsp" />
</definition>
<definition name="question1.page" extends="base.page">
<put name="body" value=".question1Body.page" />
</definition>
<definition name=".question1Body.page" path="/pages/question1Body.jsp"
controllerClass="com.wef.seminar.entrance.QuestionController">
</definition>
</tiles-definitions>
Step2: I have the code of the controller i wrote, i have the package
specific code and import statements intact:
public class QuestionController implements Controller {
public void execute(ComponentContext context, HttpServletRequest
request,
HttpServletResponse response, ServletContext
servContext) throws Exception {
}
public void perform(ComponentContext context, HttpServletRequest
request,
HttpServletResponse response, ServletContext
servContext)
throws ServletException, IOException {
java.util.ArrayList q1Choice = null;
com.wef.seminar.entrance.EntranceAnswers ans = new
com.wef.seminar.entrance.EntranceAnswers();
q1Choice = ans.getQ1ChoiceList();
System.out.println("\n************I am
here***********\n");
request.setAttribute("q1Choice", q1Choice);
request.setAttribute("vartest","Ajay Shenoy");
System.out.println("\n************I end
here***********\n");
}
}
Step3: Here is the code of jsp, i.e. question1Body.jsp as mentioned in the
tiles-defs.xml in the directory "pages".
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<html:html>
<HEAD>
<%@ page language="java" contentType="text/html;
charset=ISO-8859-1"
pageEncoding="ISO-8859-1" import="java.util.Enumeration"%>
<META http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
<META name="GENERATOR" content="IBM Software Development Platform"
>
<META http-equiv="Content-Style-Type" content="text/css">
<LINK href="theme/elstylesheet.css" rel="stylesheet" type=
"text/css">
<TITLE></TITLE>
<html:javascript formName="AnswerForm" />
</HEAD>
<BODY>
<html:form action="/question1Action" onsubmit="return
validateAnswerForm(this)">
<tiles:useAttribute name="q1Choice" id=
"q1Choice" classname="java.util.ArrayList" scope="request"/>
<logic:iterate id="row" name=
"q1Choice">
<html:radio property=
"answer" value="value" idName="row"/>
<bean:write name="row"
property="label"/>
<BR>
</logic:iterate>
<BR>
<html:hidden property=
"QuestionNumber" value="Question1"/>
<html:submit property="submit"
value="Continue" />
</html:form>
</BODY>
</html:html>
Step4: Here is the error i am getting:
Feb 20, 2007 2:42:40 PM org.apache.catalina.core.ApplicationDispatcher
invoke
SEVERE: Servlet.service() for servlet jsp threw exception
javax.servlet.jsp.JspException: Error - tag useAttribute : attribute
'q1Choice' not found in context. Check tag syntax
at org.apache.struts.tiles.taglib.UseAttributeTag.doStartTag(
UseAttributeTag.java:182)
at org.apache.jsp.pages.question1Body_jsp._jspService(
question1Body_jsp.java:223)
at org.apache.jasper.runtime.HttpJspBase.service(
HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(
JspServletWrapper.java:334)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(
JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(
JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(
ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(
ApplicationDispatcher.java:574)
at org.apache.catalina.core.ApplicationDispatcher.include(
ApplicationDispatcher.java:499)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(
JspRuntimeLibrary.java:966)
at org.apache.jasper.runtime.PageContextImpl.doInclude(
PageContextImpl.java:631)
at org.apache.jasper.runtime.PageContextImpl.include(
PageContextImpl.java:625)
at sun.reflect.GeneratedMethodAccessor241.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.struts.tiles.TilesUtilImpl.doInclude(
TilesUtilImpl.java:126)
at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:149)
at org.apache.struts.tiles.taglib.InsertTag.doInclude(
InsertTag.java:761)
at
org.apache.struts.tiles.taglib.InsertTag$InsertHandler.doEndTag(
InsertTag.java:893)
at org.apache.struts.tiles.taglib.InsertTag.doEndTag(
InsertTag.java:462)
at
org.apache.jsp.pages.entCounsTileLayout_jsp._jspx_meth_tiles_insert_1(
entCounsTileLayout_jsp.java:170)
at
org.apache.jsp.pages.entCounsTileLayout_jsp._jspx_meth_html_html_0(
entCounsTileLayout_jsp.java:111)
at org.apache.jsp.pages.entCounsTileLayout_jsp._jspService(
entCounsTileLayout_jsp.java:66)
at org.apache.jasper.runtime.HttpJspBase.service(
HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(
JspServletWrapper.java:334)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(
JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(
JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(
ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(
ApplicationDispatcher.java:463)
at org.apache.catalina.core.ApplicationDispatcher.doForward(
ApplicationDispatcher.java:398)
at org.apache.catalina.core.ApplicationDispatcher.forward(
ApplicationDispatcher.java:301)
at org.apache.struts.action.RequestProcessor.doForward(
RequestProcessor.java:1054)
at org.apache.struts.tiles.TilesRequestProcessor.doForward(
TilesRequestProcessor.java:292)
at
org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(
TilesRequestProcessor.java:268)
at
org.apache.struts.tiles.TilesRequestProcessor.internalModuleRelativeForward(
TilesRequestProcessor.java:367)
at org.apache.struts.action.RequestProcessor.processForward(
RequestProcessor.java:548)
at org.apache.struts.action.RequestProcessor.process(
RequestProcessor.java:209)
at org.apache.struts.action.ActionServlet.process(
ActionServlet.java:1858)
at org.apache.struts.action.ActionServlet.doPost(
ActionServlet.java:459)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(
StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(
ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(
StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(
CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(
Http11Processor.java:869)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(
Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Feb 20, 2007 2:42:40 PM org.apache.catalina.core.ApplicationDispatcher
invoke
SEVERE: Servlet.service() for servlet jsp threw exception
javax.servlet.jsp.JspException: Error - tag useAttribute : attribute
'q1Choice' not found in context. Check tag syntax
at org.apache.struts.tiles.taglib.UseAttributeTag.doStartTag(
UseAttributeTag.java:182)
at org.apache.jsp.pages.question1Body_jsp._jspService(
question1Body_jsp.java:223)
at org.apache.jasper.runtime.HttpJspBase.service(
HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(
JspServletWrapper.java:334)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(
JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(
JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(
ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(
ApplicationDispatcher.java:574)
at org.apache.catalina.core.ApplicationDispatcher.include(
ApplicationDispatcher.java:499)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(
JspRuntimeLibrary.java:966)
at org.apache.jasper.runtime.PageContextImpl.include(
PageContextImpl.java:602)
at org.apache.struts.tiles.TilesUtilImpl.doInclude(
TilesUtilImpl.java:135)
at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:149)
at org.apache.struts.tiles.taglib.InsertTag.doInclude(
InsertTag.java:761)
at
org.apache.struts.tiles.taglib.InsertTag$InsertHandler.doEndTag(
InsertTag.java:893)
at org.apache.struts.tiles.taglib.InsertTag.doEndTag(
InsertTag.java:462)
at
org.apache.jsp.pages.entCounsTileLayout_jsp._jspx_meth_tiles_insert_1(
entCounsTileLayout_jsp.java:170)
at
org.apache.jsp.pages.entCounsTileLayout_jsp._jspx_meth_html_html_0(
entCounsTileLayout_jsp.java:111)
at org.apache.jsp.pages.entCounsTileLayout_jsp._jspService(
entCounsTileLayout_jsp.java:66)
at org.apache.jasper.runtime.HttpJspBase.service(
HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(
JspServletWrapper.java:334)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(
JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(
JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(
ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(
ApplicationDispatcher.java:463)
at org.apache.catalina.core.ApplicationDispatcher.doForward(
ApplicationDispatcher.java:398)
at org.apache.catalina.core.ApplicationDispatcher.forward(
ApplicationDispatcher.java:301)
at org.apache.struts.action.RequestProcessor.doForward(
RequestProcessor.java:1054)
at org.apache.struts.tiles.TilesRequestProcessor.doForward(
TilesRequestProcessor.java:292)
at
org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(
TilesRequestProcessor.java:268)
at
org.apache.struts.tiles.TilesRequestProcessor.internalModuleRelativeForward(
TilesRequestProcessor.java:367)
at org.apache.struts.action.RequestProcessor.processForward(
RequestProcessor.java:548)
at org.apache.struts.action.RequestProcessor.process(
RequestProcessor.java:209)
at org.apache.struts.action.ActionServlet.process(
ActionServlet.java:1858)
at org.apache.struts.action.ActionServlet.doPost(
ActionServlet.java:459)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(
StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(
ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(
StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(
CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(
Http11Processor.java:869)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(
Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Feb 20, 2007 2:42:40 PM
org.apache.struts.tiles.taglib.InsertTag$InsertHandler doEndTag
SEVERE: ServletException in '/pages/question1Body.jsp': Error - tag
useAttribute : attribute 'q1Choice' not found in context. Check tag syntax
org.apache.jasper.JasperException: Exception in JSP:
/pages/question1Body.jsp:90
87: and then i am here
88: <BR>
89:
90: <tiles:useAttribute name="q1Choice"
id="q1Choice" classname="java.util.ArrayList" scope="request"/>
91: <logic:iterate id="row"
name="q1Choice">
92: <html:radio
property="answer" value="value" idName="row"/>
93: <bean:write name="row"
property="label"/>
Stacktrace:
at org.apache.jasper.servlet.JspServletWrapper.handleJspException(
JspServletWrapper.java:506)
at org.apache.jasper.servlet.JspServletWrapper.service(
JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(
JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(
JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(
ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(
ApplicationDispatcher.java:574)
at org.apache.catalina.core.ApplicationDispatcher.include(
ApplicationDispatcher.java:499)