11SpringMvc_一个Action中,写多个类似的业务控制方法

我们要实现这么一个功能:

编写两个表单,提交到同一个Action中的不同的处理方法中。比如注册和登录,都提交到UserAction这个控制类中。但是这两个提交由userAction这个控制类不同的方法去处理。

案例结构如下:

这个案例用到的文件有:1.UserActio.java(控制类)2.Spring.xml(总的配置文件)3.springmvc_006.xml(这个项目独有的配置文件)4.adduser.jsp(有两个表单的jsp页面)

第一步:编写web.xml文件。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>SpringMvc_10day_self</display-name>
  <!-- Spring提供了一个Filter专门用来解决Post提交中文的乱码问题 -->
   <filter>
     <filter-name>CharacterEncodingFilter</filter-name>
     <filter-class>
 org.springframework.web.filter.CharacterEncodingFilter
 </filter-class>
 <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
 </init-param>
</filter>
 <filter-mapping>
 <filter-name>CharacterEncodingFilter </filter-name>
 <url-pattern>/*</url-pattern>
 </filter-mapping>

  <servlet>
  <!--这个名字可以随便取得,但是这个名字取了之后,以后在 WEB-INF下面创建SpirngMVC的配置文件是,命名必须以这个开头,

  所以这里取名叫做DispatcherServlet,那么之后的xml文件取名必须为DispatcherServlet-servlet.xml(一个字都不能差)

  -->
  <servlet-name>DispatcherServlet</servlet-name>
  <servlet-class> org.springframework.web.servlet.DispatcherServlet</servlet-class>
 <!-- 通知DispatcherServlet去指定目录下找到springmvc.xml配置文件 -->
 <!--
 注意这里的  <param-name>contextConfigLocation</param-name>一个字母都不能有错
 一旦有错就会去WEB-INF下面去找
  -->
          <init-param>
               <param-name>contextConfigLocation</param-name>
              <param-value>classpath:spring.xml</param-value>
          </init-param>
 </servlet>
 <servlet-mapping>
   <servlet-name>DispatcherServlet</servlet-name>
    <url-pattern>*.action</url-pattern>

 </servlet-mapping>

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>
</web-app>

第二步:编写spring.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:context="http://www.springframework.org/schema/context"
      xmlns:aop="http://www.springframework.org/schema/aop"
      xmlns:tx="http://www.springframework.org/schema/tx"
      xmlns:mvc="http://www.springframework.org/schema/mvc"
      xsi:schemaLocation="
      http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context-3.0.xsd
      http://www.springframework.org/schema/aop
      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
      http://www.springframework.org/schema/tx
      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
      http://www.springframework.org/schema/mvc
      http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
>
<import resource="com/guigu/shen/Action6/springmvc_006.xml"/>
</beans>

第三步:编写com/guigu/shen/Action6/springmvc_006.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:context="http://www.springframework.org/schema/context"
      xmlns:aop="http://www.springframework.org/schema/aop"
      xmlns:tx="http://www.springframework.org/schema/tx"
      xmlns:mvc="http://www.springframework.org/schema/mvc"
      xsi:schemaLocation="
      http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context-3.0.xsd
      http://www.springframework.org/schema/aop
      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
      http://www.springframework.org/schema/tx
      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
      http://www.springframework.org/schema/mvc
      http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
>
     <!-- 控制器(程序员)(必须配置)这么一配置的话系统就会去com.guigu.shen.Action6这个包下面去寻找有注解@Controller的类。

 -->
<context:component-scan base-package="com.guigu.shen.Action6"/>
 <!-- <bean name="/hello.action" class="com.guigu.shen.Action5.HelloAction"></bean> --> 

  <!-- 基于注解的映射器(可选)
  这个类和以前的xml方式的类不同,专门是注解用的
  -->
      <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>

      <!-- 基于注解的适配器(可选)
        这个类和以前的xml方式的类不同,专门是注解用的
       -->
      <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>

      <!-- 视图解析器(可选)
        这个类和以前的xml方式的类一样
      -->
      <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

   </bean>

</beans>

第四步:编写控制类UserAction.java。

package com.guigu.shen.Action6;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
/**
 *
 *
请求路径可以拆分为:根模块的名字+分模块的名字
就是相当于当访问http://127.0.0.1:8080:项目名/user/register时就会进入到
registerMethod方法。

 */
@Controller
@RequestMapping(value="/user")//根模块的请求名字
public class UserAction {
    /*
     * 员工注册
     *
     */
@RequestMapping(value="/register")//分模块的请求名字
public String registerMethod(Model model)
{

    model.addAttribute("message", "员工注册成功");
    return "/jsp/success.jsp";
}
  /*
     * 员工登录
     *
     */
@RequestMapping(value="/login")//分模块的请求名字
public String loginMethod(Model model)
{
    model.addAttribute("message", "员工登录成功");
    return "/jsp/success.jsp";

}

}

