Is format rule compilant with Turbine 2.1 ?

I wrote in the inkake.xml this group :
<group name="AgendaGroup" key="agenda" mapToObject="om.Agenda">
<field name="AgendaId" key="agendaid" type="NumberKey" mapToProperty="AgendaId">
<rule name="mask" value="^$|[0-9]+">Veuillez s�lectionner un agenda.</rule>
</field>
<field name="JourD" key="jourd" type="String" mapToProperty="JourD">
<rule name="required" value="true">Jour ne doit pas �tre vide.</rule>
<rule name="format" value="dd/MM/yyyy">Jour doit respecter le format : ("jj/mm/aaaa").</rule> </field>
</group>

When I submit the form, the fields are checked with the method call :
intake.isAllValid() . This returns true even if the date is false.

An exception is thrown if I use the type "DateString" for the field "JourD". It happens when I display a page.

[Fri Jan 17 13:57:15 CET 2003] -- INFO -- Finish Initializing service (late): UploadService
[Fri Jan 17 13:57:16 CET 2003] -- ERROR --
Exception: org.apache.turbine.util.TurbineException
Stack Trace follows:
java.lang.NullPointerException
at org.apache.turbine.services.intake.model.FieldFactory.getInstance(FieldFactory.java:154)
at org.apache.turbine.services.intake.model.Group.<init>(Group.java:154)
at org.apache.turbine.services.intake.TurbineIntakeService.getGroup(TurbineIntakeService.java:368)
rethrown as org.apache.turbine.util.TurbineException
at org.apache.turbine.services.intake.TurbineIntakeService.getGroup(TurbineIntakeService.java:372)
at org.apache.turbine.services.intake.TurbineIntake.getGroup(TurbineIntake.java:85)
at org.apache.turbine.services.intake.IntakeTool.init(IntakeTool.java:131)
at org.apache.turbine.services.pull.TurbinePullService.populateWithRequestTools(TurbinePullService.java:479)
at org.apache.turbine.services.pull.TurbinePullService.populateContext(TurbinePullService.java:415)
at org.apache.turbine.services.pull.TurbinePull.populateContext(TurbinePull.java:145)
at org.apache.turbine.services.velocity.TurbineVelocityService.getContext(TurbineVelocityService.java:218)
at org.apache.turbine.services.velocity.TurbineVelocity.getContext(TurbineVelocity.java:140)
at org.apache.turbine.modules.pages.VelocityPage.doBuildBeforeAction(VelocityPage.java:84)
at org.apache.turbine.modules.pages.DefaultPage.doBuild(DefaultPage.java:137)
....

More over when I submit the form, an exception is also thrown :
[Fri Jan 17 13:59:42 CET 2003] -- ERROR --
Exception: java.lang.reflect.InvocationTargetException
Stack Trace follows:
java.lang.reflect.InvocationTargetException
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:324)
at org.apache.turbine.util.velocity.VelocityActionEvent.executeEvents(VelocityActionEvent.java:166)
at org.apache.turbine.util.velocity.VelocityActionEvent.perform(VelocityActionEvent.java:114)
at org.apache.turbine.modules.actions.VelocityAction.perform(VelocityAction.java:114)
at org.apache.turbine.modules.ActionLoader.exec(ActionLoader.java:122)
at org.apache.turbine.modules.pages.DefaultPage.doBuild(DefaultPage.java:143)
...
at java.lang.Thread.run(Thread.java:536)
Caused by: org.apache.turbine.util.TurbineException
at org.apache.turbine.services.intake.TurbineIntakeService.getGroup(TurbineIntakeService.java:372)
at org.apache.turbine.services.intake.TurbineIntake.getGroup(TurbineIntake.java:85)
at org.apache.turbine.services.intake.IntakeTool$PullHelper.setKey(IntakeTool.java:258)
at org.apache.turbine.services.intake.IntakeTool$PullHelper.setKey(IntakeTool.java:243)
at org.apache.turbine.services.intake.IntakeTool.get(IntakeTool.java:318)
at fr.qualipse.qualiback.modules.actions.actu.AgendaAction.doCtrl(AgendaAction.java:133)
at fr.qualipse.qualiback.modules.actions.actu.AgendaAction.doInsert(AgendaAction.java:42)

Has anybody any idea ?

Are there any documentation about date format ?

Quinton McCombs wrote:

Use the format rule instead of mask. The format rule is only for date
fields. It actually does validate the date.


-----Original Message-----
From: Xavier Ottolini [mailto:[EMAIL PROTECTED]] Sent: Thursday, January 16, 2003 8:00 AM
To: turbine Users List
Subject: group.setProperties throws an exception, how to get the original e.getMessage ?


Hi,

I use Intake to test the validity of my forms. Unfortunately, the regular expression is not enough efficient for testing dates. For instance, the date "11/31/2003" (november, the 31th 2003) does not exist.

In the business object, a exception can be thrown is the date is false.
public void setJourD(String s ) throws TurbineException
{
try
{
super.setJour(DateFormater.stringToDate(s));
} catch (Exception e) {
throw new TurbineException("Jour doit respecter le format : (\"jj/mm/aaaa\") et donner un jour valide.",e);
}
}

In the action class, the group is mapped to the bean. In the followin code, entry is the bean and agendaGroup is the group.
try
{
agendaGroup.setProperties(entry);
} catch (org.apache.turbine.util.TurbineException tex) {
context.put("errorTemplate", tex.getMessage());
context.put("mode", mode);
data.getParameters().add("mode", mode);
setTemplate(data, "/actu/AgendaForm.vm");
return false;
}

The problem is that the message tex.getMessage() of this turbine exception is not the same as the message os the business object. Le message is "An exception prevented the mapping to fr.qualipse.qualiback.om.Agenda@345b43".

How can I avoid this and display the original message ?

I would appreciate some help.


--
To unsubscribe, e-mail: <mailto:turbine-user-> [EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>



--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>



--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to