Hi,
i am doing it that way:
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import org.apache.avalon.excalibur.datasource.DataSourceComponent;
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.ComponentSelector;
import org.apache.avalon.framework.component.Composable;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.cocoon.Constants;
import org.apache.cocoon.Roles;
import org.apache.cocoon.acting.AbstractComplementaryConfigurableAction;
import org.apache.cocoon.environment.Redirector;
import org.apache.cocoon.environment.Request;
import org.apache.cocoon.environment.Session;
import org.apache.cocoon.environment.SourceResolver;
public class CategoryAction extends AbstractComplementaryConfigurableAction
{
private DataSourceComponent datasource;
public void compose(ComponentManager manager) throws ComponentException {
getLogger().debug( "HelpDesk : application.CategoryAction/compose :
start" );
ComponentSelector selector = (ComponentSelector)manager.lookup(
Roles.DB_CONNECTION );
datasource = (DataSourceComponent)selector.select( "helpdesk" );
getLogger().debug( "HelpDesk : application.CategoryAction/compose :
datasource = " + datasource );
getLogger().debug( "HelpDesk : application.CategoryAction/compose :
end" );
}
public Map act( Redirector redirector,SourceResolver resolver,Map
objectModel,String source,Parameters params ) throws java.lang.Exception {
getLogger().debug( "HelpDesk : application.CategoryAction/act : start"
);
getLogger().debug( "HelpDesk : application.CategoryAction/act :
redirector
= " + redirector );
getLogger().debug( "HelpDesk : application.CategoryAction/act :
resolver
= " + resolver );
getLogger().debug( "HelpDesk : application.CategoryAction/act :
objectModel = " + objectModel );
getLogger().debug( "HelpDesk : application.CategoryAction/act : source
= " + source );
getLogger().debug( "HelpDesk : application.CategoryAction/act : params
= " + params );
Map result = new HashMap();
Request request = (Request)objectModel.get( Constants.REQUEST_OBJECT );
Session session = request.getSession( true );
String action = request.getParameter( "action" );
String category_xpl = request.getParameter( "category_xpl" );
String category_id = request.getParameter( "category_id" );
getLogger().debug( "HelpDesk : application.CategoryAction/act : request
= " + request );
getLogger().debug( "HelpDesk : application.CategoryAction/act : session
= " + session );
getLogger().debug( "HelpDesk : application.CategoryAction/act : action
= " + action );
getLogger().debug( "HelpDesk : application.CategoryAction/act :
category
id = " + category_id );
getLogger().debug( "HelpDesk : application.CategoryAction/act :
category
xpl= " + category_xpl );
if( action.startsWith( "Save" ) ) {
try {
Connection con = datasource.getConnection();
Statement sta = con.createStatement();
getLogger().debug( "HelpDesk :
application.UploadAction/act : insert
category problem relation = " + sta.execute( "INSERT INTO menu_problem_rel
( menu_ref,problem_ref ) VALUES ( " + category_id + "," +
request.getParameter( "id" ) + ")" ) );
sta.close();
con.close();
}
catch( SQLException exc ) {
getLogger().debug( "HelpDesk :
application.UploadAction/act :
SQLException!",exc );
}
}
else if( action.startsWith( "Delete" ) ) {
Connection con = datasource.getConnection();
Statement sta = con.createStatement();
getLogger().debug( "HelpDesk :
application.UploadAction/act : insert
category problem relation = " + sta.execute( "DELETE FROM menu_problem_rel
WHERE problem_ref = " + request.getParameter( "id" ) + " AND menu_ref = " +
category_id ) );
sta.close();
con.close();
}
getLogger().debug( "HelpDesk : application.CategoryAction/act : result
= "
+ result );
getLogger().debug( "HelpDesk : application.CategoryAction/act : end" );
return Collections.unmodifiableMap( result );
}
}
> -----Ursprüngliche Nachricht-----
> Von: Ling Kok Choon [mailto:[EMAIL PROTECTED]]
> Gesendet: Dienstag, 7. August 2001 09:43
> An: [EMAIL PROTECTED]
> Betreff: How to getConnection in Action ?
>
>
> Hi All,
>
> I try to use Action in the Sitemap to dinamicaly select
> stylesheet file base on the request
> *.xml file. so in the Action, i need to get a connection from
> the connection pool to connect to
> the database. But How to get the connection ? I have read the
> Cocoon2 Documentation ( section
> Using Databases) but the example code is wrong, i can't find
> the import classes (e.g.
> org.apache.avalon.ComponentManager,
> org.apache.avalon.ComponentSelector ) from the Avalon's
> package !
>
> Do you have any idea ?
>
>
> Thank you.
>
> Kok Choon.
>
>
>
> --------------------------------------------------------
> Name: Ling Kok Choon
> E-mail: Ling Kok Choon <[EMAIL PROTECTED]>
> Date: 08/07/01
> Time: 15:42:44
>
> This message was sent by Z-Mail Pro - from NetManage
> NetManage - delivers Standards Based IntraNet Solutions
> --------------------------------------------------------
>
> ---------------------------------------------------------------------
> Please check that your question has not already been answered in the
> FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
>
> To unsubscribe, e-mail: <[EMAIL PROTECTED]>
> For additional commands, e-mail: <[EMAIL PROTECTED]>
>
>
---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail: <[EMAIL PROTECTED]>