Spring MVC вопрос конфигурации - PullRequest
       14

Spring MVC вопрос конфигурации

1 голос
/ 03 февраля 2010

У меня есть базовая настройка приложения Java EE Spring (MVC), которая отображает домашнюю страницу с динамическим содержимым.Я совершенно новичок в Spring и не понимаю, как действовать дальше и добавлять больше страниц в свое приложение.Нужно ли создавать новый контроллер для каждого URL на моем сайте?Прямо сейчас у меня есть следующее отображение в моем ..-servlet.xml файле:

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

Так что, если у меня теперь есть новая страница в / login, я бы добавил отображение в /login/index.html?Я запутался еще больше, потому что я пытаюсь интегрировать Spring-security для обработки страницы входа ...

Ответы [ 3 ]

2 голосов
/ 05 февраля 2010

Я бы посмотрел на аннотированные контроллеры:

Пример:

@Controller
public class TestController {

    @RequestMapping(value="/login/index.html")
    public String login() {
        return "login";
    }

    @RequestMapping(value="/somethingelse/index.html")
    public String login() {
        return "somethingelse";
    }
}

Когда вы настраиваете View Resolver, возвращаемые строки будут соответствовать буквальной странице, то есть что-то еще может быть направлено в /jsp/somethingelse.jsp, если вы настроили преобразователь в конфигурации Spring , Подсказка ... вам нужно отсканировать аннотации для автоматического подключения.

Spring-Security обрабатывается в некотором роде, но, скажем, не имеет ничего общего с Spring MVC. Если все сделано правильно, единственный ресурс, который вам нужно предоставить для настройки безопасности, - это простая страница входа в систему, которую вы настроите в конфигурации Spring. Проверьте этот пример безопасности:

0 голосов
/ 04 февраля 2010

Вы можете использовать что-то вроде:

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass"
        value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/WEB-INF/jsp/" />
    <property name="suffix" value=".jsp" />
</bean>

<bean id="handlerMapping"
    class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

    <property name="mappings">
        <props>
            <prop key="/vehicleSearch">vehicleSearchController</prop>
        </props>
    </property>
</bean>

Если был файл /WEB-INF/jsp/vehicleSearch.jsp, он был бы сопоставлен с контролем транспортных средств. В этом случае файлы JSP используются для представления, но вы можете адаптировать его к вашей технологии представления.

Конфигурируя его таким образом, вам все равно потребуется написать сопоставление для каждого файла. Лучший способ (как предложил Теджа) - это, вероятно, аннотировать сопоставления в вашем контроллере и покончить с конфигурацией XML.

, например

@Controller
@RequestMapping("/vehicleSearch")
public class VehicleSearchController {  
0 голосов
/ 04 февраля 2010

Если вы используете Spring Security, вам не нужен контроллер для отображения формы входа. Вы можете использовать любую jsp-страницу для этой цели, и, когда Spring отправляет ее на j_spring_secutity_check, вам не нужен контроллер для ее обработки. Посмотрите в документации по Spring, как вы можете добавить несколько методов в контроллер. Возможно, вам понадобится использовать конфигурацию типа beanNmaeMapping. Также лучший способ теперь - использовать конфигурацию на основе аннотаций, которая поможет вам сконфигурировать любое pojo как контроллер с аннотацией @Controller

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