|
使用Java技术在Cocoon中实现商业逻辑(9) import org.apache.cocoon.environment.Request; import org.apache.cocoon.environment.Session; import org.apache.cocoon.environment.SourceResolver; import org.apache.cocoon.acting.AbstractAction;
import java.sql.Connection; import java.sql.Statement; import java.sql.SQLException;
import java.util.HashMap; import java.util.Map;
public class AddResourceAction extends AbstractAction implements ThreadSafe, Composable, Disposable { protected ComponentSelector dbselector; protected ComponentManager manager;
public void compose(ComponentManager manager) throws ComponentException { this.dbselector = (ComponentSelector) manager.lookup(DataSourceComponent.ROLE + "Selector");
}
protected final DataSourceComponent getDataSource(String pool) throws ComponentException { return (DataSourceComponent) this.dbselector.select(pool); }
public Map act( Redirector redirector, SourceResolver resolver, Map objectModel, String source, Parameters param ) throws Exception { Request req = ObjectModelHelper.getRequest(objectModel); Session ses = req.getSession(true);
String poolName = param.getParameter("pool");
String resourceName = req.getParameter("name"); String resourceUrl = req.getParameter("url");
if (poolName == null) { getLogger().error("Missing a pool name"); return null; }
if (resourceName == null resourceUrl == null) { getLogger().error("Missing input parameters"); return null; }
Map map = new HashMap();
DataSourceComponent dataSource = getDataSource(poolName); Connection conn = null; boolean status = false;
try { conn = dataSource.getConnection(); Statement stmt = conn.createStatement(); String cmd = "insert into Resources values ('" + resourceName + "', '" + resourceUrl + "')"; stmt.executeUpdate(cmd);
map.put("resource-name", resourceName);
|