Hi All,

I've gone  through the samples and archives and still am having trouble
getting return values from an Action.

I followed the sample code for a simple action:

public class GSLoginAction extends AbstractAction {
  public Map act (Redirector redirector,
                  SourceResolver resolver,
                  Map objectModel,
                  String source,
                  Parameters params) {

    String strUserID;
    String strPwd;
    String strPlayerID = "";
    Request request = ObjectModelHelper.getRequest(objectModel);
    strUserID = request.getParameter("userID");
    strPwd = request.getParameter("pwd");

    // do something with the request parameters here and set strPlayerID

    sitemapParams.put("playerID", strPlayerID);
    request.setAttribute("playerID", strPlayerID);
    if (// the right thing happened) {
      return sitemapParams;
    }else {
      return(null);
    }
}

It is defined in the sitemap under <map:actions>, pointing to the correct
class file.
The action is called from this pipeline fragment, which is attached to
the "ACTION" button of a form with two text boxes, "userID" and "pwd".

    <map:match pattern="login">
      <map:act type="gs-login">
      <map:parameter name="use-request-parameters" value="true"/>
        <map:parameter name="userID" value="{1}"/>
        <map:parameter name="pwd" value="{2}"/>
          <map:redirect-to uri="summary">
            <map:parameter name="playerID" value="{playerID}"/>
          </map:redirect-to>
      </map:act>
      <map:redirect-to uri="gs"/>
    </map:match>

I know that the action is running, and the parameters are passed in, because
of some debugging I did in the Java code. I seem to be getting something
back, becuase if I enter correct values on the form, redirect
to "summary" does happen. Otherwise it goes to "gs".

    <map:match pattern="summary">
      <map:generate src="gs.xml"/>
      <map:transform src="gs.xsl">
        <map:parameter name="use-request-parameters" value="true"/>
        <map:parameter name="pagename" value="summary"/>
        <map:parameter name="playerID" value="{1}"/>
      </map:transform>
      <map:transform src="default-html.xsl"/>
      <map:serialize type="html"/>
    </map:match>

The problem is that "playedID" is not being passed to "summary". Do I
simply have a syntax error in working with the parameter, or is it more
complicated than
that?

Thanks very much,
Leona




---------------------------------------------------------------------
Please check that your question  has not already been answered in the
FAQ before posting.     <http://xml.apache.org/cocoon/faq/index.html>

To unsubscribe, e-mail:     <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>

Reply via email to