// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= Adding Support For A Web Framework
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Adding Support For A Web Framework - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Adding Support For A Web Framework

This document provides a general description of how to add support for a web framework in NetBeans IDE. The steps provided show how you can add support by installing a web framework plugin into the IDE using the Plugins manager. After you install the plugin you will be able to select the framework in the New Project wizard when you create a web project. The new web project that you create will contain the necessary infrastructure specific to the chosen framework.

The easiest way to add support for a particular web framework is by installing a NetBeans plugin using the IDE's Plugins manager if the plugin is available. This is convenient if you have Internet access while working in the IDE. Plugins for many web frameworks are also available via the link:http://plugins.netbeans.org/PluginPortal/[+NetBeans Plugin Portal+]. If you do not have regular Internet access, you can download the plugin modules (e.g., from the Plugin Portal) when you have the opportunity, then install them into the IDE at a later time.

In this tutorial you will add support for the Apache Struts 2 framework by downloading a plugin from the NetBeans Plugin Portal and installing the plugin using the Plugins manager.

*Note: *The IDE bundles support for the link:../../docs/web/jsf20-support.html[+JavaServer Faces 2.x+] and link:../../docs/web/quickstart-webapps-struts.html[+Struts 1.3.10+] and link:../../docs/web/quickstart-webapps-spring.html[+Spring 3.x and 4.x+] frameworks. The specific version of the bundled framework depends upon the version of the IDE.


image::images/netbeans-stamp-80-74-73.png[title="Content on this page applies to the NetBeans IDE 7.2, 7.3, 7.4 and 8.0"]


*To complete this tutorial, you need the following software and resources.*

|===
|Software or Resource |Version Required 

|link:https://netbeans.org/downloads/index.html[+NetBeans IDE, Java EE bundle+] |7.2, 7.3, 7.4, 8.0 

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Java Development Kit (JDK)+] |version 7 or 8 
|===

*Notes:*

* The Web and Java EE installation enables you to optionally install the Apache Tomcat 7.x servlet container, and the GlassFish server 3.1. Depending on the framework you plan to use, you must install one of these to work through this tutorial.
* You must also have an Internet connection to download necessary plugins and/or access them via the IDE's Plugins Manager.


== Installing Framework Support Plugins

You can add support for a specific framework by installing the appropriate framework support plugin into the IDE. To do so, you can either download the plugin modules from an external site such as the link:http://plugins.netbeans.org/PluginPortal/[+NetBeans Plugin Portal+] then install the plugin via the Plugins Manager, or, if the plugin is maintained by an update center, you can register the update center with the IDE's Plugins Manager and then download and install the plugin directly through the Plugins Manager.

* <<manually,Downloading Manually>>
* <<updateCenter,Installing from an Update Center>>

Some plugins are available for download from sites such as the link:http://plugins.netbeans.org/PluginPortal/[+NetBeans Plugin Portal+] or directly from the site of the plugin developer. The following table provides links to locations where you can download some plugins for frameworks.

|===
|Framework |Plugin Location |Download Location 

|link:http://struts.apache.org/[+Apache Struts 2+] |link:http://java.net/projects/nbstruts2support/[+http://java.net/projects/nbstruts2support/+] |link:http://plugins.netbeans.org/plugin/39218/struts2-support-repack-for-nb-7-0[+ http://plugins.netbeans.org/plugin/39218/struts2-support-repack-for-nb-7-0+] 

|link:http://wicket.apache.org/[+Wicket+] |link:http://nbwicketsupport.dev.java.net/[+https://nbwicketsupport.dev.java.net+] |link:http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=3586[+ http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=3586+] 

|link:http://www.icefaces.org/main/home/[+ICEfaces 2.0+] |link:http://www.icefaces.org/main/home/[+http://www.icefaces.org/main/home/+] |link:http://www.icefaces.org/main/downloads/[+ http://www.icefaces.org/main/downloads/+] 
|===


=== Downloading and Installing the Apache Struts2 Support Plugin

For the purpose of demonstration, this section will describe how to download and install the link:http://plugins.netbeans.org/plugin/39218/struts2-support-repack-for-nb-7-0[+Apache Struts2 Support Repack for NB 7.0+] plugin from the NetBeans Plugin Portal. This plugin installs the libraries and UI support for Apache Struts 2.

*Note.* The plugin repackages the link:http://java.net/projects/nbstruts2support/[+NetBeans Struts2 Support plugin+] because the NetBeans Struts2 Support plugin has not been updated for NetBeans IDE 7.0. For additional information about each of the plugins, see the respective plugin details pages.

