`
v5qqbrowser
  • 浏览: 357406 次
文章分类
社区版块
存档分类
最新评论

实现Spring的MVC

阅读更多

SpringMVC相比Struts和webwork来说要更为麻烦一些,但Spring的MVC非常有意思而且据说功能很强大。首先配置web.xml如下

<servlet>

<servlet-name>training</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

</servlet>



<servlet-mapping>

<servlet-name>training</servlet-name>

<url-pattern>*.htm</url-pattern>

</servlet-mapping>

<!--使用监听作为前端控制-->



<listener>

	<listener-class>

		org.springframework.web.context.ContextLoaderListener

	</listener-class>

</listener>



<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/training-servlet.xml</param-value>

</context-param>

创建formBean

public class User{ 

private String username; 

private String password; 

//......对应的get和set方法

}
创建Controller
public class LoginController extends AbstractCommandController {

	public LoginController(){

		this.setCommandClass(User.class);

	}

	private User user;

	protected ModelAndView handle(HttpServletRequest arg0,HttpServletResponse arg1, Object arg2, BindException arg3)

	throws Exception {

		user = (User)arg2;

		//......

		return new ModelAndView("welcome","username",user.getUsername());

	}

	

}

这里使用的是AbstractCommandController接口,这里显而易见需要实现的是handle方法

他的返回值很有意思,是一个ModelAndView的对象

ModelAndView第一个参数是返回的目标,和第三个分别是返回给目标的数据的key和value

配置URL映射和视图解析器:training-servlet.xml

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">

   		<property name="prefix">

   			<value>/WEB-INF/jsp/</value>

   		</property>

   		<property name="suffix">

   			<value>.jsp</value>

   		</property>

</bean>

<bean id="beanNameUrlMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />

<bean name="/login.htm" class="controller.LoginController"/>

viewResolver就是视图解析工具,有意思的在这里

它会把ModelAndView的返回目标和prefix,suffix组合,在这里就是/WEB-INF/jsp/welcom.jsp(当然这不是URL,是welcom.jsp页面)

BeanNameUrlHandlerMapping是SpringMVC比较常用的一种URL映射,它会把bean的name属性值对应到相应的Controller上.

最后就是jsp页面了,这里可以直接调用ModelAndView所传递的数据。

login.jsp

<%@ page language="java" contentType="text/html; charset=GBK"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>   

    <title>login</title>

  </head>

  <body>

  	<form action="login.htm" method="post">

  		<input type="text" name="username" value="lingxiao">

  		<input type="text" name="password" value="123456">

  		<input type="submit" value="login">

  	</form>

  </body>

</html>

WEB-INF/jsp/welcom.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>welcome</title>

  </head>

  <body>

    welcome<br>

    <h2>username: ${username }</h2>

  </body>

</html>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics