|
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]

