fixed npe caused by mvc view factory creator

This commit is contained in:
Keith Donald
2009-03-13 22:15:20 +00:00
parent 602018a7e4
commit 5caa48be8e
3 changed files with 7 additions and 5 deletions

View File

@@ -69,7 +69,7 @@ public class MvcViewFactoryCreator implements ViewFactoryCreator, ApplicationCon
private String fieldMarkerPrefix;
private MessageCodesResolver messageCodesResolver;
private MessageCodesResolver messageCodesResolver = new WebFlowMessageCodesResolver();
/**
* Create a new Spring MVC View Factory Creator.

View File

@@ -55,7 +55,6 @@ import org.springframework.webflow.execution.FlowExecutionKey;
import org.springframework.webflow.execution.RequestContext;
import org.springframework.webflow.execution.View;
import org.springframework.webflow.validation.ValidationHelper;
import org.springframework.webflow.validation.WebFlowMessageCodesResolver;
/**
* Base view implementation for the Spring Web MVC Servlet and Spring Web MVC Portlet frameworks.
@@ -88,7 +87,7 @@ public abstract class AbstractMvcView implements View {
private BinderConfiguration binderConfiguration;
private MessageCodesResolver messageCodesResolver = new WebFlowMessageCodesResolver();
private MessageCodesResolver messageCodesResolver;
/**
* Creates a new MVC view.
@@ -498,8 +497,7 @@ public abstract class AbstractMvcView implements View {
String model = getModelExpression().getExpressionString();
String field = error.getMapping().getTargetExpression().getExpressionString();
Class fieldType = error.getMapping().getTargetExpression().getValueType(getModelObject());
String[] messageCodes = messageCodesResolver.resolveMessageCodes(error.getCode(), model, field,
fieldType);
String[] messageCodes = messageCodesResolver.resolveMessageCodes(error.getCode(), model, field, fieldType);
return new MessageBuilder().error().source(field).codes(messageCodes).resolvableArg(field).defaultText(
error.getCode() + " on " + field).build();
}

View File

@@ -33,6 +33,7 @@ import org.springframework.webflow.expression.DefaultExpressionParserFactory;
import org.springframework.webflow.test.MockFlowExecutionKey;
import org.springframework.webflow.test.MockRequestContext;
import org.springframework.webflow.test.MockRequestControlContext;
import org.springframework.webflow.validation.WebFlowMessageCodesResolver;
public class MvcViewTests extends TestCase {
@@ -222,6 +223,7 @@ public class MvcViewTests extends TestCase {
org.springframework.web.servlet.View mvcView = new MockView();
AbstractMvcView view = new MockMvcView(mvcView, context);
view.setExpressionParser(DefaultExpressionParserFactory.getExpressionParser());
view.setMessageCodesResolver(new WebFlowMessageCodesResolver());
view.processUserEvent();
assertFalse(view.hasFlowEvent());
view.render();
@@ -407,6 +409,7 @@ public class MvcViewTests extends TestCase {
org.springframework.web.servlet.View mvcView = new MockView();
AbstractMvcView view = new MockMvcView(mvcView, context);
view.setExpressionParser(DefaultExpressionParserFactory.getExpressionParser());
view.setMessageCodesResolver(new WebFlowMessageCodesResolver());
view.processUserEvent();
assertFalse(view.hasFlowEvent());
assertTrue(bindBean.validationMethodInvoked);
@@ -431,6 +434,7 @@ public class MvcViewTests extends TestCase {
org.springframework.web.servlet.View mvcView = new MockView();
AbstractMvcView view = new MockMvcView(mvcView, context);
view.setExpressionParser(DefaultExpressionParserFactory.getExpressionParser());
view.setMessageCodesResolver(new WebFlowMessageCodesResolver());
view.processUserEvent();
assertFalse(view.hasFlowEvent());
assertFalse(bindBean.validationMethodInvoked);