Jspx Features

Jspx has many features that makes it very easy to use and powerful to create rich applications.

Jspx Live Demo »

Business case Driven Framework

Looking to the development work showing it as a set of efforts to use existing facilities (programming languages, frameworks) to build systems that serve certain business needs. We (Software people) usually face limitations and constrains in these facilities that makes our job more difficult. Starting out of such point we designed JSPX to be more close to usual business needs. We provided the answer for the questions

  1. "What do I often do?"
  2. "Can my framework do this for me?"
  3. "Can I stop doing the same code over and over?"
Actually most of the utilities given with JSPX is simply most of the needs of the Software Developers. And if you need to add more, simply you can ask for it, or to do it yourself so easily.

HTML Based

Jspx is mainly based on HTML standard Tags. There are some custom tags that are needed to create rich applications. for example (AjaxPanel, DataTable, ListTable)

Web Forms

Normally web development is all about web forms that invokes the server side actions. To use the built-in features in Jspx you should create an html From. Jspx needs html forms to inject its already packed scripts, CSS and images.

Ajax Support

Jspx is supporting ajax by nature. You can you AjaxPanel (Document) to convert certain part of your HTML page into ajax support just by wraping it with <ajaxPanel> tage. Even if this part includes a input file upload control. It will work in ajax as well.
Jspx has some of controls that work in ajax by default.

  1. DataTable
  2. AutoComplete
  3. CustomValidator

Validators

Validators are very essential to validate the end user input data. Jspx provides half a dozen of validators that works on both server and client side. Jspx 2.1 offers a new type of validator that is the custom validator. The custom validator is a server side validator that fires an ajax request to backend user method that will validate the input using java code. More about validators can be found in the validators document.

DataTable

Jspx is mainly based on HTML standard Tags. There are some custom

ListTable

JAAS Ready

JSPX is integrating with JAAS to provide better utility to control the visibility of items on the screen based on the role of the logged in user. JSPX provides a new concept of Authorization, where the roles can be applied on different levels.

Allowed Roles/Denied Roles Attributes

Jspx reduce these efforts by using a declarative attributes over in the Page or any Item inside to allow /deny the listed roles on this control. There are 2 jspx attributes that can be added to any Element inside the Page, even if it is an imaginary element like <foo />.

  1. AllowedRoles
    AllowedRoles is used to specify the white list of roles can see/invoke this control.
  2. DeniedRoles
    DeniedRoles is used to specify the black list of roles cannot see/invoke this control.
The values of these attributes are comma separated values of the names of the JAAS Roles. You can use * for all Roles.

This sample is showing how to allow only admin and super users to access the reset password button.

        <input id="resetPasswrodButton" type="button" onserverclick="doReset" value="reset password" alloweroles="admin,super" />
        
This sample is showing how to deny only guest users to access the delet user button.
        <input id="deleteUser" type="button" onserverclick="deDelete" value="reset password" deniedroles="guest"/>
        

Simulated Actions

User can simulate the firing of an event that he is not allowed to do. for example he can send a "Reset Password" to the server although he is not allowed to see reset password button. JSPX in the server side will check for the role of the user to know whether the Control invoked the event has a role constrains or not. If the fired Event "doReset" is invoked from control "resetPasswordButton" which allows only Users in Role Super or Admin. then the current user role is inspected to see if he is in these roles or not. If not, log statement is put and the event is ignored.

Tabel Security

Tabel (DataTable,ListTable) has events like Delete, Edit and Insert. As DataTable for instance is accessing DB directly, it is easily to perform one of the above actions by simulating sending the event to the server, although the user is not allowed to do such actions. JSPX Table is inspecting the event to see, did the developer gave the user the ability of doing so? Insert-> did the developer set shownew attribute to true in the Table tag? Edit -> did the developer added a DataColumnCommand of type Edit? Delete -> did the developer added a DataColumnCommmand of type Delete? If not, the event is ignored and log statement is thrown.

Importing JSP files

Migrating to new framework is not that easy. Large enterprises do not take that step even to well known software like JDK. We considered that aspect while we designed JSPX. JSPX offers two main ways of integrations with other frameworks. Using JSPX inside already created projects. Using units created by other frameworks inside JSPX page. Both ways are supported, as you can use JSPX inside any already created web application. On the other case, JSPX offers the ability to include JSPs files using the jspInclude control.


			<jspinclude file="/home/pages/list.jsp" />