In JBoss Tools there is an extensive collection of specialized wizards, editors and views that can be used in various scenerios. The following chapters walksthrough these features.
JBoss Developer Studio is especially designed for supporting JSF and JSF-related technologies. JBDS provides extensible and exemplary tools for building JSF-based applications as well as adding JSF capabilities to existing web projects, importing JSF projects (created outside JBDS) and choosing any JSF implementation while developing JSF application.
JBoss Developer Studio allows you to develop JSF applications much faster and with far fewer errors so sparing your time.
With JBoss Developer Studio, we don't lock you into any one JavaServer Faces implementation. Select the one you want to use for your project.
When you:
Create a new JSF project
Add JSF capability to any existing Eclipse project
Add JSF capability to any existing project (created outside JBDS)
You can always select which JSF implementation to use.
You can also create your own custom JSF environments.
JBoss Developer Studio will add all the required libraries for the selected version to your project.
Facelets extends JavaServer Faces by providing a lightweight framework that radically simplifies the design of presentation pages for JSF. JBoss Developer Studio provides support for Facelets in a variety of ways.
The Create New JSF Project wizard contains templates for creating Faceletsprojects based on version 1.2 of the JSF Reference Implementation:
Once you select the environment, you can select one of the six available templates:
The JBoss Tools Palette comes with the Facelets components ready to use. A useful tip appears when you hover the mouse cursor over the tag:
Code assist for Facelets tags is available when editing xhtml files:
In any HTML tag you also get the code assist for "jsfc" attribute
Then you get the code assist for JSF components are available on the page
Then you will see all available attributes for the component.
Using JBoss Developer Studio OpenOn feature, you can easily navigate between the Facelets templates and other parts of your projects. Just by holding down the Control key while hovering the mouse cursor over a reference to a template, the reference becomes a hyperlink to open that template.
See FAQ concerning Facelets support.
JBoss Developer Studio provides the following when working with JSF:
Create new JSF projects
Import (open) existing JSF projects
Add JSF capability to any existing Eclipse project
Import and add JSF capability to any existing project created outside Eclipse
JBoss Developer Studio allows you to create brand new JSF projects . A new JSF project will have all JSF libraries, tag libraries and a JSF configuration file.
JBoss Developer Studio comes with a number of predefined project templates. These templates are flexible and easily customizable.
To create a brand new JSF project, select File > New > Project > JBoos Tools Web > JSF > JSF Project and click Next :
On this form enter Project Name. You can also select where to create the project.
JSF Version allows you to select which JSF implementation to use:
You can also pick a different template on which to base the project. Almost all templates come in two variations: with jsf libraries and without ones. Some servers already provide jsf libs and you take risk of getting conflicting libraries while deploying your project. So the idea here is to avoid such conflicts. Select a template without libs if you use a server with its own jsf libraries.
The JSFBlank template will create a standard Web project structure with all JSF capabilities.
The JSFKickStart template will create the same standard structure but will also include a sample application that is ready to run.
You can of course create your own custom templates. More information on templates creation could be found in Chapter 5.
On the next screen select what Servlet version to use and whether to register this application with JBoss AS (or other server) for running and testing of your application.
Context Path is the name under which the application will be deployed.
The Runtime value tells Eclipse where to find Web libraries in order to build (compile) the project. It is not possible to finish project creation without selecting Runtime. If you don't have any values, select New... to add new Runtime.
Target Server allows you specify whether to deploy the application. The Target Server corresponds to the Runtime value selected above.
If you don't want to deploy the application, uncheck this value:
When you are all done, you should have the project that has been created in the Package Explorer view:
At this point you can open faces-config.xml and start working on your application.
For detailed information on migration projects to JBoss Developer Studio see Migration Guide.
With JBoss Developer Studio you can add JSF capability (JSF libraries, tag libraries) to any existing Eclipse project in your workspace.
By adding JSF capability to your project, you can now edit any file using JBoss Developer Studio editors, such as JSF configuration editor, JBoss Tools JSP editor and any others.
Right click the project and select JBoss Tools > Add JSF Capabilities . This will start the process of adding all necessary libraries, files to make this a Web JSF project:
The wizard will first show you the web.xml file location and the project name:
On the last form you can set the different folders for your project as well as register this application with a servlet container.
Make sure to select Add JSF Libraries for JBoss Developer Studio to add all required JSF related libraries to this project.
Context Path is the name under which the application will be deployed.
The Runtime value tells Eclipse where to find Web libraries in order to build (compile) the project. It is not possible to finish project import without selecting Runtime. If you don't have any values, select New... to add new Runtime.
Target Server allows you specify whether to deploy the application. The Target Server corresponds to the Runtime value selected above.
If you don't want to deploy the application, uncheck this value:
Once your project is imported you can see that JSF related libraries have been added to your project jsf-api.jar and jsf-impl.jar.
You are now ready to work with JSF by creating a new JSF configuration file:
JBoss Developer Studio has a powerful templating capability for creating new and importing existing Struts and JSF projects. This templating facility has a variety of aspects to consider. But, let's start with the most straightforward case.
Let's say you have a project that you want to use as the basis for a new template. Follow these steps to make a template out of it:
In the Web Projects view, right-click the project and select JBoss Tools JSF > Save As Template as template
In the first dialog box, you can choose a name for the template (defaults to the project name) and confirm what run-time implementation of the project's technology will be used
Select Next and you will be sent to a dialog box with your project structure displayed with check boxes. Here you can check only those parts and files in your project directory that should be part of the template
At this point, unless you want to designate some extra files as having Velocity template coding inside them, you should select Finish
That's it. Now, you can use this template with any new or imported project that uses the same run-time implementation as the project you turned into a template.
The JSF configuration file editor has three main viewers (modes):
Diagram
Tree
Source
The modes can be selected via the tabs at the bottom of the editor.
The JSF configuration editor also comes with a very useful OpenOn selection feature.
The Diagram view displays the navigation rules in the JSF configuration file:
To create a new page (view), you can click the page icon on this toolbar and then click anywhere on the diagram. A New Page Wizard will appear.
To create a transition (rule) connecting pages:
Select the transition icon from the toolbar (2nd from the bottom).
Click the source page.
Click the target page.
A transition will appear between the two pages:
It is also possible to create a new page by right-clicking anywhere on the diagram and selecting New View .
To edit an existing transition, first select the transition line. Then, place the mouse cursor over the last black dot (on the target page). The mouse cursor will change to a big +. At this point, drag the line to a new target page:
The Tree mode for the editor displays all JSF application artifacts referenced in the configuration file in a tree format. Select any node and its properties will appear in the right-hand area:
To edit, right-click any node and select one of the available actions in the context menu. You can also edit in the properties window to the right:
The Source mode for the editor displays a text view of the JSF configuration file. All three viewers are always synchronized, so any changes made in one of the viewers will immediately appear in the others:
Content assist is always available in the Source viewer:
Errors will be reported by JBoss Developer Studio's verification facility:
Other errors are also reported.
You can also work in the Source viewer with the help of the Outline view . The Outline views show a tree structure of the JSF configuration file. Simply select any element in the Outline view, and it will jump to the same place in the Source viewer.
If your diagram is large, within Outline view you can switch to a Diagram Navigator mode by selecting the middle icon at the top of the view window. It allows you to easily move around the diagram. Just move the blue area in any direction, and the diagram on the left will also move:
You can also edit in the Tree viewer with the help of the Properties view as shown below:
JBoss Developer Studio gives you lots of power to work with managed beans.
Add and generate code for new managed beans
Generate code for attributes and getter/setter methods
Add existing managed beans to JSF configuration file
To start, create a new managed bean in JSF configuration file editor, in the Tree view.
When you define a new managed bean, make sure that Generate Source Code is checked as shown in the figure below:
After the "Java" class has been generated you can open it for additional editing. There are two ways to open the "Java" class:
Click on Managed-Bean-Class link in the editor -or-
Right click the managed bean and select Open Source
The generated Java source:
You can also generate source code for properties - this also includes "getter" and "setter" methods:
Make sure that all the check boxes are selected:
Once the generation is complete, you can open the file and see the added property with "getter" and "setter" methods:
If you already have a Java bean you can easily add it to a JSF configuration file.
You should start the same way you create a new managed bean. Use Browse... to add your existing Java class.
Once the class is set, it's Name will be set as well. But you can easily substitute it for the other one. Notice that Generate Source Code option is not available as the "Java" class already exists.
After adding your class Next button will be activated. Pressing it you'll get Managed Properties dialog where all corresponding properties are displayed. Check the necessary ones to add them into your JSF Configuration File.
If you don't want to add any, just click Finish .
In the Project Explorer view open faces-config.xml and select Tree tab.
Select Converters and click on Add button.
Type the name of your converter in the Converter-id field and name of the class for converters. After clicking Finish button your custom converter is registered under entered name.
Let's create "converter" class. In the Converter section you should see your Converter-id and Converter-class. Click on Converter-class to generate the source code.
Java class will be created automatically. Leave everything without changes and click Finish .
To open converter class click again on Converter-class link in the Converter section. Now you are able to write business logic of converter.
In the Project Explorer view open faces-config.xml and select Tree tab.
Select Validators , and click on Add button.
Type the name of your validator in the Valifator-id field an d name of the class for validators. After clicking Finish button your custom validator is registered under entered name.
Let's create "validator" class. In the Validator section you should see your Validator-id and Validator-class. Click on Validator-class to generate the source code.
Java class will be created automatically. Leave everything without changes and click Finish .
To open validator class click again on Validator-class in the Validator section. Now you are able to write business logic of validator.
In the Project Explorer view open faces-config.xml and select Tree tab.
Select Referenced Beans and click on Add button.
Type in the name of your Referenced Bean and type in or select Referenced-Bean-Class by using Browse button.
In the Referenced Bean section you should see your Referenced-Bean-Name and Referenced-Bean-Class. Click on the link to open the Java creation wizard.
Java class will be created automatically. Leave everything without changes and click Finish .
To open Referenced Bean class click again on Referenced-Bean-Class in the Referenced Bean section. Now you are able to write business logic of Referenced Bean.
If you prefer develop web applications using Struts technology JBoss Developer Studio also meets your needs.
JBDS supports the Struts 1.1, 1.2.x versions.
When you create a brand new or import an existing project you can set which Struts version to use:
JBoss Developer Studio provides the following when working with Struts.
Create new Struts projects
Import (open) existing Struts projects
You can import any project structure
Add Struts capabilities to any existing Eclipse project
Import and add Struts capabilities to any existing project created outside Eclipse
JBoss Developer Studio includes a New Struts Project Wizard that radically simplifies the process for getting started with a new Struts project. You just need to follow these 4 steps:
Select File > New > Project... from the menu bar. Then, select JBoss Tools Web > Struts > Struts Project in this dialog box. Click Next:
On this screen, provide the project name. You can leave all other values as they are:
Don't put spaces in project names.
If you select the KickStart template, then the project created will include a simple Hello World type application that is ready-to-run.
Next, you can register this application with the current servlet container defined for your workspace (JBoss AS, by default) in order to allow you to test your application more easily while still developing it. A new entry will be added in the servlet container configuration file to enable running the application in-place (called null deployment or link deployment). Uncheck the "Target Server" check box if for some reason you don't want to register your application at this point.
On the next screen, you can select the TLD files to include in this project:
After the project is created, you should have the following project structure (if you used the KickStart template):
If you want to hide the jar files from Web App Libraries in view, select the down-pointing arrow in the upper right corner, select Filters..., check the box next to Name filter patterns (matching names will be hidden), and type *.jar into the field. Then, click OK.
For detailed information on migration projects to JBoss Developer Studio see Migration Guide.
With JBoss Developer Studio you can add Struts capabilities (including Struts libraries, tag libraries and a Struts configuration file) to any existing Web application project in your Eclipse workspace. By adding a Struts Nature to your project, you can now edit files using JBoss Developer Studio editors, such as the Struts configuration editor and the JBoss Tools JSP editor.
Right-click the project and select JBoss Tools > Add Struts Capabilities from the context menu. This will start the process of adding all necessary libraries and files to make this a Web JSF project.
The wizard will first show you the web.xml file location and the project name.
After hitting Next, you will see the following screen. This screen simply means that you need to add at least one Struts module to your project to make this project a Struts project. Adding a Struts module means that a new struts-config.xml will be added to your project and registered in the web.xml file. In addition, all required Struts libraries will be added. To add a Struts module, select the Add Struts Support button.
Here you can select what Struts version, Servlet class, URL pattern and TLDs to add to this project.
When done, you will see the default Struts module configuration information. See how to Edit Struts modules.
On the last screen you can set the different folders for your project as well as register this application with a servlet container.
When done, you can open the struts-config.xml file. (The Struts configuration is shown below in the Tree viewer).
The Struts configuration file editor has three main viewers (modes): Diagram (shown), Tree and Source. The modes can be selected via the tabs at the bottom of the editor. Any changes made in one mode are immediately visible when you switch to any other mode.
When working in Source view, you always have all the following features available:
Content Assist
Open On Selection
File Folding
The Diagram mode graphically displays the Web flow of the application defined in the Struts configuration file.
Just by right-clicking anywhere on the diagram, you can use a context menu to create the building blocks of a Struts application:
Actions
Global forwards
Global exceptions
JSP Pages
Along the upper-left side of the editor is a stack of seven icons for changing the behavior of the cursor in the diagram. The first icon switches to the default regular selection cursor, the second to the marquee selection cursor and the third to the new connection cursor. The last four icons switch the cursor to an insert cursor for each type of Struts build block listed above (and in the order listed).
For instance, clicking on the first of these four icons (the one with the gears) will switch the cursor to insert actions. Clicking anywhere in the diagram with this cursor has the same effect as right-click and selecting Add > Action... from the context menu with the regular cursor active. It's just more efficient to use this cursor if you're adding more than one action at once.
In the Tree mode, the different elements of the Struts application are organized into functional categories on the left-hand side and a form for editing the properties of currently selected items on the right-hand side.
You can also right-click on any node in the category tree and perform appropriate operations through a context menu. For instance, by right-clicking on the action-mappings category node, you can add new actions to the application.
In the Source mode, you have complete editing control of the underlying XML coding:
You can take advantage of code assist:
The editor will also immediately flag any errors:
Finally, you can use the Outline view with the editor to easily navigate through the file:
The Tiles configuration file editor has three main viewers (modes): Tree (shown), Diagram and Source. The modes can be selected via the tabs at the bottom of the editor. Any changes made in one mode are immediately visible when you switch to any other mode.
When working in Source view, you always have all following features available:
Content Assist
Open On Selection
To create a new Tiles files, right click any folder and select New > Tiles File.
In the Tree mode, the different elements of the Tiles file are organized into functional categories on the left-hand side and a form for editing the properties of currently selected items on the right-hand side.
To edit the file, simply right click any node and select among the available actions:
The Diagram mode is shown below:
To create new definitions, simply right click anywhere in the diagram:
You can also use the Diagram toolbar to make editing easier:
The Tiles editor also comes with a Source view that gives you full control over the source. Any changes here will immediately appear in other viewers when you switch to them.
Content assist is available in the Source mode:
Any errors are immediately reported as shown below:
You can also use the Outline view together with the editor's Source mode. Selecting any node in the Outline view will jump to that place in the source.
JBoss Developer Studio comes with a visual validation editor. To create a new validation file, right click any folder and select File > Validation File from the context menu.
The validation editor works through a number of viewers.
The Formsets viewer shows forms and their elements for which to define validation rules.
The Constants viewer lets you set constant values for your validation rules.
The validation file also can be viewed in a Tree viewer.
At any point you have full control over the source by switching to the Source viewer. Any editing in this viewer will immediately be available in other viewers of this editor.
You can also open your own custom or Struts-standard validation-rules.xml file.
The Validators viewer shows the validation rules for a selected validator. You can of course add your own rules.
Here are the validation rules shown in the Source viewer.
JBoss Developer Studio supports working with Struts projects that have multiple modules. You can easily do the following:
Add new modules
Edit modules for an existing project or during Struts project import
During Struts project import, if the project has multiple modules, you will see a screen with all existing modules. You can select each module and edit its details.
To edit modules in an existing project, right click the project and select JBoss Tools > Modules Configuration.
You will see the same screen as above where you will be able to select a module and edit its details:
Adding a new module is very simple. First switch to Web Project view. Expand your project to the Configuration folder. Under that folder you should see the current modules. Right click on Configuration and select New > Struts Config.
You will see the screen below. You can specify a new module name and also add the new Struts configuration file to web.xml file.
JBoss Developer Studio comes with a code generation feature. You can generate stub code for Struts Actions, FormBeans, Forwards and Exceptions.
The code generation in JBoss Developer Studio is based on Velocity templates which can be modified for your use. The templates are located at {RedHatDeveloperStudioHome} > templates > codegeneration .
There are a number of ways to invoke code generation. One is simply right-clicking the Struts diagram and selecting Generate Java Code....
On this screen you can select for which elements to generate code. If you select Next you will be able to specify more options for each of the categories you selected.
please be careful not to override your existing files.
When generation is complete, a result window will appear letting you know how many classes were generated:
You don't always have to generate code for all elements at once. You can invoke generation for just an individual Struts artifact as well. Right-click an element on the diagram of the Struts configuration file and select Generate Java Code... from the context menu.
The same can be done from within the Tree viewer for the editor of the Struts configuration file.
JBoss Developer Studio comes with Struts configuration file debugger. It allows you to set break points on Struts diagram and then simply launch the server in debug mode.
Simply right click an Action or a page and select Add Breakpoint.
Custom page links allow you to define custom Struts page links that will be recognizable in the Struts application diagram. You can define these links by selecting Window > Preferences from the menu bar and then selecting JBoss Tools > Web > Struts > Customization from the Preferences dialog box.
The JBoss Tools Palette allows you to:
Insert tags into a JSP page with one click
Add custom and 3rd party tags.
The JBoss Tools Palette provides possibility to add any tag libraries to it. Or you can choose a necessary one from the list of already existent tag libraries:
HTML
JBoss
JSF
JSTL
MyFaces
Oracle ADF Faces
Struts
XHTML
In the Palette Editor window(Figure 5.1. "Palette Editor") we can see that every group contains its own subgroups. For example, JSF includes Core, Facelets, HTML. So, in the Palette every group has the next view: <Group name> <Subgroup name>.
By default the Palette is represented in Web Development Perspective with four groups(Figure 5.2. "JBoss Tools Palette"). If you can't see it, select Window > Show View Other... > JBoos Tools Web > JBoss Tools Palette from the menu bar.
By using Show/Hide button you can add any predefined group of tag libraries. It's also possible to create your own group.
A new tag can be added into any text file including jsp, xhtml и htm(l).
It's very simple to do this. Place the cursor in the JSP page where you want to add a tag and then click the tag in the palette. In the example below, the commandButton tag has been inserted. Notice also that if you place the cursor over any tag, a balloon tip is shown with all the "tag" attributes.
The cursor position after adding a tag into a file is specified by "|" symbol in the tag template on the right in the Palette Editor window.
Above you can see where the cursor position for HTML/Form/input is set. So, after adding this tag into your file the cursor will be in the attribute "type". Then, you can straight use the combination of buttons Ctrl + Space to inquire about a prompting.
There are two ways to add any custom or 3rd party tag library to the JBoss Tools Palette:
Drag-and-drop from the Web Projects view
The Import button on the JBoss Tools Palette
Before you can add your custom component library, you need to make sure it is included in your project. Either place the ".tld" file or the ".jar" that includes your tag library under the lib folder in your project.
Switch to the Web Projects view and expand the Tag Libraries folder. If the view not active, select Window > Show View > Web Projects from the menu bar.
Also make sure that the JBoss Tools Palette is open. Select the tag library that you want to add and simply drag-and-drop it on to the JBoss Tools Palette.
You will see the following dialog window. As you can see JBoss Developer Studio takes care of all the details. You just need to set the Group name to which to add this tag library. You can either add this tag library to an existing Group or just create a new one.
Once you are finished, you will see the new tag library added to the JBoss Tools Palette.
There is possibility to configure the JBoss Tools Palette:
to edit the palette content by adding, removing or changing the palette elements
to show/hide groups, subgroups
to import groups, subgroups