当前位置: 首页>>代码示例>>Java>>正文


Java InvocableHandlerMethod类代码示例

本文整理汇总了Java中org.springframework.web.method.support.InvocableHandlerMethod的典型用法代码示例。如果您正苦于以下问题:Java InvocableHandlerMethod类的具体用法?Java InvocableHandlerMethod怎么用?Java InvocableHandlerMethod使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


InvocableHandlerMethod类属于org.springframework.web.method.support包,在下文中一共展示了InvocableHandlerMethod类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: invokeModelAttributeMethods

import org.springframework.web.method.support.InvocableHandlerMethod; //导入依赖的package包/类
/**
 * Invoke model attribute methods to populate the model. Attributes are
 * added only if not already present in the model.
 */
private void invokeModelAttributeMethods(NativeWebRequest request, ModelAndViewContainer mavContainer)
		throws Exception {

	for (InvocableHandlerMethod attrMethod : this.attributeMethods) {
		String modelName = attrMethod.getMethodAnnotation(ModelAttribute.class).value();
		if (mavContainer.containsAttribute(modelName)) {
			continue;
		}

		Object returnValue = attrMethod.invokeForRequest(request, mavContainer);

		if (!attrMethod.isVoid()){
			String returnValueName = getNameForReturnValue(returnValue, attrMethod.getReturnType());
			if (!mavContainer.containsAttribute(returnValueName)) {
				mavContainer.addAttribute(returnValueName, returnValue);
			}
		}
	}
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:24,代码来源:ModelFactory.java

示例2: invokeModelAttributeMethods

import org.springframework.web.method.support.InvocableHandlerMethod; //导入依赖的package包/类
/**
 * Invoke model attribute methods to populate the model.
 * Attributes are added only if not already present in the model.
 */
private void invokeModelAttributeMethods(NativeWebRequest request, ModelAndViewContainer mavContainer)
		throws Exception {

	while (!this.modelMethods.isEmpty()) {
		InvocableHandlerMethod attrMethod = getNextModelMethod(mavContainer).getHandlerMethod();
		String modelName = attrMethod.getMethodAnnotation(ModelAttribute.class).value();
		if (mavContainer.containsAttribute(modelName)) {
			continue;
		}

		Object returnValue = attrMethod.invokeForRequest(request, mavContainer);

		if (!attrMethod.isVoid()){
			String returnValueName = getNameForReturnValue(returnValue, attrMethod.getReturnType());
			if (!mavContainer.containsAttribute(returnValueName)) {
				mavContainer.addAttribute(returnValueName, returnValue);
			}
		}
	}
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:25,代码来源:ModelFactory.java

示例3: ModelFactory

import org.springframework.web.method.support.InvocableHandlerMethod; //导入依赖的package包/类
/**
 * Create a new instance with the given {@code @ModelAttribute} methods.
 * @param attributeMethods for model initialization
 * @param binderFactory for adding {@link BindingResult} attributes
 * @param sessionAttributesHandler for access to session attributes
 */
public ModelFactory(List<InvocableHandlerMethod> attributeMethods,
					WebDataBinderFactory binderFactory,
					SessionAttributesHandler sessionAttributesHandler) {
	this.attributeMethods = (attributeMethods != null) ? attributeMethods : new ArrayList<InvocableHandlerMethod>();
	this.binderFactory = binderFactory;
	this.sessionAttributesHandler = sessionAttributesHandler;
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:14,代码来源:ModelFactory.java

示例4: initBinder

import org.springframework.web.method.support.InvocableHandlerMethod; //导入依赖的package包/类
/**
 * Initialize a WebDataBinder with {@code @InitBinder} methods.
 * If the {@code @InitBinder} annotation specifies attributes names, it is
 * invoked only if the names include the target object name.
 * @throws Exception if one of the invoked @{@link InitBinder} methods fail.
 */
@Override
public void initBinder(WebDataBinder binder, NativeWebRequest request) throws Exception {
	for (InvocableHandlerMethod binderMethod : this.binderMethods) {
		if (isBinderMethodApplicable(binderMethod, binder)) {
			Object returnValue = binderMethod.invokeForRequest(request, null, binder);
			if (returnValue != null) {
				throw new IllegalStateException("@InitBinder methods should return void: " + binderMethod);
			}
		}
	}
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:18,代码来源:InitBinderDataBinderFactory.java

示例5: createModelAttributeMethod

import org.springframework.web.method.support.InvocableHandlerMethod; //导入依赖的package包/类
private InvocableHandlerMethod createModelAttributeMethod(WebDataBinderFactory factory, Object bean, Method method) {
	InvocableHandlerMethod attrMethod = new InvocableHandlerMethod(bean, method);
	attrMethod.setHandlerMethodArgumentResolvers(this.argumentResolvers);
	attrMethod.setParameterNameDiscoverer(this.parameterNameDiscoverer);
	attrMethod.setDataBinderFactory(factory);
	return attrMethod;
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:8,代码来源:RequestMappingHandlerAdapter.java

示例6: createInitBinderMethod

import org.springframework.web.method.support.InvocableHandlerMethod; //导入依赖的package包/类
private InvocableHandlerMethod createInitBinderMethod(Object bean, Method method) {
	InvocableHandlerMethod binderMethod = new InvocableHandlerMethod(bean, method);
	binderMethod.setHandlerMethodArgumentResolvers(this.initBinderArgumentResolvers);
	binderMethod.setDataBinderFactory(new DefaultDataBinderFactory(this.webBindingInitializer));
	binderMethod.setParameterNameDiscoverer(this.parameterNameDiscoverer);
	return binderMethod;
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:8,代码来源:RequestMappingHandlerAdapter.java

示例7: setUp

import org.springframework.web.method.support.InvocableHandlerMethod; //导入依赖的package包/类
@Before
public void setUp() throws Exception {
	TestMockServletContext servletContext = new TestMockServletContext();
	appContext = new GenericWebApplicationContext();
	appContext.setServletContext(servletContext);
	LocaleContextHolder.setLocale(Locale.US);

	String attributeName = WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE;
	appContext.getServletContext().setAttribute(attributeName, appContext);

	handler = new TestController();
	Method method = TestController.class.getMethod("testBind", Date.class, Double.class, TestBean.class, BindingResult.class);
	handlerMethod = new InvocableHandlerMethod(handler, method);
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:15,代码来源:MvcNamespaceTests.java

示例8: ModelFactory

import org.springframework.web.method.support.InvocableHandlerMethod; //导入依赖的package包/类
/**
 * Create a new instance with the given {@code @ModelAttribute} methods.
 * @param invocableMethods the {@code @ModelAttribute} methods to invoke
 * @param dataBinderFactory for preparation of {@link BindingResult} attributes
 * @param sessionAttributesHandler for access to session attributes
 */
public ModelFactory(List<InvocableHandlerMethod> invocableMethods, WebDataBinderFactory dataBinderFactory,
		SessionAttributesHandler sessionAttributesHandler) {

	if (invocableMethods != null) {
		for (InvocableHandlerMethod method : invocableMethods) {
			this.modelMethods.add(new ModelMethod(method));
		}
	}
	this.dataBinderFactory = dataBinderFactory;
	this.sessionAttributesHandler = sessionAttributesHandler;
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:18,代码来源:ModelFactory.java

示例9: ModelMethod

import org.springframework.web.method.support.InvocableHandlerMethod; //导入依赖的package包/类
private ModelMethod(InvocableHandlerMethod handlerMethod) {
	this.handlerMethod = handlerMethod;
	for (MethodParameter parameter : handlerMethod.getMethodParameters()) {
		if (parameter.hasParameterAnnotation(ModelAttribute.class)) {
			this.dependencies.add(getNameForParameter(parameter));
		}
	}
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:9,代码来源:ModelFactory.java

示例10: setUp

import org.springframework.web.method.support.InvocableHandlerMethod; //导入依赖的package包/类
@Before
public void setUp() throws Exception {
	this.controller = new TestController();

	Method method = TestController.class.getDeclaredMethod("handle");
	this.handleMethod = new InvocableHandlerMethod(this.controller, method);

	method = TestController.class.getDeclaredMethod("handleSessionAttr", String.class);
	this.handleSessionAttrMethod = new InvocableHandlerMethod(this.controller, method);

	this.sessionAttributeStore = new DefaultSessionAttributeStore();
	this.sessionAttrsHandler = new SessionAttributesHandler(TestController.class, this.sessionAttributeStore);
	this.webRequest = new ServletWebRequest(new MockHttpServletRequest());
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:15,代码来源:ModelFactoryTests.java

示例11: createModelFactory

import org.springframework.web.method.support.InvocableHandlerMethod; //导入依赖的package包/类
private ModelFactory createModelFactory(String methodName, Class<?>... parameterTypes) throws Exception{
	Method method = TestController.class.getMethod(methodName, parameterTypes);

	HandlerMethodArgumentResolverComposite argResolvers = new HandlerMethodArgumentResolverComposite();
	argResolvers.addResolver(new ModelMethodProcessor());

	InvocableHandlerMethod handlerMethod = new InvocableHandlerMethod(this.controller, method);
	handlerMethod.setHandlerMethodArgumentResolvers(argResolvers);
	handlerMethod.setDataBinderFactory(null);
	handlerMethod.setParameterNameDiscoverer(new LocalVariableTableParameterNameDiscoverer());

	return new ModelFactory(Arrays.asList(handlerMethod), null, this.sessionAttrsHandler);
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:14,代码来源:ModelFactoryTests.java

示例12: runTest

import org.springframework.web.method.support.InvocableHandlerMethod; //导入依赖的package包/类
private void runTest(Object controller) throws Exception {
	HandlerMethodArgumentResolverComposite resolvers = new HandlerMethodArgumentResolverComposite();
	resolvers.addResolver(new ModelAttributeMethodProcessor(false));
	resolvers.addResolver(new ModelMethodProcessor());
	WebDataBinderFactory dataBinderFactory = new DefaultDataBinderFactory(null);

	Class<?> type = controller.getClass();
	Set<Method> methods = MethodIntrospector.selectMethods(type, METHOD_FILTER);
	List<InvocableHandlerMethod> modelMethods = new ArrayList<InvocableHandlerMethod>();
	for (Method method : methods) {
		InvocableHandlerMethod modelMethod = new InvocableHandlerMethod(controller, method);
		modelMethod.setHandlerMethodArgumentResolvers(resolvers);
		modelMethod.setDataBinderFactory(dataBinderFactory);
		modelMethods.add(modelMethod);
	}
	Collections.shuffle(modelMethods);

	SessionAttributesHandler sessionHandler = new SessionAttributesHandler(type, this.sessionAttributeStore);
	ModelFactory factory = new ModelFactory(modelMethods, dataBinderFactory, sessionHandler);
	factory.initModel(this.webRequest, this.mavContainer, new HandlerMethod(controller, "handle"));
	if (logger.isDebugEnabled()) {
		StringBuilder sb = new StringBuilder();
		for (String name : getInvokedMethods()) {
			sb.append(" >> ").append(name);
		}
		logger.debug(sb);
	}
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:29,代码来源:ModelFactoryOrderingTests.java

示例13: createBinderFactory

import org.springframework.web.method.support.InvocableHandlerMethod; //导入依赖的package包/类
private WebDataBinderFactory createBinderFactory(String methodName, Class<?>... parameterTypes)
		throws Exception {

	Object handler = new InitBinderHandler();
	Method method = handler.getClass().getMethod(methodName, parameterTypes);

	InvocableHandlerMethod handlerMethod = new InvocableHandlerMethod(handler, method);
	handlerMethod.setHandlerMethodArgumentResolvers(argumentResolvers);
	handlerMethod.setDataBinderFactory(new DefaultDataBinderFactory(null));
	handlerMethod.setParameterNameDiscoverer(new LocalVariableTableParameterNameDiscoverer());

	return new InitBinderDataBinderFactory(Arrays.asList(handlerMethod), bindingInitializer);
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:14,代码来源:InitBinderDataBinderFactoryTests.java

示例14: setUp

import org.springframework.web.method.support.InvocableHandlerMethod; //导入依赖的package包/类
@Before
public void setUp() throws Exception {
	appContext = new GenericWebApplicationContext();
	appContext.setServletContext(new TestMockServletContext());
	LocaleContextHolder.setLocale(Locale.US);

	handler = new TestController();
	Method method = TestController.class.getMethod("testBind", Date.class, TestBean.class, BindingResult.class);
	handlerMethod = new InvocableHandlerMethod(handler, method);
}
 
开发者ID:deathspeeder,项目名称:class-guard,代码行数:11,代码来源:MvcNamespaceTests.java

示例15: setUp

import org.springframework.web.method.support.InvocableHandlerMethod; //导入依赖的package包/类
@Before
public void setUp() throws Exception {
	Class<?> handlerType = handler.getClass();
	handleMethod = new InvocableHandlerMethod(handler, handlerType.getDeclaredMethod("handle"));
	Method method = handlerType.getDeclaredMethod("handleSessionAttr", String.class);
	handleSessionAttrMethod = new InvocableHandlerMethod(handler, method);
	sessionAttributeStore = new DefaultSessionAttributeStore();
	sessionAttrsHandler = new SessionAttributesHandler(handlerType, sessionAttributeStore);
	webRequest = new ServletWebRequest(new MockHttpServletRequest());
}
 
开发者ID:deathspeeder,项目名称:class-guard,代码行数:11,代码来源:ModelFactoryTests.java


注:本文中的org.springframework.web.method.support.InvocableHandlerMethod类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。