At line 21 changed 1 line. |
In this step, you'll generate a JSP page to display information from the Person object. It will contain JSF's JSP tags that render table rows for each property in Person.java. The AppGen tool that's used to do this is based off a StrutsGen tool - which was originally written by [Erik Hatcher|http://www.blogscene.org/erik/]. It's basically just a couple of classes and a bunch of XDoclet templates. All these files are located in extras/appgen. |
In this step, you'll generate a JSP page to display information from the Person object. It will contain JSF's JSP tags that render table rows for each property in Person.java. The [AppGen] tool that's used to do this is based off a StrutsGen tool - which was originally written by [Erik Hatcher|http://www.blogscene.org/erik/]. It's basically just a couple of classes and a bunch of XDoclet templates. All these files are located in extras/appgen. |
At line 26 changed 1 line. |
* Execute __ant -Dobject.name=Person -Dappgen.type=pojo__ to generate a bunch of files in extras/appgen/build/gen. In fact, it'll generate all the files you need to complete this tutorial. However, let's just grab the ones you need. |
* Execute __ant -Dobject.name=Person -Dappgen.type=pojo -Dapp.module=__ to generate a bunch of files in extras/appgen/build/gen. In fact, it'll generate all the files you need to complete this tutorial. However, let's just grab the ones you need. |
At line 28 changed 3 lines. |
** web/personForm.jsp (JSP file for viewing a single Person) |
** web/personList.jsp (JSP file for viewing a list of People) |
* Copy the contents of Person.properties into web/WEB-INF/classes/ApplicationResources_en.properties. These are all the keys you will need for titles/headings and form properties. Here is an example of what you should add to ApplicationResources_en.properties: |
** web/personForm.xhtml (Facelets template for viewing a single Person) |
** web/personList.xhtml (Facelets template for viewing a list of People) |
* Copy the contents of Person.properties into web/WEB-INF/classes/ApplicationResources.properties. These are all the keys you will need for titles/headings and form properties. Here is an example of what you should add to ApplicationResources.properties: |
At line 34 changed 3 lines. |
personForm.id=Id |
personForm.firstName=First Name |
personForm.lastName=Last Name |
person.id=Id |
person.firstName=First Name |
person.lastName=Last Name |
At line 51 changed 1 line. |
* Copy personForm.jsp to web/personForm.jsp. Copy personList.jsp to web/personList.jsp. ''Notice that each of the new filename's first character is lowercase.'' |
* Copy personForm.xhtml to web/personForm.xhtml. Copy personList.xhtml to web/personList.xhtml. |
At line 69 added 1 line. |
|
At line 74 added 1 line. |
|
At line 85 changed 1 line. |
assertEquals(bean.save(), "list"); |
assertEquals("list", bean.save()); |
At line 93 changed 1 line. |
assertEquals(bean.edit(), "edit"); |
assertEquals("edit", bean.edit()); |
At line 101 changed 1 line. |
assertEquals(bean.edit(), "edit"); |
assertEquals("edit", bean.edit()); |
At line 110 changed 1 line. |
assertEquals(bean.save(), "edit"); |
assertEquals("edit", bean.save()); |
At line 119 changed 1 line. |
assertEquals(bean.delete(), "list"); |
assertEquals("list", bean.delete()); |
At line 196 changed 1 line. |
You'll notice a number of keys in this file - "person.deleted", "person.added" and "person.updated". These are all keys that need to be in your i18n bundle (ApplicationResources_en.properties). You should've added these at the beginning of this tutorial. If you want to customize these messages, to add the a person's name or something, simply add a {0} placeholder in the key's message and then use the addMessage(key, stringtoreplace) method. You can also use an Object[] for the stringtoreplace variable if you want to make multiple substitutions. |
You'll notice a number of keys in this file - "person.deleted", "person.added" and "person.updated". These are all keys that need to be in your i18n bundle (ApplicationResources.properties). You should've added these at the beginning of this tutorial. If you want to customize these messages, to add the a person's name or something, simply add a {0} placeholder in the key's message and then use the addMessage(key, stringtoreplace) method. You can also use an Object[] for the stringtoreplace variable if you want to make multiple substitutions. |
At line 221 added 2 lines. |
%%note Spring's [DelegatingVariableResolver|http://www.springframework.org/docs/api_1.2/org/springframework/web/jsf/DelegatingVariableResolver.html] helps JSF to resolve "#{personManager}" to the "personManager" Spring bean. This "variableResolver" has already been declared at the top of the ''faces-config.xml'' file.%% |
|
At line 224 changed 1 line. |
<from-view-id>/personForm.jsp</from-view-id> |
<from-view-id>/personForm.xhtml</from-view-id> |
At line 227 changed 1 line. |
<to-view-id>/mainMenu.jsp</to-view-id> |
<to-view-id>/mainMenu.xhtml</to-view-id> |
At line 232 changed 1 line. |
<to-view-id>/mainMenu.jsp</to-view-id> |
<to-view-id>/mainMenu.xhtml</to-view-id> |
At line 270 changed 1 line. |
If you want to add a usability enhancement to your form, you can set the cursor to focus on the first field when the page loads. Simply add the following JavaScript at the bottom of your form (web/personForm.jsp): |
If you want to add a usability enhancement to your form, you can set the cursor to focus on the first field when the page loads. Simply add the following JavaScript at the bottom of your form (web/personForm.xhtml): |
At line 294 changed 1 line. |
<from-view-id>/mainMenu.jsp</from-view-id> |
<from-view-id>/mainMenu.xhtml</from-view-id> |
At line 297 changed 1 line. |
<to-view-id>/personForm.jsp</to-view-id> |
<to-view-id>/personForm.xhtml</to-view-id> |
At line 302 changed 1 line. |
Finally, to make this page more user friendly, you may want to add a message for your users at the top of the form, but this can easily be done by adding text (using <fmt:message>) at the top of the personForm.jsp page. |
Finally, to make this page more user friendly, you may want to add a message for your users at the top of the form, but this can easily be done by adding text (using <fmt:message>) at the top of the personForm.xhtml page. |
At line 363 added 1 line. |
<verifytext description="verify success message" text="${person.updated}"/> |
At line 397 added 1 line. |
<prepareDialogResponse description="Confirm delete" dialogType="confirm" response="true"/> |
At line 399 added 1 line. |
<verifyNoDialogResponses/> |