Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


  • Renamed to ExpressionEvaluator and DefaultExpressionEvaluator
  • Moved to org.kuali.rice.krad.uif.view
  • Changed method signatures to not take view
  • Added method initializeEvaluationContext(Object contextObject)
  • Added public getExpressionEvaluator() to ViewHelperServiceImpl for getting initialized instance during lifecycle


KULRICE-5391 - Add messages to lookup results

  • Added new messages for primary key and results found to
  • Added LookupResultCollectionSection now includes LookupResultMessages in 
KULRICE-5287 - Lookup - Need export on results table

  • Replaces use of flash export functionality built in datatables.tableTools with server side method calls
  • Added new retrieveTableData method to UifControllerBase
  • Added two new parameters, showSearchOption and showExportOption, to the RichTable
  • Defaults showExportOption to true
Changed addLineLabel from Label to Message on CollectionGroup

2.3-M3 to 2.3-RC1

KULRICE-8433 - Removed quickfinder and inquiry initialization from data and input field beans

In order to improve performance by thinning out the view graph, the quickfinder and inquiry widget initialization was removed from Uif-DataField and Uif-InputField.

This means if you were using nested properties to configure these widgets that will now throw a NPE. 

Ex. quickfinder.render="false", quickfinder.dataObjectClassName="edu.iu.TravelAccount"

Instead, you must fully initialize and configure the widget.

Code Block
titleQuickfinder Conversion
 <property name="quickfinder.dataObjectClassName" value=""/>
 <property name="quickfinder.fieldConversions">
       <entry key="number" value="field3"/>
converts to:
<property name="quickfinder">
    <bean parent="Uif-QuickFinder" p:dataObjectClassName=""
Code Block
titleInquiry Conversion
<property name="inquiry.dataObjectClassName"
          value="" />
<property name="inquiry.inquiryParameters">
      <entry key="routeHeaderInitiatorWorkflowId" value="principalId1" />
converts to:
<property name="inquiry">
   <bean parent="Uif-Inquiry" p:dataObjectClassName="" 

Automatic quickfinders and inquiries will still be associated when relationships are found, and the widget is not manually configured. To disable automatic functionality use the flags: enableAutoQuickfinder, enableAutoInquiry, enableAutoDirectInquiry 

Code Block
titleTurning off Automatic Quickfinder
converts to:

The initialization of the quickfinder widget on collection groups has also been removed. This means if you were setting p:collectionLookup.render="false" to remove it you no longer need to do so.

Code Block
titleCollection Lookup Conversion
<property name="collectionLookup.dataObjectClassName" value="org.kuali.rice.krms.impl.repository.CategoryBo"/>
<property name="collectionLookup.fieldConversions" value="id:id,name:name,namespace:namespace"/>
converts to:

<property name="collectionLookup">
   <bean parent="Uif-CollectionQuickFinder"


KULRICE-9612 - Copying of components reimplemented to use copy method on component

For performance reasons the use of CloneUtils for copying components was replaced with copy methods on each component. If you have created any custom components you should override the copyProperties method and copy the properties specific to the subclass.

Code Block
titleCopy Properties Implementation
     * @see org.kuali.rice.krad.uif.component.ComponentBase#copy()
    protected <T> void copyProperties(T component) {

        TextControl textControlCopy = (TextControl) component;


        if(datePicker != null) {


Make sure to call super, and to invoke copy() on all nested components.


KULRICE-8910 - Bootstrap added as default library, Fluid removed

The fluid CSS files and infusion JavaScript library have been removed from the default theme. If you wish to continue using these you will need to download and add to your custom theme. 

In addition, the Reorderer component was removed from KRAD since it was implemented using the Fluid infusion library.

KULRICE-9238 - Changes to view theme and new theme builder

Along with bringing in Bootstrap, the view theme was reworked to support Less and to fix previous pain points. This mostly only impacts those who are creating custom themes.

Switching to use non minified files

By default the themes will use the minified versions of the theme CSS and JS files. If you wish to use the full source files for development purposes, set the Rice config properties '' to true in your local config file.

New Theme Beans

The beans Uif-BaseTheme, Uif-KradTheme, and Uif-ClassicKnsTheme have been removed. If you were previously extending one of these for a custom theme, you should now extend Uif-KbootTheme.

Building Kboot

If you are using maven overlays to acquire the KRAD web content (recommended), the Kboot theme will be ready for consumption. If instead you are acquiring the KRAD web content by manually pulling source, you will need to add the theme builder plugin to your maven process. See 'pom.xml' in the KRAD Web module for an example.

Building Custom Themes

Documentation will be coming shortly in the KRAD guide for developing custom themes. In the meantime, look at the JavaDocs for ViewTheme, and ThemeBuilder in the new KRAD theme builder module.


Non-Impacting RC1 Changes to be Aware Of

PropertyPlaceholderConfigurer support added to the data dictionary. This means you can use ${} expressions to reference Rice config properties (useful for configured paths, these will only get evaluated once as opposed to the @{} UIF expressions which get evaluated many times)