Recent Notes

Displaying keyword search results 1 - 10
Created by Fang on March 06, 2012 12:25:33    Last update: March 06, 2012 12:25:33
In the bean validation API javadoc, for every constraint annotation, there's a corresponding .List annotation. For example, for @NotNull , there's @NotNull.List , for which JavaDoc says: Defines several @NotNull annotations on the same element What would you accomplish with multiple @NotNull annotations that you cannot accomplish with one @NotNull ? This is a test to reveal some of the facts. Change the Person class to: package com.example; public class Person { ... Add another JUnit test ( src/test/com/example/TestPersonWithList.java ): package com.example; import java.util.Itera... As the test shows, a Person bean can never be valid because we are requiring that name must begin with Mr and Ms . One might think that the same can be accomplished by simply repeating the @Pattern annotation multiple times,...
Created by Fang on March 06, 2012 12:24:53    Last update: March 06, 2012 12:24:53
Validation groups can be used to control which rules validation rules to run. A validation group can be identified by any Java interface (not class!). Multiple validation groups may be specified when validating. In this example, I added a validation group named MyValidationGroup ( src/main/java/com/example/MyValidationGroup.java in Maven project): package com.example; public interface MyVal... and added a @Size rule for a person's name, because my database can only store up to 15 characters for a person's name: package com.example; import javax.validatio... Now validate Person with a JUnit test ( src/test/java/com/example/TestPersonWithGroup.java in Maven project): package com.example; import java.util.Set; ... Test with " mvn clean test ". The rules where groups is not specified, which belong to the javax.validation.groups.Default group, are not executed with these tests.
Created by Fang on March 06, 2012 12:24:05    Last update: March 06, 2012 12:24:05
A bean class may also be defined through composition. The validation rules of referenced beans are not automatically called when a composite bean is validated. You need to use the @Valid annotation to trigger cascade validation. As an example, I create a class named AccountPerson2 , which contains a Person with the addition of an email field ( src/main/java/com/example/AccountPerson2.java in Maven project): package com.example; import javax.validatio... Now validate AccountPerson2 with a JUnit test ( src/test/java/com/example/AccountPerson2Test.java in Maven project): package com.example; import java.util.Set; ... Test with " mvn clean test " and you'll see that the validation rules of the Person class are executed when an AccountPerson2 bean is validated. Without the @Valid annotation, the validation rules of Person will not be called.
Created by Fang on March 06, 2012 12:22:48    Last update: March 06, 2012 12:22:48
When a bean class inherits another class, the validation rules of the parent class is automatically executed when a child class bean is validated. As an example, I create a class named AccountPerson , which inherits the Person class with the addition of an email field ( src/main/java/com/example/AccountPerson.java in Maven project): package com.example; import javax.validatio... Now validate AccountPerson with a JUnit test ( src/test/java/com/example/AccountPersonTest.java in Maven project): package com.example; import java.util.Set; ... Test with " mvn clean test " and you'll see that the validation rules of the Person class are executed when an AccountPerson bean is validated.
Created by Fang on March 05, 2012 20:32:37    Last update: March 05, 2012 20:32:37
In this simple example, I create a simple validating bean and create a JUnit test to test the validation. The bean ( src/main/java/com/example/Person.java ): package com.example; import javax.validatio... The test ( src/test/java/com/example/TestPerson.java ): package com.example; import java.util.Set; ... Run the test: mvn clean test You'll notice that one test passed and the other failed. The tests require that a person must have a name and the name cannot be empty, so @NotNull is not the right rule to use here. To make sure that the name is not empty, we need to use @Pattern . But since a null String matches any pattern, @NotNull is also needed: package com.example; import javax.validatio...
Created by Fang on October 31, 2011 21:10:10    Last update: October 31, 2011 21:13:10
In this example I'll add a parameter to a facelets template. The example contains three tabs, each tab points to a different page. The tab control is shared among all pages, therefore, it is put in the template. Starting from the simple facelet example , make these additions: Create a new template WEB-INF/templates/tabs.xhtml : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Stric... Add a page for the about tab ( about.xhtml ): <?xml version="1.0" encoding="UTF-8"?> <ui:comp... Add a page for the news tab ( news.xhtml ): <?xml version="1.0" encoding="UTF-8"?> <ui:comp... Add a page for the partner tab ( partner.xhtml ): <?xml version="1.0" encoding="UTF-8"?> <ui:comp... Build and re-deploy the application. Launch the browser and load page http://localhost:8080/facelet-demo/about.jsf . This is a screenshot:
Created by Fang on October 28, 2011 14:49:53    Last update: October 28, 2011 14:52:19
Facelet templates can be nested, for example, a page can use a template which inherits from another template. To demonstrate this, let's start from the simple example and make these additions: Add a place holder for CSS style sheets in WEB-INF/templates/default.xhtml : <h:head> <title>Facelets Template Demo</tit... Add a derivative template ( WEB-INF/templates/default-style.xhtml ) which provides CSS: <?xml version="1.0" encoding="UTF-8"?> <ui:comp... Add a page that uses the styled template ( home-style.xhtml ): <?xml version="1.0" encoding="UTF-8"?> <ui:comp... The only difference between this file and home.xhtml is the template being used. Compare the display of the pages home.xhtml and home-style.xhtml .
Created by freyo on August 04, 2011 12:27:27    Last update: August 04, 2011 12:30:42
I got this error while building an APK: [apply] [apply] UNEXPECTED TOP-LEVEL ERROR... Apparently the dx tool was running out of memory. The dx script (shell or bat) provides options to pass in Java options, but it's a lot easier just to bump up the default in dx : # By default, give dx a max heap size of 1 gig. Th... Here, I changed the default 1024M to 1624M and resolved the problem.
Created by Dr. Xi on July 27, 2011 08:55:34    Last update: July 27, 2011 08:55:34
It is OK to remove elements from a list with Iterator , but you get UnsupportedOperationException if the list is created with Arrays.asList : import java.util.*; public class IteratorRe... Prints: ArrayList test: ================ List size: ...
Created by alfa on July 15, 2011 13:25:45    Last update: July 15, 2011 13:25:45
Read the whole contents of a file into a String. It's better to read the whole file as bytes and convert to String than to read the file line by line and concatenate the lines. String getFileContents(String fileName) throws... Using java.nio : import java.io.FileInputStream; import java...
Previous  1 2 3 Next