My solution is to change the code in DatabaseAction.java to remove the
table_name. from the variable names. I made this change to test it and
it works. I suppose I need to change the code in such a way to allow a
user to supply a configuration directive such as
<append_table_name>false</append_table_name>. Is there any reason I
should not do this or is there a better way?
I'm cross-posting this to the dev list.
Bobby Mitchell wrote:
> To start with, I apologize for posting so many different posts lately.
> I'm stuck and I'm not sure which way to go, but I have been working to
> find a solution. Please disregard the several earlier posts.
> I'm trying to use XMLForms and Mod-db actions together. My problem
> stems from the fact that mod-db uses request parameters from a key
> column to set the ?'s in the query and when setting the request
> parameters to the column values retrieved it sets them by appending
> table_name. to the column/req-param name. My request parameters and
> column names are the same.
>
> Assume my query is select ID, EMAIL from NIAC_MAILLIST where EMAIL=?
> Mod-db is now looking for a request parameter called
> NIAC_MAILLIST.EMAIL and if found it successfully grabs the data from
> the database. Otherwise it exits. If I append
> &NIAC_MAILLIST.EMAIL="b@n" to the query string mod-db works and
> creates the variables for the data, but XMLForm generates an "Invalid
> data format" error. I created a session attribute called
> NIAC_MAILLIST.EMAIL and am setting it to EMAIL. If mod-db would set
> the ? from the session attributes instead of request parameters I
> could set it that way. Otherwise I need to find a way to get mod-db to
> not append the table name to the front of the column.
> Any ideas?
>
> database.xml
> <root>
> <connection>niac_db</connection>
> <table name="NIAC_MAILLIST" alias="NIAC_MAILLIST">
> <keys> <key name="EMAIL" type="string" autoincrement="false">
> </key>
> </keys> <values>
> <value name="ID" type="int"></value>
> <value name="EMAIL" type="string"></value>
> </values>
> </table>
> <table-set name="MAILLIST-sel">
> <table name="NIAC_MAILLIST" others-mode="session"/>
> </table-set>
> </root>
>
> sitemap snippet where I declare the select action
> <map:action name="mod-db-sel
> src="org.apache.cocoon.acting.modular.DatabaseSelectAction">
> <descriptor>database.xml</descriptor>
> <throw-exception>true</throw-exception>
> </map:action>
>
> pipeline where I'm trying to use it.
>
>
> <map:pipeline>
>
> <!-- A non-trivial interactive example - Cocoon Usage Feedback
> Wizard -->
> <map:match pattern="wizard*">
>
> <map:match type="request-parameter" pattern="cocoon-xmlform-view">
> <map:select type="request-parameter">
> <map:parameter name="parameter-name"
> value="cocoon-xmlform-view"/>
> <map:when test="registration">
> <!--
> <map:act type="request">
> <map:parameter name="parameters" value="true"/>
> -->
> <map:act type="req-params">
> <map:parameter name="parameters" value="EMAIL"/>
> <map:act type="session-propagator">
> <map:parameter name="NIAC_MAILLIST.EMAIL"
> value="{EMAIL}"/>
> </map:act>
> <map:act type="mod-db-sel" src="optional src">
> <map:parameter name="table-set" value="MAILLIST-sel"/>
> </map:act>
> </map:act>
> </map:when>
> </map:select>
> </map:match>
>
> <map:act type="WizardAction">
>
> <!-- XMLForm parameters for the AbstractXMLFormAction -->
> <map:parameter name="xmlform-validator-schema-ns"
> value="http://www.ascc.net/xml/schematron"/>
> <map:parameter name="xmlform-validator-schema"
> value="schematron/wizard-xmlform-sch-report.xml"/>
> <map:parameter name="xmlform-id" value="form-feedback"/>
> <map:parameter name="xmlform-scope" value="session"/>
> <map:parameter name="xmlform-model" value="niac.list.ListBean"/>
>
> <!-- Content transformation logic -->
> <map:generate type="serverpages" src="wizard/{page}.xsp"/>
> <map:transform type="xmlform" label="debug, xml"/>
> <map:transform src="stylesheets/wizard2html.xsl" />
> <map:transform
> src="context://samples/stylesheets/xmlform/xmlform2html.xsl"/>
> <map:serialize type="xhtml"/>
> </map:act>
> </map:match>
> </map:pipeline>
>
>
--
Robert J. (Bobby) Mitchell
Systems Administrator
NASA Institute for Advanced Concepts
555A 14th St Atlanta, Ga. 30318
Phone: (404)347-9633 Fax: (404)347-9638
---------------------------------------------------------------------
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]>