郑州电动车:Web之简单表格控制器实例

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 19:54:07
SimpleFormController”,他是一个简单表单控制器,这种控制器有三个基本的属性需要指定。这三个属性都是simpleFormController这个父类自带属性,即当一个类继承了SimpleFormController类时,这三个属性就存在,用户不需要再自行定义。1        commandClass 这个属性规定了存放表单数据的bean。便于spring 容器识别用户定义的数据接口。(是一个简单的bean)2        formView 这个属性规定了控制器执行失败时返回到的视图。由于其值是“form”,又由于名为viewResolver的bean规定了后缀是.jsp,因此控制器执行成功时,打开名为”form.jsp”的网页.3        successView这个属性规定了控制器执行成功时返回的视图。在这里,由于其值是“success”,又由于名为viewResolver的bean规定了后缀是.jsp,控制器成功执行时,打开名为“success.jsp”网页。 ID 名为“viewResolver”的Bean由于其类型是“InternalResourceViewResolver”,这个bean指定了视图命名规则。即指出了视图文件所在文件位置。视图名:前缀+视图名+后缀。前缀指定了视图所在的文件夹,后缀指定了视图类型。 Spring mvc 例 功能:当用户输入http://localhost:8084/WebApplication4/login.do网址时,展现给用户的是有“用户名”、“密码”的网页。当用户分别输入“admin”、“123”时,显示另一个含有“当前用户:123”及“返回的信息:msg1”的网页。如果用户输入的用户名或密码出错时,继续打开最初网页。其中:工程名为WebApplication4.      Jsp 文件位于WEB-INF\jsp文件夹下      Web.xml与dispatcher-servlet.xml位于WEB-INF文件夹下。      Java类位于action包中包含的资源文件有:spring web mvc 2.5 spring framework 2.5两个包。Netbean6.1自带 执行过程:用户输入http://localhost:8084/WebApplication4/login.do,web服务器在web.xml查找与login.do相匹配的servlet服务器,找到发现是dispatcher,而这个服务器用户没有批指该服务器的配置文件文件,故按缺省命名处理,找到dispatcher-servlet.xml配置文件。在dispatcher-servlet.xml发现,与login.do相匹配的spring 控制器是loginCtl,查找loginCtl控制器的bean配置情况。发现是表单控制器,所用到的表单数据接口是fuser类,执行失败时,打开form.jsp网页;当执行成功时,打开success.jsp网页。Web.xml 配置内容:指定了所有含有.do的请求都交给dispatcher servlet服务器处理。            30                 dispatcher       org.springframework.web.servlet.DispatcherServlet        2                dispatcher        *.do                index.jsp      dispatcher-servlet.xml配置内容:                                              loginCtl                                                       action.Fuser                                 form                                   success                         Login.java表单控制类package action;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.validation.BindException;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.SimpleFormController;import java.util.HashMap;import java.util.List;import java.util.LinkedList;  publicclass Login extends SimpleFormController{    protected ModelAndView onSubmit(HttpServletRequest arg0, HttpServletResponse arg1, Object cmd, BindException ex) throws Exception {        Fuser fuser=(Fuser) cmd;        if (loginCheck(fuser)==0 ){            HashMap result_map=new HashMap();            result_map.put("fuser", fuser);                       List msgList=new LinkedList();            msgList.add("msg1");                       result_map.put("messages", msgList);            return new ModelAndView(this.getSuccessView(),result_map);        }               returnnew ModelAndView(this.getFormView());    }       privateint loginCheck(Fuser fuser){       if ( ("admin".equals(fuser.getUsername()) )                 && ("123".equals(fuser.getPassword()) ) ){           return 0;       }       return 1;   } } Fuser.java表单数据接口类package action;public class Fuser {    private String username="";    private String password="";    public String getUsername(){        return username;    }    public void setUsername(String username){        this.username=username;    }    public String getPassword(){        return password;    }    public void setPassword(String password){        this.password=password;    }       }  form.jsp视图---登陆视图 <%@page contentType="text/html" pageEncoding="UTF-8"%>                     JSP Page                              

登陆

             
 用户名:                             
              
 密码:                              
              

                                                

              success.jsp 登陆成功视图<%@page contentType="text/html" pageEncoding="UTF-8"%>                     JSP Page               

 当前用户:${fuser.username} 

       

返回的信息

       

           <% java.util.List mes = ( java.util.List)request.getAttribute("messages");               out.print(mes.get(0).toString());           %>