Как изменить URL, на который сопоставлен контроллер Spring - PullRequest
0 голосов
/ 11 марта 2012

Я начал изучать Spring Framework и не могу найти альтернативный метод для вызова метода контроллера. Я передаю переменную строки запроса в URL-адресе, например - /index.htm?do=login вызвать метод контроллера с именем "login" из моего контроллера

есть ли альтернативный метод, чем этот какой URL выглядит "http://example.com/index.htm" или" http://example.com/index/"

что такое @requestMapping и как его использовать?

Большое спасибо!

диспетчер-servlet.xml

   <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="index.htm">myController</prop>
            </props>
        </property>
    </bean>

    <bean id="myController" class="myController">
       <property name="methodNameResolver">
           <ref bean="methodNameResolver"/>
       </property>
   </bean>

      <bean id="methodNameResolver"
         class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
       <property name="paramName">
           <value>do</value>
       </property>

    </bean>

myController

public class myController extends MultiActionController {



    public ModelAndView login(HttpServletRequest request, HttpServletResponse response) {

        return new ModelAndView("login");

    }

}

в этом коде, Мне всегда нужно передать строковую переменную запроса, чтобы вызвать соответствующий метод контроллера. как "http://example.com/index.htm?do=login" это вызовет метод входа из контроллера

но я не хочу использовать строковые переменные запроса. Как мне это сделать? возможно ли с помощью @RequestMapping вызвать метод входа контроллера с URL, который выглядит следующим образом: http://example.com/login"

Я пробовал это, но он не работает

@RequestMapping("/index.htm")
public ModelAndView index(@RequestParam(value = "do", required = false) String doParam)
{
        return new ModelAndView("login");
}

1 Ответ

0 голосов
/ 11 марта 2012

Не совсем уверен, в чем ваша проблема, но для начала:

@RequestMapping("/index.htm")
public void index(@RequestParam(value = "do", required = false) String doParam) {
    //...
}

Метод индекса будет вызываться для всех следующих URL:

  • /index.htm- doParam равно null внутри index() метод

  • /index.htm?do=login - doParam равно login

  • /index.htm?do=logout - doParam равно logout

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...