Hello all, I
have moved my application from Struts 1.1 to Struts 1.3, and I am currently
experiencing problems With Tiles. Attached are all the files that I was
using with Struts 1.1. and the application worked just
fine. I am afraid I don’t have exception
stack trace (I had problem with my mail account L ), however I was getting NullPointerException in pages where there was the tile:insert tag
(such as classicLayout.jsp) Now, for use with Struts 1.3 I have
changed the struts-tiles.tld since I noticed that
some classes Were moved to a different package (from org.apache.struts.taglib.tiles to org.apache.struts.tiles.taglib) So I have replaced all org.apache.struts.taglib.tiles
to org.apache.struts.tiles.taglib, but still when
running My application I got exception. Can anyone spot what’s the problem
with tiles? Am I using the correct struts-tiles.tld?
Do I need additional files? I tried to put the two logging files
mentioned in the Tiles documentation in my \classes directory, but still I am experiencing same problem. Has anyone succeeded to use tiles with
Struts 1.3? Thanks in advance and regars marco |
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config> <!-- ========== Data Sources Definitions =================================== --> <!-- Define your Struts data sources in a file called struts-data-sources.xml and place it in your merge directory. --> <!-- ========== Form Bean Definitions =================================== --> <form-beans> <form-bean name="insertForm" type="com.myapp.beans.EntryBean"> <form-property name="date" type="java.util.Date"/> <form-property name="dateString" type="java.lang.String"/> <form-property name="amount" type="java.lang.Double"/> <form-property name="type" type="java.lang.Integer"/> <form-property name="description" type="java.lang.String"/> <form-property name="user" type="java.lang.String"/> <form-property name="statusMsg" type="java.lang.String"/> <form-property name="buttonSelected" type="java.lang.String"/> </form-bean> <form-bean name="queryForm" type="com.myapp.beans.QueryTest"> <form-property name="queryType" type="java.lang.String[]"/> <form-property name="buttonSelected" type="java.lang.String"/> <form-property name="type" type="java.lang.Integer"/> <form-property name="dateStart" type="java.lang.String"/> <form-property name="dateEnd" type="java.lang.String"/> <form-property name="start" type="java.util.Date"/> <form-property name="end" type="java.util.Date"/> <form-property name="result" type="java.util.List"/> <form-property name="resultAmount" type="java.lang.Double"/> <form-property name="ignoreUser" type="java.lang.Boolean" initial="true"/> <form-property name="actualType" type="java.util.List"/> <form-property name="statusMsg" type="java.lang.String"/> <form-property name="username" type="java.lang.String"/> </form-bean> <form-bean name="editForm" type="org.apache.struts.action.DynaActionForm"> <form-property name="date" type="java.util.Date"/> <form-property name="dateString" type="java.lang.String"/> <form-property name="amount" type="java.lang.Double"/> <form-property name="type" type="java.lang.Integer"/> <form-property name="description" type="java.lang.String"/> <form-property name="user" type="java.lang.String"/> <form-property name="statusMsg" type="java.lang.String"/> <form-property name="id" type="java.lang.Integer"/> <form-property name="buttonSelected" type="java.lang.String"/> <form-property name="sessionid" type="java.lang.String"/> </form-bean> <form-bean name="stockForm" type="org.apache.struts.action.DynaActionForm"> <form-property name="date" type="java.util.Date"/> <form-property name="dateString" type="java.lang.String"/> <form-property name="stockPrice" type="java.lang.Double"/> <form-property name="company" type="java.lang.String"/> <form-property name="text" type="java.lang.String"/> <form-property name="stockMove" type="java.lang.Integer"/> <form-property name="statusMsg" type="java.lang.String"/> </form-bean> <form-bean name="queryStock" type="org.apache.struts.action.DynaActionForm"> <form-property name="queryType" type="java.lang.String"/> <form-property name="buttonSelected" type="java.lang.String"/> <form-property name="name" type="java.lang.String"/> <form-property name="dateStart" type="java.lang.String"/> <form-property name="dateEnd" type="java.lang.String"/> <form-property name="start" type="java.util.Date"/> <form-property name="end" type="java.util.Date"/> <form-property name="result" type="java.util.List"/> <form-property name="resultAmount" type="java.lang.Double"/> <form-property name="statusMsg" type="java.lang.String"/> </form-bean> <form-bean name="scheduleForm" type="org.apache.struts.action.DynaActionForm"> <form-property name="crondate" type="java.lang.String"/> <form-property name="amount" type="java.lang.Double"/> <form-property name="type" type="java.lang.Integer"/> <form-property name="description" type="java.lang.String"/> <form-property name="user" type="java.lang.String"/> <form-property name="statusMsg" type="java.lang.String"/> <form-property name="buttonSelected" type="java.lang.String"/> <form-property name="taskName" type="java.lang.String"/> <form-property name="taskGroup" type="java.lang.String"/> <form-property name="statusMessage" type="java.lang.String"/> </form-bean> <form-bean name="loginForm" type="org.apache.struts.validator.DynaValidatorForm"> <form-property name="username" type="java.lang.String"/> <form-property name="password" type="java.lang.String"/> <form-property name="buttonSelected" type="java.lang.String"/> </form-bean> </form-beans> <!-- ========== Global Exceptions Definitions =================================== --> <!-- Define your exceptions in a file called global-exceptions.xml and place it in your merge directory. --> <!-- ========== Global Forward Definitions =================================== --> <global-forwards> <!-- This would not be needed if you are only going to use response templates specific to each service. --> <forward name="defaultWSResponse" path="/WS_DefaultResponse.jsp" /> <!-- This would not be needed if you are only going to use validation failure templates specific to each service. --> <forward name="defaultWSValidationFailureResponse" path="/WS_DefaultValidationFailureResponse.jsp" /> <!-- This would not be needed if you are only going to use exception templates specific to each service. --> <forward name="defaultWSExceptionResponse" path="/WS_DefaultExceptionResponse.jsp" /> </global-forwards> <!-- ========== Action Mapping Definitions =================================== --> <action-mappings> <action path="/insert" type="com.myapp.strutschain.action.InsertAction" name="insertForm" scope="request" input="/insert.jsp" unknown="false" validate="true" > <forward name="success" path="/insert.jsp" redirect="false" /> <forward name="failure" path="/insert.jsp" redirect="false" /> </action> <action path="/modifySetUp" type="com.myapp.strutschain.action.ModifySetUpAction" unknown="false" validate="false" > <forward name="success" path="/populateModifySetUp.do" redirect="false" /> <forward name="failure" path="/modify.jsp" redirect="false" /> </action> <action path="/querySetUp" type="com.myapp.strutschain.action.QuerySetUpAction" name="queryForm" scope="request" unknown="false" validate="false" > <forward name="success" path="/query.jsp" redirect="false" /> <forward name="failure" path="/query.jsp" redirect="false" /> </action> <action path="/modify" type="com.myapp.strutschain.action.ModifyAction" name="editForm" scope="request" input="/modify.jsp" unknown="false" validate="true" > <forward name="success" path="/modifySetUp.jsp" redirect="false" /> <forward name="failure" path="/query.jsp" redirect="false" /> </action> <action path="/login" type="com.myapp.strutschain.action.LoginAction" name="loginForm" scope="request" input="/login.jsp" unknown="false" validate="false" > <forward name="success" path="/main.jsp" redirect="false" /> <forward name="failure" path="/login.jsp" redirect="false" /> </action> <action path="/delete" type="org.springframework.web.struts.DelegatingActionProxy" name="editForm" scope="request" input="/delete.jsp" unknown="false" validate="true" > <forward name="success" path="/delete.jsp" redirect="false" /> <forward name="failure" path="/delete.jsp" redirect="false" /> </action> <action path="/report" type="com.myapp.strutschain.action.ReportAction" name="queryForm" scope="request" input="/report.jsp" parameter="buttonSelected" unknown="false" validate="true" > <forward name="success" path="/testResults.jsp" redirect="false" /> <forward name="report" path="/scheduleReport.jsp" redirect="false" /> <forward name="failure" path="/testResults.jsp" redirect="false" /> </action> <action path="/insertSetUp" type="com.myapp.strutschain.action.InsertSetUpAction" name="insertForm" scope="request" unknown="false" validate="false" > <forward name="success" path="/insert.jsp" redirect="false" /> <forward name="failure" path="/insert.jsp" redirect="false" /> </action> <action path="/stock" type="org.springframework.web.struts.DelegatingActionProxy" name="stockForm" scope="request" input="/stockEntry.jsp" unknown="false" validate="true" > <forward name="success" path="/stockEntry.jsp" redirect="false" /> <forward name="failure" path="/stockEntry.jsp" redirect="false" /> </action> <action path="/stockNewsSetUp" type="com.myapp.strutschain.action.StockNewsSetUpAction" name="stockForm" scope="request" unknown="false" validate="false" > <forward name="success" path="/stockEntry.jsp" redirect="false" /> <forward name="failure" path="/stockEntry.jsp" redirect="false" /> </action> <action path="/schedule" type="org.springframework.web.struts.DelegatingActionProxy" name="scheduleForm" scope="request" input="/scheduleTask.jsp" parameter="buttonSelected" unknown="false" validate="true" > <forward name="success" path="/scheduleSetUp.do" redirect="false" /> <forward name="failure" path="/scheduleTask.jsp" redirect="false" /> </action> <action path="/populateModifySetUp" type="com.myapp.strutschain.action.PopulateModifySetUpAction" name="editForm" scope="request" unknown="false" validate="false" > <forward name="success" path="/modify.jsp" redirect="false" /> <forward name="failure" path="/modify.jsp" redirect="false" /> </action> <action path="/query" type="com.myapp.strutschain.action.QueryAction" name="queryForm" scope="session" input="/query.jsp" parameter="buttonSelected" unknown="false" validate="true" > <forward name="modify" path="/modifySetUp.jsp" redirect="false" /> <forward name="query" path="/query.jsp" redirect="false" /> <forward name="delete" path="/delete.jsp" redirect="false" /> <forward name="failure" path="/queryResults.jsp" redirect="false" /> </action> <action path="/scheduleSetUp" type="org.springframework.web.struts.DelegatingActionProxy" name="scheduleForm" scope="request" unknown="false" validate="false" > <forward name="view" path="/scheduleView.jsp" redirect="false" /> <forward name="failure" path="/scheduleView.jsp" redirect="false" /> <forward name="create" path="/scheduleTask.jsp" redirect="false" /> </action> <action path="/stockQuerySetUp" type="com.myapp.strutschain.action.StockQuerySetUpAction" name="queryStock" scope="request" unknown="false" validate="false" > <forward name="success" path="/queryStock.jsp" redirect="false" /> <forward name="failure" path="/queryStock.jsp" redirect="false" /> </action> <action path="/deleteSetUp" type="com.myapp.strutschain.action.DeleteSetUpAction" name="queryForm" scope="request" unknown="false" validate="false" > <forward name="success" path="/delete.jsp" redirect="false" /> <forward name="failure" path="/delete.jsp" redirect="false" /> </action> <action path="/queryStock" type="org.springframework.web.struts.DelegatingActionProxy" name="queryStock" scope="session" input="/queryStock.jsp" parameter="buttonSelected" unknown="false" validate="true" > <forward name="success" path="/queryStock.jsp" redirect="false" /> <forward name="failure" path="/queryStock.jsp" redirect="false" /> </action> <!-- If you have non XDoclet actions, define them in a file called struts-actions.xml and place it in your merge directory. --> </action-mappings> <!-- Define your Struts controller in a file called struts-controller.xml and place it in your merge directory. --> <message-resources parameter="resources.ApplicationResources"/> <plug-in className="org.apache.struts.tiles.TilesPlugin" > <set-property property="definitions-config" value="/WEB-INF/struts-config/tiles-defs.xml" /> <set-property property="moduleAware" value="true" /> </plug-in> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/struts-config/validator-rules.xml, /WEB-INF/struts-config/validation.xml"/> </plug-in> <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/> </plug-in> <plug-in className="net.sf.navigator.menu.MenuPlugIn"> <set-property property="menuConfig" value="/WEB-INF/menu-config.xml"/> </plug-in> <!-- This plugin initializes the Web Services handling capabilities. <plug-in className="org.apache.struts.action.WSInit" />--> </struts-config>
<?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd"> <!-- Definitions for Tiles --> <!-- This file contains definitions common to all struts module. In particular, it contains the main layout and the common menus. There is also the main page as a portal. --> <tiles-definitions> <!-- ======================================================= --> <!-- Master definition --> <!-- ======================================================= --> <!-- Doc index page description --> <definition name="doc.mainLayout" path="/layout/classicLayout.jsp"> <put name="title" value="Tiles Library Documentation" /> <put name="header" value="/common/header.jsp" /> <put name="menu" value="doc.menu.main" /> <put name="footer" value="/common/footer.jsp" /> <put name="body" value="doc.portal.body" /> </definition> <!-- ======================================================= --> <!-- Main page body definitions --> <!-- ======================================================= --> <definition name="doc.portal.body" path="/layout/columnsLayout.jsp"> <put name="numCols" value="2" /> <putList name="list0" > <add value="/doc/portal/welcome.jsp" /> <add value="/doc/portal/features.jsp" /> <!--<add value="/doc/portal/todo.jsp" /> --> <add value="/doc/portal/documentation.jsp" /> </putList> <putList name="list1" > <add value="/doc/portal/news.jsp" /> <add value="/doc/portal/download.jsp" /> <add value="/doc/portal/tilesCompsTemplates.jsp" /> <add value="/doc/portal/strutsIntegration.jsp" /> <add value="/doc/portal/comments.jsp" /> <add value="/doc/portal/revisions.jsp" /> </putList> </definition> <!-- ======================================================= --> <!-- Menus definitions --> <!-- ======================================================= --> <!-- Menu bar definition --> <definition name="doc.menu.main" path="/layouts/vboxLayout.jsp" > <putList name="list" > <add value="common.menu.home" /> <add value="common.menu.examples" /> <add value="common.menu.doc" /> <!-- <add value="common.menu.printer.friendly" /> --> </putList> </definition> <!-- The home menu definition --> <definition name="common.menu.home" path="/layouts/menu.jsp" > <put name="title" value="Tiles" /> <putList name="items" > <item value="Tiles Home" link="/index.jsp" /> </putList> </definition> <!-- Printer friendly menu definition --> <definition name="common.menu.examples" path="/layouts/menu.jsp" > <put name="title" value="Examples" /> <putList name="items" > <item value="Home" link="/examples/index.jsp" /> </putList> </definition> <!-- Documentation menu definition v1.1--> <definition name="common.menu.doc" path="/layouts/menu.jsp" > <put name="title" value="Documentation" /> <putList name="items" > <item value="Home" link="/doc/index.jsp" /> <item value="Live Examples" link="/examples/index.jsp" /> <item value="Quick overview" link="/test/quickOverview.jsp" /> <!--<item value="Tutorial" link="/doc/tutorial.jsp" />--> <item value="Tutorial Live Examples" link="/tutorial/index.jsp" /> <!-- <item value="Tiles Tags" link="/doc/tilesTags.jsp" /> <item value="Download" link="/doc/download.jsp" /> <item value="Installation" link="/doc/installation.jsp" /> <item value="User Guide" link="/doc/userGuide.jsp" /> <item value="Javadoc" link="/api/index.html" /> <item value="Struts Home" link="http://www.apache.org" icon="/images/struts-power.gif" /> --> </putList> </definition> <!-- Printer friendly menu definition --> <definition name="common.menu.printer.friendly" path="/layouts/menu.jsp" > <put name="title" value="Printer Versions" /> <putList name="items" > <item value="Quick Overview" link="/test/testAll.jsp" /> <item value="Tutorial" link="/doc/tutorialBody.html" /> <item value="User Guide" link="/doc/userGuideBody.html" /> <item value="Overview (old)" link="/doc/overviewBody.html" /> </putList> </definition> <!-- MM's definition for Budget Application --> <definition name="budgetLayout" path="/layout/classicLayout.jsp"> <put name="title" value="MM's Budget Application" /> <put name="header" value="/common/header.jsp" /> <put name="footer" value="/common/footer.jsp" /> <put name="body" value="/main.jsp" /> </definition> </tiles-definitions>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]