В Spring MVC (2.0), как вы можете легко подключить несколько страниц / URL для использования 1 контроллера? - PullRequest
1 голос
/ 12 апреля 2010
<!--dispatcher file-->
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  <property name="mappings">
    <props>
      <prop key="/foo/bar/baz/boz_a.html">bozController</prop>
    </props>
  </property>
</bean>



<!--mappings file-->
<bean id="bozController" class="com.mycompany.foo.bar.baz.BozController">
    <property name="viewPathA" value="foo/bar/baz/boz_a" />
    <property name="viewPathB" value="foo/bar/baz/boz_b" />
    ...
    <property name="viewPathZ" value="foo/bar/baz/boz_z" />
</bean>

как мне настроить его так, чтобы при загрузке пользователем страницы boz_w.html он использовал bozController и настраивал viewPath на использование boz_w.jsp?

1 Ответ

0 голосов
/ 14 апреля 2010

Даже при использовании Spring 2.0 вы можете использовать аннотации Spring. Если вы хотите отобразить несколько URL-адресов на простой контроллер, вы можете использовать MultiActionController, как показано ниже

package br.com.spring.view;

// Do not use @Controller when using Spring 2.0 MVC Controller
// It does not work as expected
// Use @Component instead
@Component
public class MutliPurposeController extends MultiActionController {

    @Autowired
    private Service service;

    // mapped to /mutliPurpose/add
    public ModelAndView add(...) {}

    // mapped to /mutliPurpose/remove
    public ModelAndView remove(...) {}

    // mapped to /mutliPurpose/list
    public ModelAndView list(...) {}

}

Ваш WEB-INF / -servlet.xml отображается следующим образом

<beans ...>
    <context:component-scan base-package="br.com.spring.view"/>
    <context:annotation-config/>
    <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
        <property name="order" value="0"/>
        <property name="caseSensitive" value="true"/>
    </bean>
</beans>
...