Hello,
This is driving me crazy. I hope someone can enlighten me. I am
using struts-faces and when I navigate to manageWFCollections.faces I
get the following error: Cannot find action 'saveWFCollection.do'
configuration. For some reason struts cannot find what I specify in the
"<s:form" tag. I am running tomcat 5.5 with struts-1.3.5. I also
verified that I have no duplicate jars and checked several other
aspects. I am just at a loss on this one. Any help is greatly
appreciated. Here is my set up (web.xml, struts-config.xml,
manageWFCollection.jsp):
--- web.xml
--------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<!-- JSF Session state saving method -->
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<!-- JavaServer Faces servlet definitions -->
<servlet>
<servlet-name>faces</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Struts Action servlet definitions -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- JavaServer Faces servlet mapping/via *.faces extension -->
<servlet-mapping>
<servlet-name>faces</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<!-- Struts servlet mapping/via *.do extension -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
--- WEB-INF/struts-config.xml
----------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<data-sources />
<!-- Form beans -->
<form-beans>
<form-bean name="manageWFCollectionForm"
type="com.ctgcentral.smart.workflows.ManageWFCollectionForm" />
</form-beans>
<global-exceptions />
<!-- Global forwards -->
<global-forwards>
<forward name="manageWFCollection"
path="/manageWFCollection.faces"/>
</global-forwards>
<!-- Action mappings -->
<action-mappings>
<!-- Save collection -->
<action path="/saveWFCollection"
type="com.ctgcentral.smart.workflows.ManageWFCollectionAction"
name="manageWFCollectionForm" scope="request"
validate="true"
input="manageWFCollection">
<forward name="success" path="/defaultContent.faces"/>
</action>
</action-mappings>
<!-- End action mappings -->
<!-- Struts-Faces request processor -->
<controller>
<set-property property="inputForward" value="true"/>
<set-property property="processorClass"
value="org.apache.struts.faces.application.FacesRequestProcessor"/>
</controller>
<!-- Messages file -->
<message-resources
parameter="com.ctgcentral.smart.workflows.ApplicationResources" />
<!-- Validator plugin -->
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/org/apache/struts/validator/validator-rules.xml,
/WEB-INF/validation.xml"/>
</plug-in>
</struts-config>
--- manageWFCollection.jsp - Where I am getting the error -------
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="s" uri="http://struts.apache.org/tags-faces" %>
<f:view>
<f:loadBundle var="messages"
basename="com.ctgcentral.smart.workflows.ApplicationResources"/>
<s:html locale="true">
<head>
<title>
<h:outputText value="#{messages['default.title']}"/>
</title>
<s:base id="base"/>
<s:stylesheet path="/workflows.css"/>
</head>
<body>
<%-- Display errors if any --%>
<s:errors/>
<%-- Display form elements --%>
<s:form id="manageWFCollection" action="saveWFCollection.do"
focus="name"
onsubmit="return validateManageWFCollectionForm(this);">
<h:inputHidden id="action" value="#{manageWFCollectionForm.action}"/>
<h:inputHidden id="id" value="#{manageWFCollectionForm.id}"/>
<table boder="0" cellpadding="2" cellspacing="1">
<tr>
<td align="right">
<h:outputLabel for="name" styleClass="label">
<h:outputText value="#{messages['workflows.terms.name']}"/>:
</h:outputLabel>
</td>
<td>
<h:inputText id="name" size="29" styleClass="field"
value="#{manageWFCollectionForm.name}"/>
</td>
</tr>
<tr>
<td align="right" valign="top">
<h:outputLabel for="description" styleClass="label">
<h:outputText
value="#{messages['workflows.terms.description']}"/>:
</h:outputLabel>
</td>
<td>
<h:inputTextarea rows="5" cols="23" styleClass="field"
value="#{manageWFCollectionForm.description}"/>
</td>
</tr>
<tr>
<td>
</td>
<td>
<h:commandButton id="submit" type="SUBMIT" styleClass="submit"
value="#{messages['form.submit']}"/>
<h:commandButton id="reset" type="RESET" styleClass="reset"
value="#{messages['form.reset']}"/>
</td>
</tr>
</table>
</s:form>
<%-- Call the validation javascript --%>
<s:javascript formName="manageWFCollection"
method="validateManageWFCollectionForm"
dynamicJavascript="true" staticJavascript="false"
cdata="false"/>
<script language="Javascript1.1" src="staticJavascript.jsp"></script>
</body>
</s:html>
</f:view>
-----------------------------------------------------------------------
Thanks,
Jonathan Bailey
Software Engineer
CTG