您的位置:首页 > 编程语言 > Java开发

简单的spring MVC实例,适合入门

2009-07-30 21:38 246 查看
1.用myeclipse建一个web工程,导入相应的spring包

2.配置web.xml

在web.xml里面添加如下代码

<display-name>springmvc</display-name>
<servlet>
<servlet-name>Dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Dispatcher</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

以上配置,所以以.do结尾的请求都会由名为Dispatcher的DispatcherServlet处理

2.在applicationContext.xm中使用spring默认的HandlerMapping实现来配置Mapping映射,代码如下l

<!-- 配置映射响应器 -->
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/test.do">testAction</prop>
</props>
</property>
</bean>

3.开发Controller和Form bean处理类,以及ModelAndView处理类类完成后返回的对象即跳转页面,在applicationContext.xm中添加代码如下

<!-- 配置控制器 -->
<bean id="testAction" class= "com.spring.actions.TestAction">
<property name="commandClass">
<value>com.spring.forms.TestForm</value>
</property>
<property name="formView" value="input" />
<property name="successView" value="success" />
</bean>

4viewResolver是ModelView返回后对应页面的解析器,例如对如jsp扩展名,我们可以配以下解析器

<!-- 配置试图解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass">
<value>org.springframework.web.servlet.view.InternalResourceView</value>
</property>
<property name="prefix">
<value>/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>

以下是所要用的代码

a:编写input.jsp

<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>测试Spring</title>
</head>
<body>
<form action="test.do" method="post">
<input type="text" name="str1">
<input type="text" name="str2">
<input type="submit">
</form>
</body>
</html

b:编写form类 com.spring.forms.TestForm

package com.spring.forms;

public class TestForm
{
private String str1;
private String str2;
public String getStr1() {
return str1;
}
public void setStr1(String str1) {
this.str1 = str1;
}
public String getStr2() {
return str2;
}
public void setStr2(String str2) {
this.str2 = str2;
}

}

c:编写处理类 action com.spring.actions.TestAction

package com.spring.actions;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.spring.forms.TestForm;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;

import java.util.Map;
public class TestAction extends SimpleFormController
{

protected ModelAndView onSubmit(
HttpServletRequest request, HttpServletResponse response,
Object command, BindException errors) throws Exception {
TestForm testForm=(TestForm)command;
if(testForm.getStr1().equals("admin")&&testForm.getStr2().equals("admin"))
{
request.getSession().setAttribute("str1",testForm.getStr1());
request.getSession().setAttribute("str2",testForm.getStr2());
return new ModelAndView(getSuccessView());
}
else
{
Map modle=errors.getModel();
modle.put("testForm",testForm);
return new ModelAndView(getFormView(),modle);
}
}

}

d:编写返回jsp页面,失败返回input.jsp,成功返回success.jsp

succes.jsp代码如下

<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
<table width="300" border="1">
<tr>
<td>str1=${str1} </td>
</tr>
<tr>
<td>str2=${str2 }</td>
</tr>
<tr>
<td><a href="input.jsp">[BACK]</a></td>
</tr>
</table>
</body>
</html>

这样第一个springMVC工程就建成了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: