You were right Geert.
Adding <!--V 'ERRORS'/--> solved my problem. However, i'm little confused about this behavior, since firstName is my only constrained property...
I can't figure out why it is requested to have this tag.
However, i really enjoy learning RIFE, like i enjoy its community. Thanks a lot all you guys for the efficient and fast support you provide.

Best regards

Laki



Geert Bevin wrote:
Hi Laki,

just add a <!--V 'ERRORS'/--> tag, I think you might have other properties with errors and the have to be displayed somewhere. If you don't provide a targeted value tag for every property, you need to at least provide the fallback tag.

Hope this helps.

Geert

On 08 May 2006, at 22:25, laki roganovic wrote:

Thanks a lot for your help.

Unfortunately, there's still something i can't get...
I closely looked at the wiki http://rifers.org/wiki/display/RIFE/Validation.

So i changed my code this way :

template :

<!--V 'ERRORS:*'/-->

<form action="[!V 'SUBMISSION:FORM:vip_data'/]" method="post"><!--V 'SUBMISSION:PARAMS:vip_data'/-->
<table>
   <tr>
       <td><!--V 'L10N:label.firstname'-->d_first name<!--/V--></td>
                 <td><!--V 'FORM:INPUT:firstName' /--></td>
       <td></td>
   </tr>
</table>

<input type="submit" value="[!V 'L10N:validate'/]" /></form>
</form>


implementation :

public class InscriptionVIP extends Element {
   static Logger logger = Logger.getLogger(InscriptionVIP.class);

   public void processElement() {

       Template template = getHtmlTemplate("mypackage.inscription_vip");

ResourceBundle bundle = Localization.getResourceBundle("text", "fr");
       template.addResourceBundle(bundle);

       VIP vip = (VIP) getNamedSubmissionBean("vip_data", "vip");

       if (vip != null) {
           Validated v = (Validated) vip;
           if (!v.validate()) {
               logger.debug("not validated");

ValidationBuilderXhtml builder = new ValidationBuilderXhtml();
               builder.setFallbackErrorArea(template,
                       "The first name is not valid.");

           } else {
               logger.debug("validated");
           }
           v.resetValidation();
       }
       print(template);
   }
}


This way, my sample works great.

But i still can not make it work this way :

template :


<!--B 'ERRORS:firstName'-->
The first name is not valid.
<!--/B-->



<form action="[!V 'SUBMISSION:FORM:vip_data'/]" method="post"><!--V 'SUBMISSION:PARAMS:vip_data'/-->
<table>
   <tr>
       <td><!--V 'L10N:label.firstname'-->d_first name<!--/V--></td>
                 <td><!--V 'FORM:INPUT:firstName' /--></td>
       <td><!--V 'ERRORS:firstName'/--></td>
   </tr>
</table>

<input type="submit" value="[!V 'L10N:label.validate'/]" /></form>
</form>


implementation :


public class InscriptionVIP extends Element {
   static Logger logger = Logger.getLogger(InscriptionVIP.class);

   public void processElement() {

       Template template = getHtmlTemplate("mypackage.inscription_vip");

ResourceBundle bundle = Localization.getResourceBundle("text", "fr");
       template.addResourceBundle(bundle);

       VIP vip = (VIP) getNamedSubmissionBean("vip_data", "vip");

       if (vip != null) {
           Validated v = (Validated) vip;
           if (!v.validate()) {
               logger.debug("not validated");
               generateForm(template, vip);

           } else {
               logger.debug("validated");
           }
           v.resetValidation();
       }
       print(template);
   }
}

I still get the following error message :

com.uwyn.rife.template.exceptions.ValueUnknownException: The template doesn't contain a value with id 'ERRORS'. at com.uwyn.rife.template.AbstractTemplate.setValue(AbstractTemplate.java:496) at com.uwyn.rife.site.AbstractValidationBuilder.generateValidationErrors(AbstractValidationBuilder.java:410) at com.uwyn.rife.site.FormBuilderXhtml.generateForm(FormBuilderXhtml.java:112) at com.uwyn.rife.site.FormBuilderXhtml.generateForm(FormBuilderXhtml.java:60) at com.uwyn.rife.engine.ElementContext.generateForm(ElementContext.java:3151) at com.uwyn.rife.engine.ElementSupport.generateForm(ElementSupport.java:4735) at com.uwyn.rife.engine.ElementSupport.generateForm(ElementSupport.java:4703) at mypackage.inscription.InscriptionVIP.processElement(InscriptionVIP.java:32) at com.uwyn.rife.engine.ElementContext.processContext(ElementContext.java:587)
   at com.uwyn.rife.engine.RequestState.service(RequestState.java:212)
   at com.uwyn.rife.engine.Gate.handleRequest(Gate.java:416)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at com.uwyn.rife.servlet.RifeFilter.doFilter(RifeFilter.java:127)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
   at java.lang.Thread.run(Thread.java:595)


Thanks for your help.

Laki


Geert Bevin wrote:

Hey guys,

The "<!--V 'FORM:INPUT:firstName' /-->" did it for retaining the field value.
Yes, It is generated by RIFE and retain value.


Just clarifying something here.

The <!--V 'FORM:INPUT:firstName'/--> tag generates an entire form input tag from constraints, and populates it with the current value from the bean property. If you're just interested in filling in the parameter value that was submitted, you can use this too: <input type="text" name="firstName" length="51"
maxlength="50" value="[!V 'PARAM:firstName'][!/V]" />
I prefer the first one though, since it generates everything according to the constraints.

Best regards,

Geert

--Geert Bevin Uwyn bvba GTalk: [EMAIL PROTECTED]
"Use what you need"     Avenue de Scailmont 34  Skype: gbevin
http://www.uwyn.com     7170 Manage, Belgium      AIM: geertbevin
gbevin at uwyn dot com  Tel: +32 64 84 80 03   Mobile: +32 477 302 599

PGP Fingerprint : 4E21 6399 CD9E A384 6619  719A C8F4 D40D 309F D6A9
Public PGP key  : available at servers pgp.mit.edu, wwwkeys.pgp.net


_______________________________________________
Rife-users mailing list
[email protected]
http://lists.uwyn.com/mailman/listinfo/rife-users


_______________________________________________
Rife-users mailing list
[email protected]
http://lists.uwyn.com/mailman/listinfo/rife-users


--
Geert Bevin             Uwyn bvba               GTalk: [EMAIL PROTECTED]
"Use what you need"     Avenue de Scailmont 34  Skype: gbevin
http://www.uwyn.com     7170 Manage, Belgium      AIM: geertbevin
gbevin at uwyn dot com  Tel: +32 64 84 80 03   Mobile: +32 477 302 599

PGP Fingerprint : 4E21 6399 CD9E A384 6619  719A C8F4 D40D 309F D6A9
Public PGP key  : available at servers pgp.mit.edu, wwwkeys.pgp.net


_______________________________________________
Rife-users mailing list
[email protected]
http://lists.uwyn.com/mailman/listinfo/rife-users


_______________________________________________
Rife-users mailing list
[email protected]
http://lists.uwyn.com/mailman/listinfo/rife-users

Reply via email to