Ссылка Spring MVC petclinic / vets не работает и говорит - Невозможно загрузить ветеринаров с localhost - PullRequest
0 голосов
/ 18 октября 2011

Я новичок в Spring MVC и пытаюсь запустить пример PetClinic.

В настоящее время работает с JDBC как механизм персистентности, и он работает для всего остального, кроме ссылки на домашней странице «Показать всех ветеринаров», которая вызывает функцию vetsHandler в классе ClinicController. До этого момента он работает, но затем он должен разрешить представление как vets.jsp, чего не происходит.

Может кто-нибудь помочь мне здесь?

Спасибо, Крунал

1 Ответ

0 голосов
/ 19 октября 2011

Ранее я имел в файле petclinic-servlet.xml следующее, которое я скачал с веб-сайта SpringSource

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
    <property name="mediaTypes">
       <map>
        <entry key="xml" value="#{vets.contentType}"/> 
        <entry key="atom" value="#{visits.contentType}"/>
       </map>
    </property>
</bean> 

<bean id="vets" class="org.springframework.web.servlet.view.xml.MarshallingView">
    <property name="contentType" value="application/vnd.springsource.samples.petclinic+xml"/>
    <property name="marshaller" ref="marshaller"/>
</bean>

<oxm:jaxb2-marshaller id="marshaller">
    <oxm:class-to-be-bound name="org.springframework.samples.petclinic.Vets"/>
</oxm:jaxb2-marshaller>

Так что я смог получить доступ к методу vetsHandler в ClinicController, но он не разрешил ни один из vets.jspили не отображал бы vets.xml

Поэтому я сделал некоторые изменения в petclinic-servlet.xml следующим образом

    <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
    <property name="mediaTypes">
        <map>
            <!-- <entry key="xml" value="#{vets.contentType}"/>  -->
            <entry key="xml" value="application/xml"/>
            <entry key="atom" value="#{visits.contentType}"/>
        </map>
    </property>
    <property name="defaultViews">
        <bean class="org.springframework.web.servlet.view.xml.MarshallingView">
            <constructor-arg>
                <bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
                   <property name="classesToBeBound">
                    <list>
                       <value>org.springframework.samples.petclinic.Vets</value>
                    </list>
                   </property>
                </bean>
            </constructor-arg>      
        </bean>
    </property>
    <property name="order" value="0"/>
</bean>

И закомментировал компонент с id = "vets" и запустил егоопять это прекрасно работает.Поэтому, если мой URI равен / vets, он будет преобразован в vets.jsp, а если это vets.xml, то он будет преобразован в xml display.

Если я только изменю вышеуказанный contentType на просто «application / xml»для beand ("vets") тогда любой запрос к / vets будет преобразован в vets.xml

Но я все еще не понимаю значение свойства bean (id = "vets") ниже, которое имеет свойство contentTypevalue = "application / vnd.springsource.samples.petclinic + xml"

Может кто-нибудь сказать мне, что это vnd.springsource.samples.petclinic + xml?Они допустили ошибку здесь вместо org.springframework.samples.petclinic + xml?

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