以下是我的样本控制器。
@RequestMapping(value = "/validate", method = RequestMethod.POST)
public String validatePage1 (@ModelAttribute("page1")
Page1 pg1, BindingResult result) {
System.out.println("Value1:" + pg1.getVal1() +
"Value2:" + pg1.getVal2());
return "page2"; // I don't want to take any action (page navigation) here
}
@RequestMapping("/page1")
public ModelAndView pageShow() {
return new ModelAndView("page1", "command", new Page1());
}
现在的问题是,当Spring框架调用方法(validatePage1)时,我不想在客户端采取任何操作,该怎么办?
实际上我在加载时已经在我的客户端加载了所有必需的页面(以避免重复的页面加载),所以我不想在客户端采取任何页面导航操作,我只是想做'数据绑定'在服务器端完成我的业务逻辑。
当我在“validatePage1()”中返回“”空字符串时,Spring框架抛出异常“请求处理失败;嵌套异常是org.apache.tiles.definition.NoSuchDefinitionException:”因为我正在使用tile,我必须删除之后我会在第一次加载时加载所有文件。
答案 0 :(得分:6)
您可以将方法设置为返回void
并使用@ResponseBody
对其进行注释,如建议的here。无需处理HttpServletResponse
等。
答案 1 :(得分:3)
直接来自the documentation:
支持的方法返回类型
以下是支持的返回类型:
[...]
如果方法处理响应本身(通过直接编写响应内容,为此目的声明类型为ServletResponse / HttpServletResponse的参数)或者应该通过RequestToViewNameTranslator隐式确定视图名称(不声明响应),则返回void处理程序方法签名中的参数。)