SpringMVC MultiActionController的使用

Step 1:配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>springapp</display-name>
<servlet>
<servlet-name>spring-mvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring-mvc</servlet-name>
<url-pattern>/web/*</url-pattern>
</servlet-mapping>

</web-app>
servlet-mapping定义所有以/web/开头的url请求都会被spring 的DispatcherServlet处理转发。
DispatcherServlet会读取<servlet-name>.xml文件的配置信息初始化,该文件中urlMapping的定义决定当前请求转发给哪个controller来处理。
Step2:定义/WEB-INF/spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans default-autowire="byName" default-lazy-init="true">
<!-- 方法名解析器 (该方法名解释器会把整个URL中最后一个"/"和最后一个"."之间的部分作为要调用的方法名。)-->
<bean id="InternalPathMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.InternalPathMethodNameResolver" />

<!-- 视图解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"> <value>org.springframework.web.servlet.view.JstlView</value>
</property>
</bean>

<!-- 注入所有ctrl类,可以单独放在一个xml文件中-->
<bean id="loginCtrl" class="net.gbicc.xbrl.instance.web.LoginCtrl"/>


<!-- -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<value>
*.login=loginCtrl
.................
</value>
</property>
</bean>
</beans>


Step3:定义controller类并继承MultiActionController
package net.gbicc.xbrl.instance.web;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

public class LoginCtrl extends MultiActionController {

public ModelAndView login(HttpServletRequest req,
HttpServletResponse res) throws ServletException, IOException {
Map map = new HashMap();
String userName = req.getAttribute("userName")
map.put("userName", userName);
return new ModelAndView("/index.jsp", map);
}
}

通过配置文件,访问上面这个controller中某个方法的url即为:
localhost:8080/web/方法名
Step4:/index.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head></head>
<body>
<c:out value="${map.userName}"/>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值