我正在使用Spring框架构建一个REST完整服务。
我需要添加自定义Cookie到响应,在控制器中处理请求后,根据响应类型
@Controller
public class SomeController {
...
@RequestMapping(method = RequestMethod.GET, value = MY_PROFILE, produces = PRODUCES)
public @ResponseBody Some myProfile(@RequestBody() A a) {
...
}
...
}
但是当它到达我的拦截器时
public class SomeIntercepter implements HandlerInterceptor {
...
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
...
}
ModelAndView为空,我只能处理请求
所以我有两个问题:
示例用例:
假设我正在进行A/B测试,我的用户界面根据响应中的Cookie呈现不同的效果。我希望有一个地方,根据返回对象,我可以指定这个Cookie。
当您使用@ResponseBody
时,Spring不使用模型,您甚至没有在控制器方法中声明它,而且无论如何它都没有意义。
但您可以始终使用请求属性将数据从控制器传递到拦截器,拦截器将能够在其postHandle
方法中使用它来决定如何处理响应和cookie。
@ResponseBody
的特殊之处在于它告诉Spring响应已经被处理(或者应该用返回值处理)。在这种情况下,不需要ModelAndView
,因为没有要渲染的视图。因此MVC堆栈不会创建一个模型和视图
,也不会向HandlerInterceptor
提供任何模型和视图。基本上,在调用postHandle
时,响应已经刷新,您将无法编写任何cookie。而且,在任何情况下,ModelAndView
都不是添加cookie的合适位置。HttpServletResponse
。
问题内容: 我创建了一个GUI,并在外部获取了一个数据库。我正在NetBeans中使用GUI构建器来执行此操作。有谁知道用来自数据库的值填充jComboBox的简单方法吗?当我运行项目时,没有错误,但组合框保持为空。 这是设置带有折扣名称的组合框的代码: 它位于与jComboBox对象不同的类中。此类称为模型。 这是我以称为DiscountGUIView的形式调用setDiscountNames方
问题内容: 我知道该怎么做,但是我发誓您可以像[[0] = {0,0,0,0};那样填写;你是怎么做到的?我确实尝试过Google,但没有任何帮助。 问题答案: 您也可以将其作为声明的一部分:
问题内容: 有一些简单的方法可以在Java中填充字符串吗? 似乎应该在类似StringUtil的API中使用某些东西,但是我找不到能做到这一点的任何东西。 问题答案: 有几种方法:leftPad,[rightPad](https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/Str
现在,我当前的渲染代码如下: 着色器: 假设我想像JavaAWT一样,成功地填充这个形状。。。我该怎么做?(已经尝试使用GL_多边形,但它只填充整个O,我有一个填充圆,而不是O。也尝试使用jogamp glu的部分,但它只是没有渲染任何东西,不知道为什么)
并希望按列表中的值更改行C1-C3。预期产出:
我有一个简单的JavaFX类,对于这个问题,它的结构是这样的。 BorderPane包含包含FlowPane的StackPane。 几天来,我一直试图让StackPane填充其父级BorderPane,但似乎没有任何效果。最终结果应该是StackPane的背景设置为“红色”。 代码: 我的应用程序正在运行的照片 所以基本上这个左侧区域应该完全填充我的BorderPane的左侧,因此背景应该正确覆盖