New Struts 2 Plugin For JSR 303 Bean Validation

Introduction

A talented Struts 2 developer, Umesh Awasthi, has created a new Struts 2 plugin to provide Bean (JSR 303) validation as part of the Struts 2 framework.

This article provides notes and an example application you may review to learn how to use the Struts 2 JSR 303 validator plugin. Generally, including the plugin and a JSR 303 compliant implementation in your project will cause the Struts 2 framework to apply the validation constraints you have included on your Bean classes. Note that the 1.0 version of the plugin does not allow you to combine both JSR 303 bean validation with the Struts 2 XML validation.

[More]

Using Spring Web MVC to Create a REST Web Service and Spring RestTemplate to Consume It

Introduction

As Spring continues to evolve each new release improves support for creating and consuming REST web services. This brief article provides two simple example projects: one that uses Spring Web MVC to create a REST web service and one that uses Spring RestTemplate to call the REST web service and process the response.

[More]

Blackboard Building Block Development - Problem With Using log4j For Logging

We recently deployed a new Blackboard building block (B2) to our production system. After deployment I noticed that this new B2 was not writing log messages. This article explains how I solved that problem.

[More]

Upgrading A Spring JDBC Project To Spring Version 3.2.2

Introduction

I recently updated a Java project that uses Spring JDBC from Spring version 3.1.0.RELEASE to Spring version 3.2.2.RELEASE.  To get everything to work correctly I had to make a few changes that I thought others might find helpful to know about.

[More]

Struts 2 How To Exclude Parameters From Being Processed By The Framework

Introduction

Apache Struts 2 released version 2.3.8 in December 2012. In this version, when development mode is set to true additional messages are written to the log. These messages include ones that indicate whether or not a specific parameter will be handled by the parameter interceptor and made available to the Action class. These log messages can be helpful in clearly identifying parameters that you do not want the parameter interceptor to process for security or other reasons. This article discusses how to exclude parameters from being handled by the parameter interceptor.

[More]

Spring Release 3.2 - Easier Spring MVC Tests

Introduction

I've been learning how to use the Spring MVC web application framework as I contemplate switching from Struts 2 to Spring MVC. In December 2012, Spring announced the release of version 3.2. One of the new features in this release is easier testing of Spring MVC applications (which is a weak area for Struts 2). So this article provides a simple Spring MVC example project that includes JUnit tests of the Spring MVC controller class.

[More]

Blackboard Building Block Development - Setting The Initial Sort For An inventoryList

Introduction

We needed to display a list of Blackboard Course objects on a view page and wanted the list to be sorted by a specific field (courseId). We used the inventoryList Blackboard tag to display the list. Consulting the Blackboard Learn Building Blocks Tag Library Guide for Release 9.0 and 9.1, I found that the inventoryList tag has an attribute, initialSortCol with this description:

The column to initially sort by when the list is displayed. The value should match the name of a list element.

So we set the value of initialSortCol to be the name value for the listElement tag that displays the course ID for each Course object in the collection. But the list of Course objects still was not sorted correctly.

Thanks to some bright colleagues where I work, we were able to get the list sorted correctly. Hopefully this article will save other developers hours of frustrating work caused by incomplete and missing Blackboard documentation.

[More]

A Blackboard Building Block That Allows Instructors To Merge Blackboard Courses

My university is moving to Blackboard Learn 9.1 Service Pack 9 and to Oracle's Student Administration and Integration Pack (SAIP). We will be using SAIP to provide all our classes and enrollments to Blackboard so that each class has an associated Blackboard course. As part of these changes we need to implement a Building Block (B2) that will allow instructors to add one or more child courses to a parent course in Blackboard. Some of our instructors prefer to have one Blackboard course for multiple sections of the same class they are teaching or to have one Blackboard course for both their lecture and lab sections.

This article discusses our research into creating such a Building Block and the Blackboard API classes we use. There is a prototype Building Block available on my Github repository. I want to share what we've learned, but I also hope to get feedback on our approach and any lessons learned from others experiences.

[More]

How To Use The Blackboard Building Block Eclipse Plugin

Blackboard provides a Building Block Eclipse plugin that simplifies setting up a Building Block project and deploying a Building Block application to a Blackboard development server. Using the plugin saves Building Block developers significant time.

[More]

Building Block Examples For Blackboard Learn 9.1

As part of learning how to develop Building Blocks (B2) for Blackboard Learn 9.1 I've put together several example projects. I've posted these examples on my GitHub repository. Hopefully other new Building Block developers will find them helpful.

Blackboard Building Blocks are Java web applications that run in the Blackboard Learn platform. Building Blocks allow schools to extend what Blackboard Learn can do or customize what it currently does. Blackboard provides an extensive API and also a JSP tag library. The downside is that as of October 2012 July 2013 (!) there is little documentation on how to develop Building Blocks for the Blackboard Learn 9.0 and 9.1 platforms. Much of the documentation available is too old.

[More]

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.9.1.002. Contact Blog Owner