例如,我想在用户单击页面中的“注册”按钮后才在 Controller 中执行“initRegister”方法
@Controller
public class UserController
{
@RequestMapping(method=RequestMethod.GET, value="/initPage.do")
public String initPage(Model model)
{
return "home.jsp";
}
@RequestMapping(method=RequestMethod.GET, value="/initRegister.do")
@ResponseBody
public void initRegister(Model model)
{
model.addAttribute("reg", new RegisterForm());
}
}
“注册”按钮调用的 JQuery AJAX:(显示一个用于注册的小弹出窗口)
$.get('initRegister.do', function()
{
$('body').append('<div>'
+'<form:form method="POST" modelAttribute="reg" '
+ 'commandName="reg" action="register.do">'
+ 'name: <form:input path="name"/>'
+ '<input type="submit" value="Submit">'
+ '</form:form>'
+ '</div>');
}
);
但是,当我访问“http://localhost:8080/.../initPage.do”时,在浏览器中出现以下错误
Neither BindingResult nor plain target object for bean name 'reg' available as request attribute
该页面仅在我移动“model.addAttribute("reg", new RegisterForm());”时才有效 到“initPage”方法。但是在用户单击“注册”按钮之前,我不需要创建 RegisterForm 实例。
如何解决?