一个简略的Spring MVC实例(2011.4.12)

一个简单的Spring MVC实例(2011.4.12)

刚刚开始接触Spring MVC,下面是一个简单的实例,里面有一些详细的注释,以及疑问,请参考

 

 ------------------------web.xml配置----------------------------------------------------

<servlet>
		<servlet-name>DispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:applicationContext.xml</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>DispatcherServlet</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>

 

---------------------------控制器--------------------- 

public class LoginController extends SimpleFormController {

	private String error;
	
	public String getError() {
		return error;
	}

	public void setError(String error) {
		this.error = error;
	}

	//优先执行此方法(4个参数)
	protected ModelAndView onSubmit(HttpServletRequest request,
			HttpServletResponse response, Object command, BindException errors)
			throws Exception {
		System.out.println("执行4个参数方法");
		Login login=(Login) command;
		System.out.println("UserName:"+login.getUserName());
		System.out.println("PassWord:"+login.getPassWord());
		//第一种传值及显示
//		request.setAttribute("userName", login.getUserName());
//		request.setAttribute("passWord", login.getPassWord());
//		return new ModelAndView("ok");
		//第二种传值及显示
//		return new ModelAndView("ok","loginModel",login);
		//第三种传值及显示
		Map mapModel=new HashMap();
		mapModel.put("loginModel", login);
		return new ModelAndView("ok",mapModel);
	}

	protected ModelAndView onSubmit(Object command, BindException errors)
			throws Exception {
		System.out.println("执行2个参数方法");
		Login login=(Login) command;
		System.out.println("UserName:"+login.getUserName());
		System.out.println("PassWord:"+login.getPassWord());
		return new ModelAndView("ok");
	}

	protected ModelAndView onSubmit(Object command) throws Exception {
		System.out.println("执行1个参数方法");
		Login login=(Login) command;
		System.out.println("UserName:"+login.getUserName());
		System.out.println("PassWord:"+login.getPassWord());
		return new ModelAndView("ok");
	}

	
}

 

---------------------Spring配置文件---------------------------------------------

<!-- 配置视图的显示 -->
	<bean id="ViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/"></property><!-- 视图文件的前缀 -->
		<property name="suffix" value=".jsp"></property><!-- 视图文件的后缀名 -->
		<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property><!-- view是用什么显示,这里是jsp,还可以用velocity之类的 -->
	</bean>
	
	<!-- 配置action的请求路径 -->
	<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
		<property name="mappings">
			<props>
				<prop key="/login.do">loginAction</prop><!-- loginAction必须与下面名称一一对应,key是请求的mapping -->
			</props>
		</property>
	</bean>
	<bean id="login" class="org.yonge.model.Login"></bean>
	<!-- 配置action -->
	<bean id="loginAction" class="org.yonge.action.LoginController">
		<property name="commandClass" value="org.yonge.model.Login"></property>
		<property name="error" value="error"></property>
		<!-- 这里并没有配置控制器中(return new ModelAndView("ok"))ok对应的 视图,同理,上面也可以不设置error属性-->
	</bean>

 

 

 -----------------------index.jsp(首页)----------------------------------------------------

<form action="./login.do" method="post"><!-- 为什么method=post可以正常运行,而method=get不可以 -->
	  	<table align="center" width="50%" border="0">
	  		<tr>
	  			<td>UserName:</td>
	  			<td>
	  				<input type="text" name="userName">
	  			</td>
	  		</tr>
	  		<tr>
	  			<td>PassWord:</td>
	  			<td>
	  				<input type="text" name="passWord">
	  			</td>
	  		</tr>
	  		<tr>
	  			<td colspan="2">
	  				<input type="submit"" value="提交">
	  			</td>
	  		</tr>
	  	</table>  		
  	</form>

 

 

-----------------------ok.jsp------------------------------------------------------- 

<body>
  	登录成功!!!
  	<!-- UserName:${userName }
  	PassWord:${passWord } -->
  	UserName:${loginModel.userName }
  	PassWord:${loginModel.passWord }
  </body>

 

 上面的疑问请知道的各位解答一下,谢谢!!!

1 楼 summer1433 2011-04-13  
你这代码也贴的太多了吧,哪里copy来的
2 楼 yonge812 2011-04-13  
summer1433 写道
你这代码也贴的太多了吧,哪里copy来的

myeclipse里面复制的 一个简略的Spring MVC实例(2011.4.12)