美文网首页
springMVC-控制器

springMVC-控制器

作者: 威武不能屈 | 来源:发表于2017-08-14 11:43 被阅读19次

多动作控制器

MultiActionController,用于在单个控制器中分别映射多个URL到对应的方法。

UserController.java

public class UserController extends MultiActionController {

   public ModelAndView home(HttpServletRequest request,HttpServletResponse response){
       ModelAndView model = new ModelAndView("home");
       model.addObject("message","Home");
       return model;
   }

   public ModelAndView add(HttpServletRequest request,HttpServletResponse response){
       ModelAndView model = new ModelAndView("index");
       model.addObject("message","Add");
       return model;
   }

   public ModelAndView remove(HttpServletRequest request,HttpServletResponse response){
       ModelAndView model = new ModelAndView("index");
       model.addObject("message","Remove");
       return model;
   }
}

servlet.xml文件中配置:

<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean name="/home.html" class="com.springapp.multiaction.UserController"/>
<bean name="/user/*.html" class="com.springapp.multiaction.UserController"/>

对于/home.html请求,DispatcherServlet将请求转发到UserController类的 home()方法。
对于user/add.html,DispatcherServlet将请求转发到UserController类的 add()方法。
对于user/remove.html,DispatcherServlet将请求转发到UserController类的 remove()方法。

home.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title></title>
</head>
<body>
<a href="user/add.html" >Add</a>
<a href="user/remove.html">Remove</a>
</body>
</html>

user.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title></title>
</head>
<body>
${message}
</body>
</html>

url访问:
http://localhost:8080/multiaction/home.html

属性方法名称解析器

UserController.java

public class UserController extends MultiActionController {
    public ModelAndView home(HttpServletRequest request,HttpServletResponse response){
        ModelAndView model = new ModelAndView("index");
        model.addObject("message","Home(home方法)");
        return model;
    }

    public ModelAndView add(HttpServletRequest request,HttpServletResponse response){
        ModelAndView model = new ModelAndView("index");
        model.addObject("message","Add(add方法)");
        return model;
    }

    public ModelAndView remove(HttpServletRequest request,HttpServletResponse response){
        ModelAndView model = new ModelAndView("index");
        model.addObject("message","Remove(remove方法)");
        return model;
    }
}

servlet.xml配置:

<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
       <property name="caseSensitive" value="true"/>
   </bean>
    <bean class="com.springapp.multiactionpropertyname.UserController">
        <property name="methodNameResolver">
            <bean class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">
                <property name="mappings">
                    <props>
                        <prop key="/user/home.html">home</prop>
                        <prop key="/user/add.html">add</prop>
                        <prop key="/user/remove.html">remove</prop>
                    </props>
                </property>
            </bean>
        </property>
    </bean>

使用上面的配置,如果URI:
对于/user/home.html请求,DispatcherServlet将请求转发到UserController类的 home()方法。
对于user/add.html,DispatcherServlet将请求转发到UserController类的 add()方法。
对于user/remove.html,DispatcherServlet将请求转发到UserController类的 remove()方法。

user.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title></title>
</head>
<body>
${message}
</body>
</html>

url访问地址:
http://localhost:8080/multiactionpropertyname/user/home.html
http://localhost:8080/multiactionpropertyname/user/add.html
http://localhost:8080/multiactionpropertyname/user/remove.html

参数方法名称解析器

UserController.java:

public class UserController extends MultiActionController {
    public ModelAndView home(HttpServletRequest request,HttpServletResponse response){
        ModelAndView model = new ModelAndView("index");
        model.addObject("message","Home(home方法)");
        return model;
    }

    public ModelAndView add(HttpServletRequest request,HttpServletResponse response){
        ModelAndView model = new ModelAndView("index");
        model.addObject("message","Add(add方法)");
        return model;
    }

    public ModelAndView remove(HttpServletRequest request,HttpServletResponse response){
        ModelAndView model = new ModelAndView("index");
        model.addObject("message","Remove(remove方法)");
        return model;
    }
}

servlet.xml配置:

<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
       <property name="caseSensitive" value="true"/>
   </bean>
    <bean class="com.springapp.parametermethodname.UserController">
        <property name="methodNameResolver">
            <bean class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
                <property name="paramName" value="action">
                </property>
            </bean>
        </property>
    </bean>

user.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title></title>
</head>
<body>
${message}
</body>
</html>

url访问:
http://localhost:8080/parametermethodname/user/test.html?action=home
http://localhost:8080/parametermethodname/user/test.html?action=add
http://localhost:8080/parametermethodname/user/test.html?action=remove

可参数化视图控制器

UserController.java:

public class UserController extends MultiActionController {

    public ModelAndView home(HttpServletRequest request,HttpServletResponse response){
        ModelAndView model = new ModelAndView("user");
        model.addObject("message","Home");
        return model;
    }
}

servlet.xml配置:

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <value>
                index.html=userController
            </value>
        </property>

    </bean>
    <bean id="userController" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
        <property name="viewName" value="index"/>

    </bean>

index.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title></title>
</head>
<body>
<h2>Hello World! This is a Index jsp page.</h2>
</body>
</html>

url访问:
http://localhost:8080/parameterizableview/index.html

相关文章

网友评论

      本文标题:springMVC-控制器

      本文链接:https://www.haomeiwen.com/subject/ueqkrxtx.html