- tag i18n now accepts the key in the body as well as through the key attribute. That's to allow dynamic keys, something like: - method LocaleManager.setDir to change the default location of the i18n files. (Default = "/i18n") So to set it to be inside the WEB-INF directory, you can do: LocaleManager.setDir("WEB-INF/i18n"); - New I18nListData, now you can select what elements from i18n file you wanna show. - The ListManager is now able to convert a java 5 enumeration into a ListData. - Now you can add a filter specific to an action (ActionConfig) that will be executed BEFORE any global filter. action("/Foo", FooAction.class) .filterFirst(new ValidatorFilter(VAL_ERROR)) .on(SUCCESS, fwd("/cool.jsp") .on(ERROR, fws("/nocool.jsp"); - Improvement in the exceptions, in other words, now you will see the correct exception in your browser even when it happened through a reflection call (and not the InvocationTargetException that does not tell you anything!) - Debug logs throughout the code, specially on DIFilter, so that you can turn on DEBUG and see how the filter is operating. Debug.enable(true); - Paginator Tag improvements: http://paginator.mentaframework.org/ - CollectionFilter to turn a list of html parameters into a collection. Ex: ... You can add: filter(new CollectionFilter("name")); and get a collection from the action input: Collection coll = (Collection) input.getValue("name"); Note: They will be in order and if there is a gap in the sequence, the value of the gap will be null in the collection. - MultiApplicationManager to load different application managers for the same application. public class ApplicationManager extends MultiApplicationManager { public void registerManagers() { register(ModuleOneApplicationManager.class); register(ModuleTwoApplicationManager.class); register(ModuleThreeApplicationManager.class); } } - New Ajaxtags inside the org.mentawai.ajaxtag package. - LocaleManager.setDefaultDateMask("dd/MM/yyyy") and LocaleManager.setDateMask(Locale loc, String mask) so that you can set the default date mask and a date mask specific of that locale. Date mask will be used with a SimpleDateFormat to convert a date. - ApplicationManager.setViewDir to set up a directory where all JSPs will reside. Ex: setViewDir("/WEB-INF/jsp"); so a new Forward("/hello.jsp") will go to: /WEB-INF/jsp/hello.jsp !!!! - Now inner actions can also be defined as Java inner classes (static or non-static) !!! Check the HelloInnerActions example below: package examples.inneractions; import java.util.*; import org.mentawai.core.*; public class HelloInnerActions extends BaseAction { public String execute() throws Exception { output.setValue("speak", "Hello there!"); return SUCCESS; } public String sayBye() throws Exception { output.setValue("speak", "Bye for now..."); return SUCCESS; } public class SayBye2 extends BaseAction { public String execute() throws Exception { output.setValue("speak", "Bye for now from SayBye2 inner action class!"); return SUCCESS; } } public static class SayBye3 extends BaseAction { public String execute() throws Exception { output.setValue("speak", "Bye for now from SayBye3 static inner action class!"); return SUCCESS; } } } - min and max for DateRule (validation) - add support to JPA through the JpaFilter and JpaTrasaction - new LocalizedListData (similar to SimpleListData but with support to internationalization) - new DBListData if you want to load your lists from your database easily - improvements in the ExceptionFilter + FAQ (http://forum.mentaframework.org/posts/list/1096.page) - FormatterManager.setFixedDateFormatter(Formatter f) so you can fix a date formatter to be used for all dates throughout your application (mtw:out and mtw:inputDate)