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.
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.
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.
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.
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.
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.
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.
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.
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.