热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

注解驱动的springMVC与参数绑定

最近一直在学习springMVC。真的很灵活,这次主要做个前台传入数据到控制器并调用服务层来完成数据验证工作并跳转页面。工程目录结构这次由于没有连接数据库ÿ

最近一直在学习spring MVC。真的很灵活,这次主要做个前台传入数据到控制器并调用服务层来完成数据验证工作并跳转页面。


  • 工程目录结构

这里写图片描述

这次由于没有连接数据库,所以没有设置dao层。直接在service里面做了验证处理。
需求是从前台传入username和password两个参数到后台验证过完成页面跳转。
首先配置web容器的web.xml:


<web-app xmlns:xsi&#61;"http://www.w3.org/2001/XMLSchema-instance"xmlns&#61;"http://java.sun.com/xml/ns/javaee" xmlns:web&#61;"http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation&#61;"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"version&#61;"2.5"><servlet><servlet-name>springservlet-name><servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class><init-param><param-name>contextConfigLocationparam-name><param-value>classpath*:springMVC.xmlparam-value>init-param><load-on-startup>1load-on-startup>servlet><servlet-mapping><servlet-name>springservlet-name><url-pattern>/url-pattern>servlet-mapping><welcome-file-list><welcome-file>welcome.jspwelcome-file>welcome-file-list>
web-app>

然后配置springMVC的servlet。这个必须放在根包下面&#xff0c;之前放到包下面&#xff0c;总是无法起作用。
springMVC.xml:


<beans xmlns&#61;"http://www.springframework.org/schema/beans"xmlns:xsi&#61;"http://www.w3.org/2001/XMLSchema-instance" xmlns:p&#61;"http://www.springframework.org/schema/p"xmlns:context&#61;"http://www.springframework.org/schema/context"xsi:schemaLocation&#61;"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"><context:component-scan base-package&#61;"controller">context:component-scan><bean id&#61;"viewResolver"class&#61;"org.springframework.web.servlet.view.InternalResourceViewResolver"><property name&#61;"prefix" value&#61;"/WEB-INF/jsp/">property><property name&#61;"suffix" value&#61;".jsp">property>bean>beans>

然后我们需要写控制器&#xff0c;完成页面跳转与数据存储和业务调用&#xff1a;
&#64;RequestParam(“username”)为前端的username参数放到name对象上。password同理&#xff0c;十分的优雅。

&#64;Controller
&#64;RequestMapping("/login")
public class LoginAction {&#64;RequestMapping("/check")public ModelAndView checkLogin(&#64;RequestParam("username") String name,&#64;RequestParam("password") String password){if(CheckUser.CheckUser(name, password)) return new ModelAndView("success","loginUser","hello micro");return new ModelAndView("error","loginName","you are not allowed into system!");}
}

调用的CheckUser静态构造方法为&#xff1a;

public class CheckUser {/** 模拟dao完成验证*/public static boolean CheckUser(String username,String password){if(username.equals("micro") && password.equals("123")) return true;return false;}
}

完成业务层的处理。

然后来写welcome.jsp登录页面吧&#xff1a;

<%&#64; page language&#61;"java" contentType&#61;"text/html; charset&#61;UTF-8"pageEncoding&#61;"UTF-8"%>

<html>
<head>
<meta http-equiv&#61;"Content-Type" content&#61;"text/html; charset&#61;UTF-8">
<title>welcome pagetitle>
head>
<body><h1>欢迎h1><form action&#61;"login/check" method&#61;"post">username:<input type&#61;"text" name&#61;"username" value&#61;"micro" /> password:<input type&#61;"text" name&#61;"password" value&#61;"123" /><input type &#61; "submit" value &#61; "提交">form>
body>
html>

如果验证成功跳转到&#xff1a;

<%&#64; page language&#61;"java" contentType&#61;"text/html; charset&#61;UTF-8"pageEncoding&#61;"UTF-8"%>

<html>
<head>
<meta http-equiv&#61;"Content-Type" content&#61;"text/html; charset&#61;UTF-8">
<title>success pagetitle>
head>
<body>
<h1>this is a success pageh1>
${loginUser}
body>
html>

验证失败&#xff1a;

<%&#64; page language&#61;"java" contentType&#61;"text/html; charset&#61;UTF-8"pageEncoding&#61;"UTF-8"%>

<html>
<head>
<meta http-equiv&#61;"Content-Type" content&#61;"text/html; charset&#61;UTF-8">
<title>error pagetitle>
head>
<body>
<h1>this is a error pageh1>
${loginName}
body>
html>

这里写图片描述
提交就会请求loginAction&#xff0c;然后调用CheckUser完成业务处理 页面跳转和数据存储。
登录成功跳转&#xff1a;
这里写图片描述
验证失败跳转&#xff1a;
这里写图片描述


推荐阅读
  • Struts与Spring框架的集成指南
    本文详细介绍了如何将Struts和Spring两个流行的Java Web开发框架进行整合,涵盖从环境配置到代码实现的具体步骤。 ... [详细]
  • ssm框架整合及工程分层1.先创建一个新的project1.1配置pom.xml ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • Spring Boot 中静态资源映射详解
    本文深入探讨了 Spring Boot 如何简化 Web 应用中的静态资源管理,包括默认的静态资源映射规则、WebJars 的使用以及静态首页的处理方法。通过本文,您将了解如何高效地管理和引用静态资源。 ... [详细]
  • 本文介绍如何使用布局文件在Android应用中排列多行TextView和Button,使其占据屏幕的特定比例,并提供示例代码以帮助理解和实现。 ... [详细]
  • 本文详细介绍了如何准备和安装 Eclipse 开发环境及其相关插件,包括 JDK、Tomcat、Struts 等组件的安装步骤及配置方法。 ... [详细]
  • 本文深入探讨了HTTP请求和响应对象的使用,详细介绍了如何通过响应对象向客户端发送数据、处理中文乱码问题以及常见的HTTP状态码。此外,还涵盖了文件下载、请求重定向、请求转发等高级功能。 ... [详细]
  • 本文介绍如何使用 Android 的 Canvas 和 View 组件创建一个简单的绘图板应用程序,支持触摸绘画和保存图片功能。 ... [详细]
  • 深入解析SpringMVC核心组件:DispatcherServlet的工作原理
    本文详细探讨了SpringMVC的核心组件——DispatcherServlet的运作机制,旨在帮助有一定Java和Spring基础的开发人员理解HTTP请求是如何被映射到Controller并执行的。文章将解答以下问题:1. HTTP请求如何映射到Controller;2. Controller是如何被执行的。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 本文探讨了dbforms框架的核心设计理念及其背后的技术原理,详细分析了该框架如何通过其独特的设计模式来简化开发流程,并为开发者提供了优化使用方法的建议。 ... [详细]
  • 创建项目:Visual Studio Online 入门指南
    本文介绍如何使用微软的 Visual Studio Online(VSO)创建和管理开发项目。作为一款基于云计算的开发平台,VSO 提供了丰富的工具和服务,简化了项目的配置和部署流程。 ... [详细]
author-avatar
荆梦梦丶乐园
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有