spring的ParameterMethodNameResolver的可以根據不同的參數執行不同方法,類似Struts的dyncaction
下面有一個例子
package ee.bug;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
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 ProductController extends MultiActionController {
?/**
? * Handles view
? */
?public ModelAndView view(HttpServletRequest request, HttpServletResponse response) throws Exception {
??response.getOutputStream().print("Viewing");
??return null;
?}
?/**
? * Handles index
? */
?public ModelAndView index(HttpServletRequest request, HttpServletResponse response) throws Exception {
??response.getOutputStream().print("index");
??return null;
?}
?
}
配置文件
?<bean id="productMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
??????? <property name="paramName"><value>method</value></property>
??????? <property name="defaultMethodName"><value>view</value></property>
??? </bean>
??? <bean id="productController" class="ee.bug.ProductController">
??????? <property name="methodNameResolver"><ref local="productMethodNameResolver"/></property>
??? </bean>
???? <property name="paramName"><value>method</value></property>參數名為method 默認為action
????
輸入view.do?method=view 顯示Viewing
輸入view.do?method=indedx 顯示index
輸入/view.do?method=fdsf? 顯示404錯誤