You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Jochen Kemnade (JIRA)" <ji...@apache.org> on 2015/08/10 12:49:45 UTC

[jira] [Updated] (TAP5-1981) RadioGroup component validation error

     [ https://issues.apache.org/jira/browse/TAP5-1981?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jochen Kemnade updated TAP5-1981:
---------------------------------
    Labels: patch  (was: )

> RadioGroup component validation error
> -------------------------------------
>
>                 Key: TAP5-1981
>                 URL: https://issues.apache.org/jira/browse/TAP5-1981
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.3.4
>            Reporter: Alex Lumpov
>              Labels: patch
>         Attachments: RadioGroup.java.patch, mavenproject1.zip
>
>
> Here is example.
> Let's admit is bean with a property "number" which value should not be greater than 2.
> There are 2 forms with RadioGroup.
> The first form uses tapestry validation, The second - JSR-303.
> If you will choose "3" and will submit the first form - validation will not work.
> If you will choose "3" and will submit the second form that there will be an exception.
> package com.mycompany.mavenproject1.entities;
> import javax.validation.constraints.Max;
> /**
>  *
>  * @author AlexLumpov
>  */
> public class Bean {
> 	private int number;
> 	@Max(2)
> 	public int getNumber() {
> 		return number;
> 	}
> 	public void setNumber(int value) {
> 		number = value;
> 	}
> }
> package com.mycompany.mavenproject1.pages;
> import com.mycompany.mavenproject1.entities.Bean;
> import org.apache.tapestry5.FieldValidator;
> import org.apache.tapestry5.annotations.Component;
> import org.apache.tapestry5.annotations.Environmental;
> import org.apache.tapestry5.annotations.Persist;
> import org.apache.tapestry5.corelib.components.RadioGroup;
> import org.apache.tapestry5.services.PropertyEditContext;
> /**
>  * Start page of application mavenproject1.
>  */
> public class Index {
> 	@Component(parameters = {"value=bean.number", "validate=prop:beanValidator"})
> 	private RadioGroup group2;
> 	/* */
> 	@Persist
> 	private Bean bean;
> 	/* */
> 	@Environmental
> 	private PropertyEditContext context;
> 	public Bean getBean() {
> 		if (bean == null)
> 			bean = new Bean();
> 		return bean;
> 	}
> 	public FieldValidator getBeanValidator() {
> 		return context.getValidator(group2);
> 	}
> }
> <!DOCTYPE html>
> <html xmlns="http://www.w3.org/1999/xhtml"
>       xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd"
>       xmlns:p="tapestry:parameter">
>     <head>
>         <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
> 		<title>RadioGroup Validation Test</title>
>     </head>
>     <body>
> 		<h1>test 1</h1>
>         <t:form>
> 			<t:errors/>
>             <t:RadioGroup value="bean.number" validate="max=2">
>                 <t:radio value="1"/>1<br/>
>                 <t:radio value="2"/>2<br/>
> 				<t:radio value="3"/>3<br/>
> 			</t:RadioGroup>
> 			<t:submit/>
>         </t:form>
> 		<h1>test 2</h1>
> 		<t:BeanEditForm object="bean">
> 			<p:number>
> 				<t:comp t:id="group2">
> 					<t:radio value="1"/>1<br/>
> 					<t:radio value="2"/>2<br/>
> 					<t:radio value="3"/>3<br/>
> 				</t:comp>
> 			</p:number>
> 		</t:BeanEditForm>
>     </body>
> </html>



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)