1. Download the zip archive that contains the required Apache Struts 2 plugins from the link:http://plugins.netbeans.org/plugin/39218/struts2-support-repack-for-nb-7-0[+ Struts2 Support Repack for NB 7.0 page+] on the link:http://plugins.netbeans.org/PluginPortal/[+NetBeans Plugin Portal+] and extract the contents to your computer.

When you extract the contents, you will see that the archive contains three files.

*  ``org-netbeans-modules-web-frameworks-struts2.nbm`` 
*  ``org-netbeans-modules-web-frameworks-struts2lib218.nbm`` 
*  ``org-netbeans-modules-web-frameworks-struts2lib20011.nbm`` 

NetBeans plugins can be identified by the  ``.nbm``  extension.

2. From the IDE's main menu, choose Tools > Plugins to open the Plugin Manager.
3. Select the Downloaded tab, then click the Add Plugins button.
4. In the Add Plugins dialog, navigate to the directory that contains the plugins and select the NetBeans plugins. Click Open.
image::images/plugin-archive-contents.png[title="The zip archive contains the NetBeans plugins"]

Hold down the Ctrl key to select multiple items.

5. In the Plugins manager, select each of the Struts2 plugins.

A description of the selected plugin is displayed in the right pane of the Plugins manager.

[.feature]
--
image::images/add-plugins-sm.png[role="left", link="images/add-plugins.png"]
--
6. Click Install to open the NetBeans IDE Installer, then click Next and accept the license agreement.

*Note.* If you receive a validation warning, click Continue to install the plugin. A validation warning occurs if you attempt to install a plugin that has not been signed. While you can generally trust all plugins, when you install a plugin that has not been signed, you are doing so at your own risk.

7. Restart the IDE to allow changes to take effect.

After you install the plugin and restart the IDE, you can confirm that the plugin was installed by opening the Plugins manager, clicking the Installed tab and locating the plugin in the list of installed plugins.


=== Installing from an Update Center

If the framework support plugin is maintained by an update center, you should consider installing the update center into the IDE. This enables you to then install the framework support plugin directly through the Plugins manager. The Plugins manager also logs any updates made to plugins maintained by update centers, providing you with a simple and effective means of keeping installed plugins up-to-date.

Various update centers are already registered with the IDE by default. To see a list of the update centers that are currently registered, open the Plugins manager (Tools > Plugins) and choose the Settings tab.

[.feature]
--
image::images/pluginsmanager-settings-sm.png[role="left", link="images/pluginsmanager-settings.png"]
--

If you want to register a new update center, click the Add button in the Settings tab and supply the details in the Update Center Customizer.

image::images/uc-customizer.png[title="Update Center Customizer dialog box"] 


=== Registering the NetBeans Plugin Portal Update Center

The Plugin Portal update center that is registered with the IDE by default contains a subset of the plugins that are contributed by the community and that are known to be compatible with the version of the IDE that you installed. If you want to use the Plugins manager to browse all the plugins that are available from the link:http://plugins.netbeans.org/[+NetBeans Plugin Portal+], you can perform the following steps to install a plugin to add the NetBeans Plugin Portal Update Center to the list of registered updated centers.

1. Download the link:http://plugins.netbeans.org/plugin/1616/plugin-portal-update-center[+NetBeans Plugin Portal Update Center plugin+].
2. Open the Downloaded tab in the Plugins manager.
3. Click Add Plugins and locate the  ``1252666924798_org-netbeans-pluginportaluc.nbm``  file that you downloaded. Click Install.

After you install the plugin, the NetBeans Plugin Portal Update Center is added to the list of registered update centers in the Settings tab of the Plugins manager

*Note.* You can deactivate an update center by deselecting the checkbox for the update center in the Active column of the Settings tab.

[.feature]
--
image::images/portal-uc-plugin-sm.png[role="left", link="images/portal-uc-plugin.png"]
--

If you click the Available Plugins tab you can see that all the plugins that have been contributed by the community to the NetBeans Plugin Portal have been added to the list of available plugins.

Click Reload Catalog to update the list of plugins.

[.feature]
--
image::images/portal-uc-list-sm.png[role="left", link="images/portal-uc-list.png"]
--

You can sort the list by clicking on a column heading and you can filter the list by entering terms in the Search field.

* The Plugin Portal Update Center lists all the plugins that are available from the link:http://plugins.netbeans.org/[+NetBeans Plugin Portal+]. Many of the plugins will be for older versions of the IDE and will be incompatible with the version of the IDE that you are using. Installing plugins for other versions of the IDE might cause your IDE installation to behave unreliably.* In many cases, but not all, there will be a message that informs you if a plugin cannot be installed. As with the installation of all software, you should exercise caution and carefully read the documentation before attempting to install a plugin.


== Working with Framework Support in the IDE

Framework support in the IDE is generally specific to the framework you are working with. For example, the Struts2 support provides wizards that enable you to easily create commonly-used Struts classes, as well as code completion in Struts configuration files.

You can add framework support to a web application either through the New Project wizard at the time that you create the application, or you can integrate support into an existing application.

* <<newProject,Creating a New Project with Framework Support>>
* <<existingProject,Adding Framework Support to an Existing Project>>


=== Creating a New Project with Framework Support

1. Choose File > New Project (Ctrl-Shift-N; ⌘-Shift-N on Mac) from the main menu. The New Project wizard opens. Select Web under Categories, then under Projects, select Web Application. Click Next.
2. Type a name for the Project Name and specify a location for the project on your computer.
3. Step through the wizard and accept any default settings. Specify a server to deploy the application to by choosing one that is already registered with the IDE (i.e., the GlassFish server or Tomcat).
4. In the Frameworks panel of the New Project wizard, choose the framework that you want to add. Click Finish. 
image::images/newproject-wizard-frameworks-sm.png[title="Struts 2 Support listed in Frameworks panel of the New Project wizard"]

In this example, support for the Struts2 framework is selected in the Frameworks panel. You can see that the Frameworks panel now offers the option to choose either Struts 1.3.8 (bundled with the IDE) or Struts2 (added by installing a plugin). The Struts 2 support plugin adds the Struts2 option to the New Projects wizard and displays tabs with options for Configuration and Libraries. The Configuration tab provides the option to create an example page in the project. The Libraries tab enables you to select the version of the Struts2 libraries that you want to add to the classpath.

When you click Finish, the IDE creates the web application. The additional files that the wizard creates will vary according to the framework. In this example, the wizard created the  ``struts.xml``  XML configuration file in the Source Packages folder and added the required Struts2 libraries to the classpath. The wizard also automatically added a Servlet filter class and a filter mapping to  ``web.xml`` .

image::images/project-structure-frameworks.png[title="Logical structure of Struts web application displayed in Projects window"]  


=== Adding Framework Support to an Existing Project

If you have an existing web project and you would like to add support for a framework to the project, you can use the Project Properties dialog box to add frameworks that are available in the IDE.

1. In the Projects window, right-click the web application project's node and choose Properties to open the Project Properties window.
2. Select Frameworks in the list of Categories.

When you select Frameworks, the right panel displays a Used Frameworks text area, which is empty if the application does not use a framework.

3. Click the Add button, then select the framework you want to use and click OK. 
image::images/properties-add-framework.png[title="JavaServer Faces framework selected in the Add Framework dialog opened from the Project Properties window"]
4. Depending on the chosen framework, you can specify further framework-specific configuration settings or components in the Project Properties window. 
image::images/add-icefaces.png[title="Adding a library for the ICEfaces component suite to the project"]

For example, if you want to specify the ICEfaces component suite you can select ICEfaces in the Components tab of the Project Properties window and specify the ICEfaces library.

*Notes.* The libraries for JSF components are not included with the IDE. To use a component suite you need to download the required libraries and then create a NetBeans library that you can then add to the project classpath in the Project Properties window.

5. Click OK to confirm your selection and close the Project Properties window. The framework-specific artifacts and libraries are added to your project, which you can examine in the Projects window.
link:/about/contact_form.html?to=3&subject=Feedback:%20Adding%20Web%20Framework%20Support[+ Send Feedback on This Tutorial+]



== See Also

This document described how to add support for a web framework in NetBeans IDE. It demonstrated how to install framework support plugins by downloading manually as well as via an update center in the IDE's Plugin Manager. It also showed how to add an IDE-supported framework to both a new web application project and an existing project.

This tutorial focused on adding the Struts2 framework. If you would like to explore the other features offered by this framework, see link:../../docs/web/quickstart-webapps-struts.html[+Introduction to the Struts Web Framework+].

For more information about using other web frameworks in NetBeans IDE, see the following resources:

* link:../../docs/web/quickstart-webapps-spring.html[+Introduction to the Spring Web Framework+]
* link:../../docs/web/quickstart-webapps-struts.html[+Introduction to the Struts Web Framework+]
* link:../../docs/web/quickstart-webapps-wicket.html[+Introduction to the Wicket Web Framework+]
