例如,我想只有一个用户后执行在控制器中的“initRegister”的方法请点击页面如何通过AJAX初始化SpringMVC表单?
@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('
+'
+ 'commandName="reg" action="register.do">'
+ 'name: '
+ ''
+ '
'+ '
}
);
但是我得到了在浏览器下面的错误,当我访问的 “http://本地主机:8080 /.../ initPage.do”
Neither BindingResult nor plain target object for bean name 'reg' available as request attribute
只有当我移动“model.addAttribute(”reg“,new RegisterForm());”到“initPage”方法。但是我不需要创建一个RegisterForm实例,直到用户点击“注册”按钮。
如何解决?
2012-09-05
wlin
+0
我想你并没有真正的选择。在你的ajax中,你正在引用modeAttribute =“reg”,所以你得到这个错误是正常的。当你的页面执行ajax时,你没有任何对象“reg” –
+0
Hi @ rptmat57,你误解了错误。 AJAX代码由CALLBACK函数中的“注册”按钮调用。当我在浏览器地址栏中输入URL http:// localhost:8080 /.../ initPage.do时,出现错误,并按Enter键。 –
+1
你如何期望它能够工作,如果form:form是一个serverside标签?尝试从客户端修改jsp是个不错的主意。无论如何,你*可以*用Spring MVC渲染表单,然后用AJAX文章提交生成的html表单。 –