Core J2EE Patterns - Value List Handler

Implementation of the Core J2EE Patterns - Value List Handler .

Most Java 2 Platform, Enterprise Edition (J2EE) applications have a search and query requirement to search and list certain data. In some cases, such a search and query operation could yield results that can be quite large. It is impractical to return the full result set when the client's requirements are to traverse the results, rather than process the complete set. Typically, a client uses the results of a query for read-only purposes, such as displaying the result list. Often, the client views only the first few matching records, and then may discard the remaining records and attempt a new query. The search activity often does not involve an immediate transaction on the matching objects.

In addition to implementing the Core J2EE Pattern, tag libraries have been added to allow for easy intergration into any J2EE web application. The tag libs produce HTML tables from the ValueList, such as the table below:

A demo webapp illustrating the use of the ValueListHandler in a web enviroment can be viewed here: thanks to It can be downloaded here: valuelist.war. A real application example can be viewed at


June 15, 2008

A new 1.0-SNAPSHOT has been made. This snapshot contains:

  1. maven 2 support (proposal are in valuelist maven2-snapshot repo, valuelist extra maven2 dependencies + releases)
  2. migrated whole valuelist from cvs into svn
  3. splitted into 4 sub-projects: core,web,swing,web-examples
  4. sites need to be reworked
  5. Added AbstractCriteriaContentProvider, handy when your are using hibernate criteria api

April 18, 2006

True database paging support is now included. See the the SqlPagingSupport and its support in the AbstractDynaJdbcAdapter. It can be wired up in the following manner:

        <entry key="bigRownum">
          <bean class="net.mlw.vlh.adapter.jdbc.dynabean.DefaultDynaBeanAdapter">
            <!--<property name="dataSource"><ref bean="oracleDataSource"/></property>-->
            <property name="connectionCreator">
              <bean class="net.mlw.vlh.adapter.jdbc.util.StandardConnectionCreator">
                <property name="dataSource"><ref bean="oracleDataSource"/></property>
                <property name="transactionIsolation"><value>8</value></property>
            <property name="useName"><value>false</value></property>
            <property name="showSql"><value>false</value></property>
            <property name="adapterType"><value>0</value></property>
            <property name="sql">
     SELECT value as "name", sysdate as "tof" FROM big ORDER BY value
            <property name="sqlPagingSupport">
              <bean class="net.mlw.vlh.adapter.jdbc.util.SqlPagingSupport">
                <property name="database"><value>oracle</value></property>

April 14, 2005

A new release 0.1.7 has been made. This release contains:

  1. 20+ bug fixes.
  2. Improved logging.
  3. Introduction of classes to support using the ValueListHandler in a Swing environment.
See changelog for more details.

September 28, 2004

ValueList is showing up in many blogs... Setting up ValueList with Struts or other frameworks - Kris Thompson

August 17, 2004

Thanks to Keith from the Liferay Enterprise Portal team the ValueList tags now work in a portal environment. This is now in CVS and will be included in 0.1.6 release. See discussion Modifications for use in JSR168 Portlets for more details.

Find a bug?

Submit New | Browse | Reporting


"Some development shops are moving away from a classic business domain model. Frankly, for some applications (like those to baby-sit big relational databases), I'd have to agree with their direction. When you are doing nothing but viewing and entering relational data, a full object-orentied model is overkill." -Better, Faster, Lighter Java

If you are using the ValueList and you want to be listed on the Powered By page, drop me a line.

To help me out, let me know how you found ValueList? (SourceForge Forum)

Join the conversation at theserverside.

Reason for starting this project.

I inherited a J2EE web solution that chose a different component to display tables. Because the other component does all the sorting and paging in the JRE, not the database where it belongs; the solution did not scale at all! I searched the web to find a replacement and was discouraged by the results. So I grabbed code for past projects and started

Other Stuff.

Take a look at my other project League Master! It is a fantasy football application build with the spring rich client framework. It has an embedded hsql data warehouse that maintains statistical information throughout the year about every player in the nfl and your league. With this information League Master will assist your management of your team from the draft to the final championship game.

Statistics for the past 7 days