Please check this function I included into XSPSessionHelper.java in
src/java/org/apache/cocoon/components/language/markup/xsp:
/** GetXML Fragment from the given session context and path
*
*
* @param session The Session object
* @param context The Session context tha define where to search
* @param path The parameter path
* @param defaultValue Value to substitute in absence of the required
Fragment
**/
public static DocumentFragment getXML(ComponentManager cm, String
context, String path) throws ProcessingException {
DocumentFragment df = null;
SessionManager sm = null;
try {
// Start looking up the manager
sm = (SessionManager)cm.lookup(SessionManager.ROLE);
// Make our work
df = sm.getContextFragment(context, path);
if (sm != null) {
cm.release(sm);
}
} catch (ComponentException ce) {
throw new ProcessingException("Error during lookup of
SessionManager component.", ce);
}
// End releasing the sessionmanager
return df;
}
Soon I will publish here too the changes in the xsp-session.xsl
I takes me 3 days!
Antonio Gallardo.
El Jueves, 26 de Septiembre de 2002 03:50, Antonio Gallardo Rivera escribi�:
> I will try to explain how far I am now in the building of the
> <xsp-session:getxml> for XSP.
>
> As I said I was researching about that, now I can get the values of the
> "authentication" context.
>
> In XSP we can use:
> Namespace: xmlns:xsp-session="http://apache.org/xsp/session/2.0"
>
> 2-Add imports:
> <xsp:include>org.apache.cocoon.webapps.session.context.SimpleSessionContext
></xsp:include> <xsp:include>org.w3c.dom.DocumentFragment</xsp:include>
> <xsp:include>org.apache.cocoon.xml.dom.DOMUtil</xsp:include>
>
> 3- Logic inside the xsp:page:
>
> <xsp:logic>
> SimpleSessionContext a =
> ((SimpleSessionContext)<xsp:expr><xsp-session:get-attribute
> name="org.apache.cocoon.webapps.authentication.SessionContext"/></xsp:expr>
>); DocumentFragment b = a.getXML("/");
> String d = DOMUtil.createText(b);
> </xsp:logic>
>
> Only for test I used, and it gets the values I need.
>
> <xsp:expr>b</xsp:expr>
>
> After it returns I saw in the generated HTML that there is only one
> context.
>
> <myhandler>
> <authentication>
> <ID>1</ID>
> <role>myrole</role>
> <data>
> <username>My name</username>
> <birthday></birthday>
> .....
> </data>
> </authentication>
> </myhandler>
>
> I am also researching about how to get the authentication context because
> there are two attributes and the name of the handler can be diferent as
> long as I know. Then:
>
> A) adding imports
> <xsp:include>java.util.ArrayList</xsp:include>
> <xsp:include>java.util.HashMap</xsp:include>
>
> B) <xsp:logic>
>
> ArrayList al =
> ((ArrayList)<xsp:expr><xsp-session:get-attribute-names/></xsp:expr>);
>
> String al0 = ((String)al.get(0));
> String al1 = ((String)al.get(1));oot node, does anyone know how
> HashMap hs = ((HashMap)<xsp:expr><xsp-session:get-attribute
> name="org.apache.cocoon.webapps.authentication.Handlers"/></xsp:expr>);
>
> With al. I can make use of the attributesnames of the session, after that I
> can get the names using the variables al0 and al1.
>
> al0 is org.apache.cocoon.webapps.authentication.Handlers
> and
> al1 is org.apache.cocoon.webapps.authentication.SessionContext
>
> About al1 is above a litlle explain that can helps to get directly the
> authentication ID using the Strings:
>
> <xsp:logic>
> SimpleSessionContext a =
> ((SimpleSessionContext)<xsp:expr><xsp-session:get-attribute
> name="org.apache.cocoon.webapps.authentication.SessionContext"/></xsp:expr>
>); DocumentFragment b = a.getXML("/myhandler/authentication/ID");
> </xsp:logic>
>
> After this, the variable b has the value of "/authentication/ID".
>
> About al0 (org.apache.cocoon.webapps.authentication.Handlers) it is a
> ArrayList that contains the names of the attributes.
>
> Some examples using
>
> <p>Key: <xsp:expr>hs.keySet()</xsp:expr></p>
> <p>Value: <xsp:expr>hs.values()</xsp:expr></p>
> <p>Attribute: <xsp:expr>hs.values()</xsp:expr></p>
>
> But I cannot take the Session Context. I was thinking in a get how to get
> away the context and just write a tag like:
>
> <xsp-session:getxml path="/myhandler/authentication"/>
>
> Another question: Can we add this new function to the already xsp-session
> logicsheet?
>
> Comments are welcome :)
>
> Antonio Gallardo
>
>
>
>
>
>
>
>
> ---------------------------------------------------------------------
> 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]>
---------------------------------------------------------------------
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]>