User Messages

System Messages

To change system messages

The ApplicationResources.properties file at the root of the project will need to be edited. This file is referenced by the org.kuali.kfs.sys.KFSKeyConstants.java class. This class contains a list of public static final Strings which form the base keys. These keys are used in the code to reference a system message. The values for these keys are the keys of the ApplicationResources.properties file.

Module specific message keys are maintained in classes similar org.kuali.kfs.module.cam.CamsKeyConstants i.e. prefixed with module name.

If the String value that is used in the code is known, the error message can be found by finding the line in org.kuali.kfs.sys.KFSKeyConstants.java that contains that String. The key which matches the value of the String can then be found in the ApplicationResources.properties file and the value of the system message changed there.

If the text of the message is known, then the process may be simpler. Find the line in ApplicationResources.properties that has the value of the system message desired. Make any changes necessary. (Note: many system messages contain replacement parameters from java.text.MessageFormat.)

Here is an example of how the KFSKeyConstants.java can be used to add an error to the global error map.

GlobalVariables.getMessageMap().putError(KFSPropertyConstants.DISB_VCHR_BANK_ROUTING_NUMBER, KFSKeyConstants.ERROR_DV_BANK_ROUTING_NUMBER);

In this example, the KFSKeyConstants.ERROR_DV_BANK_ROUTING_NUMBER parameter is passed in as the key that will be used to reference the associated error message in ApplicationResources.properties.

Note: See Adding Error Messages for additional information regarding adding error messages to the error map.

You may wish to verify that you have changed the correct line, since it is possible for there to be duplicate instances of the same message listed under different keys.

To add a new message

Add the appropriate values to ApplicationResources.properties and KFSKeyConstants.java files. (See above for details) Cite the new message using the line

MessageFormat.format( SpringContext.getBean( KualiConfigurationService.class).getPropertyString( KFSKeyConstants.<KeyString> ), Object[] arguments);

Note<KeyString> is the key defined in the KFSKeyConstants.java file.

The property.files key in the configuration.properties file controls this behavior. It accepts a comma delimited list of URL's that are used by Spring's Resource loader. This format has a special protocol of classpath for resources that are on the classpath (See the javadoc for org.springframework.core.io.DefaultResourceLoader). The remainder of the URL being the relative location with respect to the classpath. Use the file protocol for resources that are on the file system, but not on the classpath. Changing or adding to the value of this key will change where Kuali looks for these properties. See rfc3986 for details on URL's.

Struts Messages

The struts.message.resources value in the configuration.properties file is used to define a comma delimited list of properties files that contain messages that struts can provide to jsp tags. The items in this list implement the java.util.PropertyResourceBundle convention. The usual value is located in ApplicationResources.properties and so struts (in version 1.x, this behavior is changed slightly in version 2.x) will use the ApplicationResources.properties file to find message Strings. To change the message, modify the String value in ApplicationResources.properties for the appropriate key.

The key is determined by inspecting the jsp tag. For example:

In this code excerpt

<a class="portal_link" href="<bean:message key="app.feedback.link"/>" target="_blank" title="<bean:message key="app.feedback.linkText" />"><bean:message key="app.feedback.linkText" /></a>

the keys in this html statement are 'app.feedback.link' and 'app.feedback.linkText'.

As before, if the message is known, ApplicationResources.properties may be searched and directly modified.

The same caveats for KeyConstants apply: messages may contain java.text.MessageFormat placeholders and therefore, there may be duplicate messages.

To create a new message, add an appropriate entry in ApplicationResources.properties and use it in the jsp tag as shown below:

<bean:message key="your.new.key">

 

 

Kuali documentation is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License. 

Kuali software is licensed for use pursuant to the Affero General Public License, version 3.

 Copyright © 2014 Kuali, Inc. All rights reserved. 

Portions of Kuali are copyrighted by other parties as described in the Acknowledgments screen. 

Kuali ® is a registered trademark of the Trustees of Indiana University.