[ 
http://issues.apache.org/jira/browse/COCOON-1804?page=comments#action_12371298 
] 

Simone Gianni commented on COCOON-1804:
---------------------------------------

Andrew, a validator is simply a java class, so you can create your own 
validators writing a java class implementing 
o.a.c.forms.validation.WidgetValidator . Once you have the class, you have to 
write also another class implementing WidgetValidatorBuilder which acts as a 
factory creating instances of your validator class, and register this builder 
in cocoon.xconf so that cocoon forms can load, configure and use it thru the 
avalon framework.

But Reinhard, AFAIK this does not solve (at least not directly) the problem of 
accessing the session from inside this validator, if not with some 
context/objectmodel static classes.

Could you tell us how to retrieve the current session (request, object model.. 
) from inside a java widget validator (so, eventually, translating it to 
javascript it could be usable also inside the javascript validator)?


> Javascript FOM_SCOPE issue when using Java as the flow engine - 
> ReferenceError: "cocoon" is not defined
> -------------------------------------------------------------------------------------------------------
>
>          Key: COCOON-1804
>          URL: http://issues.apache.org/jira/browse/COCOON-1804
>      Project: Cocoon
>         Type: Bug
>   Components: Blocks: Java Flow
>     Versions: 2.1.8
>     Reporter: Andrew Madu
>     Priority: Blocker

>
> I have created a  java flow class which does the following:
> //Load in validation file
> FormInstance form = new FormInstance("forms/login.xml");
> My login map (snippet) is as follows:
> Login.xml:
>     <fd:validation>
>         <fd:javascript>
>             var success = true;
>             var newUserReg = new Packages.test.User();
>             var username = widget.lookupWidget("username");
>             var password = widget.lookupWidget("password");
>            
>             try {
>                 
>                 var checkUserTest = newUserReg.getUser(username.value, 
> password.value);
>                 
>                 if (checkUserTest != null) {
>                     cocoon.session.setAttribute("user", checkUserTest);
>                     success = true;
>                 }else{
>                     username.setValidationError(new 
> Packages.org.apache.cocoon.forms.validation.ValidationError(e, false));
>                     password.setValidationError(new 
> Packages.org.apache.cocoon.forms.validation.ValidationError("The password, 
> username combination does not exist. Please enter another one.", false));
>                     success = false;
>                 }
>             } catch (e) {
>                     username.setValidationError(new 
> Packages.org.apache.cocoon.forms.validation.ValidationError(e, false));
>                     password.setValidationError(new 
> Packages.org.apache.cocoon.forms.validation.ValidationError("e.", false));
>                     success = false;
>             }
>             return success;
>         </fd:javascript>
>     </fd:validation>
> I am getting an error message when the line 
> 'cocoon.session.setAttribute("user", checkUserTest)' is hit.:
> ReferenceError: "cocoon" is not defined
> What is the issue here, can I create a session object from within form 
> validation/javascript in another way?
> Andrew

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to