Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > SpringMVC. URL mapping


Автор: Старовъръ 15.5.2009, 11:18
В DispatcherServlet находится следующий код:
Код

    <bean name="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="interceptors">
            <list>
                <ref bean="localeChangeInterceptor"/>
            </list>
        </property>
        <property name="mappings">
            <props>
                <prop key="SearchUsers.action">searchUsersController</prop>
                <prop key="Login.action">loginController</prop>
            </props>
        </property>
    </bean>
    <bean id="viewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    <!--Controllers-->
    <bean name="loginController"
          class="org.springframework.web.servlet.mvc.ParameterizableViewController">
        <property name="viewName" value="Login"/>
    </bean>
    <bean name="searchUsersController"
          class="ru.javatalks.jtchess.web.controller.SearchUsersController">
        <property name="commandName" value="form"/>
        <property name="commandClass" value="ru.javatalks.jtchess.web.form.SearchUsersForm"/>
        <property name="formView" value="user/SearchUsers"/>
        <property name="successView" value="user/SearchUsers"/>
        <property name="recordsLimit" value="20"/>
        <property name="usersService" ref="userService"/>
    </bean>

Если я ввожу адрес SearchUsers.action, не находит ресурс, если же первая буква - маленькая, то все путем. Как так? В маппинге прописано именно с заглавной буквы! А Login.action вообще не находит, как не изощрался.

Автор: garbuz 15.5.2009, 11:29
может со слешами что-нить не то? Что вообще пишут? Эксепнш валится или еще что?

Автор: Старовъръ 15.5.2009, 11:43
Слеши пробовал и убирать, и ставить - результат одинаков.
http://localhost:8080/searchUsers.action - работает
http://localhost:8080/SearchUsers.action - The requested resource () is not available.
Единственная разница - первая буква. В маппинге она заглавная, но работает - с маленькой.

Автор: garbuz 15.5.2009, 11:58
а в web.xml у request dispatcher все впоряде?
Какой апп сервер использутете? Если томкат, то иногда у него бывают такие заморочки. Можно попробовать полность удалить приложение с сервера и задеплоить заново.

Автор: Старовъръ 15.5.2009, 12:02
Цитата

а в web.xml у request dispatcher все впоряде?
Ну да, иначе не проходил бы ни один запрос, а так - один проходит))
Цитата

Если томкат, то иногда у него бывают такие заморочки.
Может он кеширует как-то? Ибо у меня со старта было как раз с маленькой буквы все замаплено, потом только изменил...
Цитата

Можно попробовать полность удалить приложение с сервера и задеплоить заново. 
да я кагбе под Идеей развертываю, должна все обновлять по ее же идее))

Автор: garbuz 15.5.2009, 12:08
Цитата(Старовъръ @  15.5.2009,  12:02 Найти цитируемый пост)
да я кагбе под Идеей развертываю, должна все обновлять по ее же идее)) 

я тоже так думал и долго мучался. потом удалил и заново через идею задеплоил и мне помогло ))

Автор: Старовъръ 15.5.2009, 13:25
Но кого удалил? Ведь из папки Томката файлы сами удаляются после каждого отсоединения Идеи от сервера. А потом, во время каждого запуска, заново создаются и копируются.

Автор: Старовъръ 15.5.2009, 13:43
Может ли такое быть, чтоб вываливались какие-то исключения и просто не показывались? Ибо предполагаю что так и есть, во всяком случае с Login.action.

Автор: Старовъръ 15.5.2009, 18:00
Добавил еще одну страницу. Маппинг:
Код

    <bean name="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                ...
                <prop key="/index.action">indexController</prop>
            </props>
        </property>
    </bean>
Контроллер:
Код

    <bean name="indexController"
          class="org.springframework.web.servlet.mvc.ParameterizableViewController">
        <property name="viewName" value="/index"/>
    </bean>
Обращаюсь: http://localhost:8080/index.action
Тоже, пишет всегда The requested resource () is not available. Причем resource - пусто, значит все-таки как-то обрабатывается... Но где проблема найти не могу(

Автор: garbuz 15.5.2009, 18:08
Попробуй в контроллере перед return new ModelAndView поставить какой-нить system.out.println("test")
Если это напечатается, то с маппингом все нормально, значит контроллеру не найти вьюху, может имя не то указываешь или что-нить другое.

Автор: Старовъръ 15.5.2009, 18:24
Е-П-Р-С-Т!!! Я чуть не расплакался!!
В общем у меня в тестах не получалось использовать тот же DispatcherServlet, что находится во view, ну я и создал отдельно в тестах его, деваться некуда было. Файлы я в Идее нахожу магической комбинацией Ctrl+Shift+N. Так вот, я открыл ту версию, которая была предназначена для тестов и все время работал с ней! Это ###!! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)