Spring MVC使用方法
来源:互联网 发布:java电影院售票系统 编辑:程序博客网 时间:2024/05/28 14:56
一,导入spring的核心包与MVC包
spring.jar,commons-logging.jar,spring-webmvc.jar
二,在web.xml中,配置Servlet
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>这个属性是DispatcherServlet的父类FrameworkServlet中的,String类型
<param-value>classpath:spring-schema.xml</param-value> 指定spring的配置文件所在路径
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
三,创建spring的配置文件,我给他取名叫:spring-schema.xml
四,编写ACTION,这个ACTION要继承springmvc中的一个叫做AbstractController抽象类,或者实现Controller接口,选择一个你所需要的方法,重写即可。
这里,我方便测试,我写了三个JSP页面,
1,一个index.jsp,只有一个连接,通过toLogin.do,跳转到login.jsp(对应ACTION是ToLoginAction implements Comtroller)
2,login.jsp用的是submit提交(对应LoginAction extends SimpleFormController),SimpleFormController 继承于AbstractFormController ,AbstractFormController继承于BaseCommandController,BaseCommandController继承于AbstractController。
3,welcome.jsp登录成功的时候,返回到这个页面,提示登录成功,并显示用户名。
五,写完两个ACTION
1,跳转到登录页面的处理
package action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class ToLoginAction implements Controller {
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
return new ModelAndView("login");
}
}
2,处理登录的验证
package action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
import entity.User;
public class LoginAction extends SimpleFormController{
@Override
protected ModelAndView onSubmit(
HttpServletRequest request,
HttpServletResponse response,
Object command, //这个参数很关键,自动封装来自表单提交的数据,变成实体对象,下面有介绍
BindException errors)
throws Exception {
User user=(User)command;
ModelMap modelmap=new ModelMap(); //ModelMap extends LinkedHashMap 是一个能记录插入顺序的HashMap
if(user.getName().equals("zhangsan")&&user.getPassword().equals("1234")){
modelmap.put("user", user); //modelmap是用来绑定要在JSP显示的数据
return new ModelAndView("welcome",modelmap); //welcome是一个响应视图名字,返回到spring配置文件的时候,根据这个跳转到相应的JSP页面
}
modelmap.put("error", "用户名或密码错误"); //如果不符合zhangsan 1234 那么则绑定一个错误提示信息,
return new ModelAndView("login",modelmap); //如果不符合zhangsan 1234 返回到login.jsp(通过spring容器)
}
}
3,USER实体类
package entity;
public class User {
private String name;//这里的名字必须与表单中的name 一样 <input type="text" name="name">
private String password; //这里的也是 <input type="password" name="password">
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
六,配置好spring-schema.xml
1 ,将ACTION注入spring容器
<bean id="toLogin" class="action.ToLoginAction" scope="prototype">
</bean>
<bean id="login" class="action.LoginAction" scope="prototype">
<property name="commandClass" value="entity.User">
//commandClass是BaseCommandController的一个属性,他将表单提交的数据自动封装成实体对象,这也是为什么上面表单名字和实体的属性名字要一样了
</property>
</bean>
2 ,将请求注入到spring容器
<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">//只要是一个HandlerMapping组建即可,我选择简单的
<property name="mappings"> //mappings是该类或者他父类的一个Properties属性,key=请求名,value=对应的action在容器中的ID值
<props>
<prop key="toLogin.do">toLogin</prop>
<prop key="login.do">login</prop>
</props>
</property>
</bean>
3 ,<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> //这个类是处理返回结果的
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>//viewClass是上面那个类的一个属性,JstlView是他的子类
<property name="prefix" value="WEB-INF/"/> //前缀
<property name="suffix" value=".jsp"/> //后缀
</bean>
完毕,下面介绍运作流程
浏览器发送.do请求时,通过web.xml,调用springmvc框架底层的servlet,将请求交给spring容器来处理。spring容器在创建的时候,即服务器启动时就已经将action注入了,这个时候,控制器调用spring容器的HandlerMapping组建处理,实现请求和ACTION之间的映射。
控制器处理完毕,返回的是一个ModelAndView组建,这个东西封装了模型数据和响应视图的名字,这里相当于struts中的result一样,在spring容器中,控制器调用视图解析器ViewResolver,寻找对应的JSP视图,最后就可以做数据显示了
- Spring MVC使用方法
- Spring MVC @RequestMapping使用方法
- Spring MVC集成Tiles使用方法
- Spring MVC集成Tiles使用方法
- Spring MVC增强型Controller-MultiActionController 使用方法
- Spring MVC集成Struts Tiles使用方法
- Spring MVC增强型Controller-MultiActionController 使用方法
- Spring MVC 中的 @RequestMapping 的使用方法
- spring的配置文件中mvc:view-controller path使用方法
- spring MVC中关于model.addAttribute的使用方法【翻译】
- spring的配置文件中mvc:view-controller path使用方法
- spring的配置文件中mvc:view-controller path使用方法
- spring的配置文件中mvc:view-controller path使用方法
- spring的配置文件中mvc:view-controller path使用方法
- spring的配置文件中mvc:view-controllerpath使用方法
- spring的配置文件中mvc:view-controller path使用方法
- PHP.MVC的使用方法
- spring mvc
- java泛型详解
- ASP.NET 2.0中的跨页面提交
- 逻辑电路
- hibernate.properties详细配置参数
- oracle 单实例数据库规划参考
- Spring MVC使用方法
- 在考察一家创业公司时,VC会考虑的11种风险
- StringUtils工具类的常用方法
- 使Android Home键,Power键等按钮失效
- jsp相对路径及servlet请求
- Win 7下定位kernel32.dll基址及shellcode编写
- Android中Shape Drawable在xml中的使用
- 远程桌面连接后实现copy文件的3个办法
- Unity发布android错误:Bundle Identifier has not been set up correctly