Vroom Web Framework - plugin detail

Vroom Plugin enables Vroom Framework support to develop Web Applications. The revision includes Vroom Framework support under Web Frameworks, Comprehensive Code Completion, Customized Mini JavaScript and HTML editors which are extended to include Vroom Framework specific Code Completion Items, and Vroom-2.2.0 Framework Library. Check my latest blog post on how I've used EJBs, YUI DataTable and Vroom Web Framework. http://vroom-framework.blogspot.com/2008/09/ejbs-yui-datatable-and-javascript-using.html

NetBeans Plugin - Vroom Web Framework
Plugin owner: ijazfx
Website: http://www.sourceforge.net/projects/vroom/
Added: 2008-08-17
License: GPL v3
Category: Web Applications
Downloaded: 3,197 times
 4.21, by 1 users

Plugin Log Show log

Versions available

Download plugin   Download size: 0.53 MB   Last Update: 2011-05-13

What's new in this version

A major bug related to JSON encoding is fixed in the framework version 2.2.1. There is no change in the plugin except newer Vroom Framework 2.2.1. It's better to use this plugin 1.1.1 because some of you may be working with multi-lingual applications. In addition to this in Version 2.2.1, the support for xhtml file have been added.

Verifications for NetBeans versions

Plugin is not subject to any verification


Get the best of Client and Server. Use your favorite web framework and power up with Vroom. Bring Java EE in your JavaScript with simplicity. , , elements has been introduced in the vroom config file. An additional attribute "url" is introduced to element. This provides users option to attach a complete javascript file to evaluate. The javascript file can access server side variables using #{} notation. Also, the users can generate url which can be passed to Ajax object to invoke Java Method: E.g.

var url = VroomUtils.generateUrl('getCustomers', 'com.myco.bean.DatabaseBean');
var data = null;
new Ajax.Request(url, {
    asynchronous: false,
    onSuccess: function(transport) {
        data = transport.responseJSON;

You can also pass the URL to other frameworks such as Yahoo UI DataSource for AutoComplete list and/or DataTable. Here is a sample screen shot from my blog post where I've used EJBs, Yahoo UI DataTable and Vroom Web Framework using NetBeans IDE 6.1.

The plugin provides NetBeans support for Vroom Web Framework, a highly flexible and extremely simple framework to build and manage web applications and their contents. The plugin provides comprehensive code completion for Vroom Configuration File and enables Web Framework support for Vroom.

With Vroom, you can easily do following:

  1. Inject meta tags, scripts, stylesheets, link (including rss and rdf) tags to individual or group of webpages identified by a uri pattern
  2. Modify document, window, navigator and HTML DOM element properties with static contents or dynamic (a JSON string returned by a public method defined in any public Java class).
  3. Provide your custom javascript code which can be executed on HTML DOM events or
  4. Bind HTML DOM events with server side java methods
  5. Bind HTML forms to invoke java method on submit and automatically populate the properties of a bean before reaching in side the method body, so you don't need to retrieve values from request parameters.
  6. Control webpage navigation based on outcome. These outcomes are strings returned from the method that was bound with the form. This is added functionality, you may chose not to use the navigation machanism. In that case you need to explicitly forward or redirect the response inside the method.
  7. You can also use Vroom with other web frameworks such as Struts or JSF. In that case, instead of writing custom java beans to provide methods for binding, you can use action forms and actions in Struts and backing beans in JSF.

[ You have to be logged in to be able to comment. ]

User Comments


RE: VROOM in action

Hi ahmadux! Thanks for your comments. I agree with you that I need to spend more time in preparing a proper user guide for the framework. It takes time

for one to understand the philosophy of the framework but once things are clear, it's really smooth and in fact provides much flexibility in writing Ajax

-based web applications. I've seen people spending a lot of time in writing Servlets to provide JSON/XML data to their Ajax controls. Vroom eliminates the

need of Servlets and provides you an easy to use mechanism to provide service methods for Ajax components. No matter what you return in your methods, the

framework automatically convert it to JSON. E.g. If I prepare a class with a method greet() as follows:

public class GreetingBean {
public String greet(HttpServletRequest req) {
String name = req.getParameter("name");
if(name != null || name.trim().length() > 0) {
return "Hello " + name;
return "Hello User";

It's extremely simple to use this bean for service to your Ajax development e.g. I prepare a simple javascript file named "index-btnGreet-onclick.js" in a

folder named "scripts" and place the following code in it:

var url = VroomUtils.generateUrl('greet', 'GreetingBean'); // , 'gb', 'request');
// assuming i've a form on HTML page named 'frmTest' with an input field named 'name'
// following method will help me to build parameter list to send as part of the request.
var params = VroomUtils.buildParams('frmTest');

new Ajax.Request(url, {
parameters: params,
onSuccess: function(transport) {
var obj = transport.responseJSON;

Below is the web page named "index.html" or "index.jsp" which contains the form and input field:

<form name="frmTest" action="#">
Enter Your Name: <input name="name" type="text"/>
<input id="btnGreet" type="button" value="Greet Me"/>

To bind the btnGreet button to run script file "index-btnGreet-onclick.js" when it gets clicked, you need to define a definition in vroom-config.xml file

as follows:

<webpage uri="/|/index.(html|jsp)">
<element id="btnGreet">
<event type="onclick">
<call type="script" url="#{contextPath}/scripts/index-btnGreet-onclick.js">

That's it! Compile and run the program and you'll see things in action.

As far as jMaki components are concerned, the framework is flexible enough to work with any framework provided it uses "name" or "id" for the HTML

attributes. To make Vroom to work with jMaki, you need to modify the jmaki.js file. Locate the addWidget() method in jmaki.js file and modify the code as


this.addWidget = function(widget) {
// Start Addition... This will enable us to assign VroomUtils.generateUrl(...)
// which generates URL dynamically.
if(widget.service !== null) {
widget.service = eval(widget.service);
// End Addition
if (this.loaded){this.loadWidget(widget);}

Another change you may need to make is in the component.js of all of your jMaki components you're using in the web application. Because jMaki by default

treats the service response to be a value or array where as Vroom always return a map encapsulating the value or array. so wherever in the component.js

you're referring to an array you need to suffix that variable with .array e.g. rows --> rows.array or for single value you need to use .value.

For two reasons, I've not provided direct support for jMaki in my framework:
Fisrt, I can't modify my framework to rely on a specification that may change except J2EE or Java EE specifications
Second, I think jMaki is a good wrapper library but the side effects of using it is you add an additional over head because jMaki Yahoo components are

converted to Yahoo components at runtime, second the publish/subscribe machanism which seems to be quite interesting architecturally, over complicates if

I want to get benefit of additional features of Yahoo components. At the end it's all your choice and Vroom is quite flexible to accomodate your desires.

Posted by ijazfx on Sep 22, 2008

VROOM in action

First of all, this is an amazing framework! I went thru the tutorials and the documentation. The documentation, I am sorry to say, is a bit lacking. Maybe a little more time needs to be spent on that aspect. The tutorials were straight-forward and easy to follow.

Your framework works great with the default YUI components. I was wondering how would one go about using it with jMaki components?
Posted by ahmadux on Sep 22, 2008