第六步:测试 输入hhttp://127.0.0.1:8080/SpringMvc_10day_self/adduser.jsp

出现

按下注册按钮。会进入到http://127.0.0.1:8080/SpringMvc_10day_self/user/register.action。从而执行控制类UserAction里面的public String registerMethod(Model model)方法。

按下登录按钮。会进入到http://127.0.0.1:8080/SpringMvc_10day_self/user/login.action。从而执行控制类UserAction里面的

public String loginMethod(Model model)

方法。

总结:通过模块根路径 + 功能子路径 = 访问模块下子功能的路径

时间: 2024-10-22 08:01:14

11SpringMvc_一个Action中,写多个类似的业务控制方法的相关文章

一个Action中,可以写多个类似的业务控制方法

1)通过模块根路径 + 功能子路径 = 访问模块下子功能的路径 @Controller @RequestMapping(value="/user") public class UserAction{ @RequestMapping(value="/add") public String add(Model model) throws Exception{ System.out.println("HelloAction::add()"); mode

C# List中写出LINQ类似SQL的语句

很多时候,从一个关系表中挑出一个我们需要的元素列表采用SQL语句是再容易不过的了,其实C#的List中也可以采用类似的方法,虽然List中集成了Select(), Where()等语句,不过如果你的判断规则较为复杂,或者想要看起来一目了然,以下的方法也是可行的: 首先假设你有一个类 public class People { public string Name { get; set; } public int Age { get; set; } } 并且有一些初始化语句 List<People

从一个集合中过滤另一个集合中存在的项(类似in)

直接贴代码出来: List<PriceMark> list = PriceMarkDAL.m_PriceMarkDAL.GetList("Erp_ProName='TLC7528CDWR'"); ZWCUSTORDERClient pri = new ZWCUSTORDERClient(); ZwjgA610Konm[] Prices = new ZwjgA610Konm[11]; byte b = pri.ZWsPrice("TLC7528CDWR",

java 一个文件中写多个class

一个java文件中可以包含多个类,但这些类中一个特殊类,这个类的属性为public,且这个类的名字与文件名相同,java文件中仅有一个类为public. interface Moveable { void run(); } //具体产品角色 class Plane implements Moveable { @Override public void run() { System.out.println("plane...."); } } class Broom implements

在后台action中写页面。

StringBuffer sbstr=new StringBuffer("<table id='tabe>";); String tablehtml= "<tr><td>"+str1+"</td>" + "<td>"+str2+"</td>"+"<td>"+str3+"</td>&l

Spring MVC 中采用注解方式 Action中跳转到另一个Action的写法

Spring MVC 中采用注解方式 Action中跳转到另一个Action的写法 在Action中方法的返回值都是字符串行,一般情况是返回某个JSP,如: return "xx":意思是返回到某个JSP页面上 如果想在此Action中跳转到另一个Action中怎样做呢? return "redirect://.do?" 例如: @RequestMapping(params = "action=delete") public String del

Struts2学习(二)运行Action中方法的三种方式

1.运行execute()方法 一般的能够直接在action中书写execute,调用action时会自己主动运行此方法 2.配置method方法 在struts.xml中配置action时.写method属性设置方法.例如以下所看到的.这样写能够在一个action类中写多个运行的方法.简化结构. <package name="user" extends="struts-default" namespace="/user"> <

SSH配置环境都正常,但是每次执行到Action中的方法时就中断了,而且不报任何错误

SSH配置环境都正常,但是每次执行到Action中的方法时就不执行课,而且不报任何错误.Action中的方法封装的是业务层,业务层封装DAO层,检查了一天才发现错误在哪. 在applicationContext.xml中报了一个异常,如: Multiple annotations found at this line: - Exception 'com/dao/StudentDAO : Unsupported major.minor version 51.0' - Exception 'com/

Struts2从一个action转到另一个action的两种方法

在Struts2中,Action处理完用户请求后,将会返回一个字符串对象,这个字符串对象就是一个逻辑视图名.Struts 2通过配置逻辑视图名和物理视图之间的映射关系,一旦系统收到Action返回的某个逻辑视图名,系统就会把相应的物理视图呈现给浏览者. Struts 2的结果类型决定了Action处理结束后,下一步将会调用那种视图资源来呈现处理结果.默认是dispatcher,该结果类型指定使用JSP作为视图资源.但是我们会有这样的要求:要求从一个Action转到另一个Action中去. 从一个