package
Action;
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
DispathActionController
extends
MultiActionController
...
{
private String listView;
private String nameView;
public String getListView() ...{
return listView;
}
public void setListView(String listView) ...{
this.listView = listView;
}
public String getNameView() ...{
return nameView;
}
public void setNameView(String nameView) ...{
this.nameView = nameView;
}
public DispathActionController()...{
}
public ModelAndView courseSortByList(HttpServletRequest request,HttpServletResponse response)...{
return new ModelAndView(this.getListView());
}
public ModelAndView courseSortByName(HttpServletRequest request,HttpServletResponse response)...{
return new ModelAndView(this.getNameView());
}
}
<
bean
id
="simpleUrlMapping"

class
="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"
>
<
property
name
="mappings"
>
<
props
>
<
prop
key
="/home.mvc"
>
HomeController
</
prop
>
<
prop
key
="/register.mvc"
>
RegisterStudentController
</
prop
>
<
prop
key
="/feedback.mvc"
>
FeedbackController
</
prop
>
<
prop
key
="/course*.mvc"
>
multiactionController
</
prop
>
<!--
-用*代表所有course开头的url path->
</props>
</property>
</bean>

<bean id="viewResolver" 
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
<!-- 使用MuitlActionController控制器及URL方式访问
-->
<
bean
id
="multiactionController"
class
="Action.DispathActionController"
>
<
property
name
="listView"
><
value
>
dispatch/sortByList
</
value
></
property
>
<
property
name
="nameView"
><
value
>
dispatch/sortByName
</
value
></
property
>
</
bean
>
使用这种方式,我们访问两个方法的url分别为 方法名.mvc
http://localhost:81/SpringMVCStudy/courseSortByList.mvc
http://localhost:81/SpringMVCStudy/courseSortByName.mvc
(2)解析方法名的方式
有两种细分,第一是用一个参数(类似struts的dispathAction),第二种是直接配置url mapping
第一种方式配置文件
<
bean
id
="simpleUrlMapping"

class
="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"
>
<
property
name
="mappings"
>
<
props
>
<
prop
key
="/home.mvc"
>
HomeController
</
prop
>
<
prop
key
="/register.mvc"
>
RegisterStudentController
</
prop
>
<
prop
key
="/feedback.mvc"
>
FeedbackController
</
prop
>
<
prop
key
="/course.mvc"
>
multiactionController
</
prop
>
</
props
>
</
property
>
</
bean
>

<
bean
id
="viewResolver"

class
="org.springframework.web.servlet.view.InternalResourceViewResolver"
>
<
property
name
="prefix"
>
<
value
>
/
</
value
>
</
property
>
<
property
name
="suffix"
>
<
value
>
.jsp
</
value
>
</
property
>
</
bean
>

<
bean
id
="multiactionController"
class
="Action.DispathActionController"
>
<
property
name
="listView"
><
value
>
dispatch/sortByList
</
value
></
property
>
<
property
name
="nameView"
><
value
>
dispatch/sortByName
</
value
></
property
>
<
property
name
="methodNameResolver"
>
<
ref
bean
="methodNameResolver"
/>
</
property
>
</
bean
>

<
bean
id
="methodNameResolver"

class
="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver"
>
<
property
name
="paramName"
>
<
value
>
action
</
value
>
</
property
>
</
bean
>
使用这种方式,我们访问两个方法的url分别为 action=方法
http://localhost:81/SpringMVCStudy/course.mvc?action=courseSortByList
http://localhost:81/SpringMVCStudy/course.mvc?action=courseSortByName
第二种方式配置文件
<
bean
id
="simpleUrlMapping"

class
="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"
>
<
property
name
="mappings"
>
<
props
>
<
prop
key
="/home.mvc"
>
HomeController
</
prop
>
<
prop
key
="/register.mvc"
>
RegisterStudentController
</
prop
>
<
prop
key
="/feedback.mvc"
>
FeedbackController
</
prop
>
<
prop
key
="/course.mvc"
>
multiactionController
</
prop
>
</
props
>
</
property
>
<
property
name
="defaultHandler"
ref
="multiactionController"
/>
<!--
-这个很重要,把multiactionController配置到
SimpleUrlHandlerMapping-,否则无法识别mapping>
</bean>
<bean id="viewResolver" 
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
<!-- 使用MuitlActionController控制器及mapping参数方式访问
-->


<
bean
id
="multiactionController"
class
="Action.DispathActionController"
>
<
property
name
="listView"
><
value
>
dispatch/sortByList
</
value
></
property
>
<
property
name
="nameView"
><
value
>
dispatch/sortByName
</
value
></
property
>
<
property
name
="methodNameResolver"
>
<
ref
bean
="methodNameResolver"
/>
</
property
>
</
bean
>

<
bean
id
="methodNameResolver"
class
="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver"
>
<
property
name
="mappings"
>
<
props
>
<
prop
key
="/courseList.mvc"
>
courseSortByList
</
prop
>
<
prop
key
="/courseName.mvc"
>
courseSortByName
</
prop
>
</
props
>
</
property
>
</
bean
>
使用这种方式,我们访问两个方法的url分别为 自定义的url mapp
http://localhost:81/SpringMVCStudy/courseList.mvc
http://localhost:81/SpringMVCStudy/courseName.mvc
本文介绍如何在Spring MVC中使用MultiActionController处理多个请求。通过三种不同配置方法,展示了如何利用URL、请求参数及自定义映射来区分调用不同的业务方法。
2239

被折叠的 条评论
为什么被折叠?



