初学 spring mvc,看见个例子不解.

[code="java"]package com.examp.ch23;

import Java.util.HashMap;

import Java.util.Map;

import org.apache.log4j.Logger;

import org.springframework.web.servlet.ModelAndView;

import org.springframework.web.servlet.mvc.SimpleFormController;

public class LoginController extends SimpleFormController{

//继承SimpleFormController类

private Logger logger = Logger.getLogger(this.getClass().getName());

private String viewPage;

protected ModelAndView onSubmit(Object command)

//在onSummit()方法中处理用户请求

throws Exception {

LoginBean loginbean = (LoginBean)command;

Map model = new HashMap();

model.put("userName", loginbean.getUserName());

//将loginbean中的userName存入model

ModelAndView mv = new ModelAndView(getViewPage(),model);

return mv;

}

public void setViewPage(String viewPage){ //
调用该方法给属性viewPage赋值

this.viewPage = viewPage;

}

public String getViewPage(){ //调用该方法获取viewPage属性

return this.viewPage;

}

} [/code]
控制器代码如上,不理解的地方:
1.[code="java"]protected ModelAndView onSubmit(Object command)[/code]
请问 onSubmit传入的是个什么对象
2.[code="java"]LoginBean loginbean = (LoginBean)command[/code]
这是创建一个loginbean实例吗,不理解

这个例子的出处:http://book.51cto.com/art/200909/154457.htm。
里面有这个的完整代码。

5个回答

找Bean的问题应该是框架自己内部去实现的事情,就跟struts分发action一样,它怎么知道你要响应哪个action。这是交给servlet容器去分配的 :D

其实当你提交表单的时候,后台就相应onSubmit方法,而该方法里面的参数就是你前台传过来的LoginBean对象。[code="java"]LoginBean loginbean = (LoginBean)command [/code]这句只不过是把传过来的command强制转换一下,可以调用该实体里面的方法而已。

onSubmit的参数是


用户名:
密码:

里面的字段构成的LoginBean对象。
LoginBean loginbean = (LoginBean)command
这个就是把它转型成LoginBean。

不知道这个是什么版本的spring,看着很古老的controller,建议学2.5以后的版本,最好是3.

[code="java"]


用户名:
密码:

[/code]struts2里面这样就能知道是哪个Bean了,不知道你前台代码怎么写的。贴出来。 :D

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问