Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что вместо SimpleFormController? Spring3.0 
:(
    Опции темы
Dreamtraveler
Дата 5.1.2010, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 23.11.2009

Репутация: нет
Всего: нет



Здравствуйте.
Дело было так:
Исползовал спринг версии 2.5 и его класс SimplFormController. Теперь вышла версия 3.0 и в ней этот класс 
стал depricated. 
Хотелось бы узнать какой класс вместо него использовать теперь, от кого наследоваться лучше?
Чтоб примерно таже функциональность была. )
PM MAIL   Вверх
garbuz
Дата 5.1.2010, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 677
Регистрация: 22.1.2008

Репутация: 8
Всего: 11



Сам с третьим спрингом еще не работал, но подозреваю что теперь там не надо наследоваться и имплементиться. Всем рулят аннотации.
PM MAIL   Вверх
Dreamtraveler
Дата 6.1.2010, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 23.11.2009

Репутация: нет
Всего: нет



Неужели все так круто изменилось?
придеться документацию читать...
Блин только что нибуть изучишь, бум все устарело ))).
PM MAIL   Вверх
Dreamtraveler
Дата 6.1.2010, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 23.11.2009

Репутация: нет
Всего: нет



А подскажите, еще такое. Как объявить два резольвера. Так чтобы они обрабатывали разные запросы. Например один обрабатывает xhtml а аторой jsp.
я делал так: 

<bean id="viewResolverOne" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass">
            <value>org.springframework.web.servlet.view.JstlView</value>
        </property>
        <property name="order" value="1"/>
        <property name="prefix">
            <value>/</value>
        </property>
        <property name="suffix">
            <!--<value>.jsp</value>-->
            <value>.xhtml</value>
        </property>
</bean>

<bean id="viewResolverTwo" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass">
            <value>org.springframework.web.servlet.view.JstlView</value>
        </property>
        <property name="order" value="2"/>
        <property name="prefix">
            <value>/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>       
        </property>
</bean>

не получается.
PM MAIL   Вверх
garbuz
Дата 6.1.2010, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 677
Регистрация: 22.1.2008

Репутация: 8
Всего: 11



Цитата(Dreamtraveler @  6.1.2010,  13:20 Найти цитируемый пост)
А подскажите, еще такое. Как объявить два резольвера. Так чтобы они обрабатывали разные запросы. Например один обрабатывает xhtml а аторой jsp.
я делал так: 

Насколько я помню, InternalResourceViewResolver выполняется последним и должен быть последним, первый всегда срабатывает, до второго даже не доходит.

PM MAIL   Вверх
magicfly
Дата 6.1.2010, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 21.2.2007

Репутация: 1
Всего: 1



Насколько я понимаю вопрос был в другом. Резолвер не занимается обработкой запроса. Он лишь составляет ответ на запрос. Кто чем будет выполнятся зависит от меппинга. Кстати проперти order определяет в какой последовательности будут вызываться резолверы. И лишь если в одном не нашел то будет вызывается другой.
Вроде так, поправьте насчет резолверов если я не прав 
PM MAIL   Вверх
garbuz
Дата 6.1.2010, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 677
Регистрация: 22.1.2008

Репутация: 8
Всего: 11



Грубо говоря резолвер нужен для того, чтобы контроллер смог передать модель данных той или иной вью, за поиск которой и отвечает резолвер. Проперти order действительно определяет порядок, однако в случает с InternalResourceViewResolver это не работает.

Цитата

Spring supports more than just one view resolver. This allows you to chain resolvers and, for example, override specific views in certain circumstances. Chaining view resolvers is pretty straightforward - just add more than one resolver to your application context and, if necessary, set the order property to specify an order. Remember, the higher the order property, the later the view resolver will be positioned in the chain.

In the following example, the chain of view resolvers consists of two resolvers, a InternalResourceViewResolver (which is always automatically positioned as the last resolver in the chain) and an XmlViewResolver for specifying Excel views (which are not supported by the InternalResourceViewResolver):

PM MAIL   Вверх
Dreamtraveler
Дата 8.1.2010, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 23.11.2009

Репутация: нет
Всего: нет



Ага с резольверами разобрался. 
Читаю документацию на Spring 3.0. 
Раньше я от SimpleFormController расширялся и все вызывалось "само", и валидация и initBinder. А вот теперь что получается мне при помощи аннотаций самому все вызывать? Я имею ввиду, что в SimpleFormController все по определенному сценарию вызывалось GET, POST и т.д. А теперь разработчики Spring все это в мои руки отдалию Странно... 
Может кто-нибудь мне это разъяснит. А то я на данном этапе не понимаю пока такого... )
PM MAIL   Вверх
garbuz
Дата 8.1.2010, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 677
Регистрация: 22.1.2008

Репутация: 8
Всего: 11



Цитата(Dreamtraveler @  8.1.2010,  13:31 Найти цитируемый пост)
Раньше я от SimpleFormController расширялся и все вызывалось "само", и валидация и initBinder. 

не было такого. 
PM MAIL   Вверх
Dreamtraveler
Дата 11.1.2010, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 23.11.2009

Репутация: нет
Всего: нет



А вот скажите, garbuz, помойму  вы создавали когда-то посто вот с такой примерно проблеммой:

ERROR http-8084-2 ContextLoader:initWebApplicationContext:208 - Context initialization failed
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://java.sun.com/xml/ns/javaee]
Offending resource: ServletContext resource [/WEB-INF/faces-config.xml]

        at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
        at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
        at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:80)
        at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:284)
        at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1332)
        at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1325)
        at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:142)
        at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:93)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
        at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124)
        at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:93)
        at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
        at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:458)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:388)
        at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:261)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:192)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)

Вам удалось её решить? 
А то я не могу пока понять что за ошибка такая. Spring не хочет ужится с faces-config.xml файлом. 
Мне нужно определить такую конструкцию:

<application>
       <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
  </application>

Может её еще где можно определить? Или в аннотациях как-то. Я использую JSF 2.0 + Spring. Хочю чтоб JSF был как view а все остальное 
Spring.

PM MAIL   Вверх
garbuz
Дата 11.1.2010, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 677
Регистрация: 22.1.2008

Репутация: 8
Всего: 11



Дайте ссылку на пост. С jsf точно не я создавал, я с jsf не работал.
PM MAIL   Вверх
MisterCleric
Дата 11.1.2010, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 33
Всего: 38



Привет. всем. 
Насчет ошибки

даж не знаю что сказать? Я использую такую связку и проблем нету.
Опишу что имею:
1. В либах имею такое
jsf-api.jar
jsf-impl.jar
jstl.jar
richfaces-api.jar
richfaces-impl.jar
richfaces-ui.jar
spring-web.jar
spring-webmvc.jar
spring.jar
standard.jar

2. faces-config.xml именно такой как описан.
3. В web.xml такое:
Код

 <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>

    <listener>
        <listener-class>org.springframework.security.ui.session.HttpSessionEventPublisher</listener-class>
    </listener>

    <filter>
        <display-name>RichFaces Filter</display-name>
        <filter-name>richfaces</filter-name>
        <filter-class>org.ajax4jsf.Filter</filter-class>
    </filter>


    <filter-mapping>
        <filter-name>richfaces</filter-name>
        <servlet-name>Faces Servlet</servlet-name>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
    </filter-mapping>

    <servlet>

        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>


может быть быть проблема в том, что данный namespace действительно не принадлежит jsf 2.0? У него другой вид конфига должен быть? или SpringBeanFacesELResolver не подходит для jsf 2.0 ?


--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
Dreamtraveler
Дата 11.1.2010, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 23.11.2009

Репутация: нет
Всего: нет



Ссылку дать немогу сечас, garbuz. Но там обсуждался Spring Securety. Не JSF. Просто ошибка похожая. 

MisterCleric, я только начал знакомиться с JSF и поэтому возникают такие веселые проблеммы. 
Что касается того, что  SpringBeanFacesELResolver не подходит для jsf 2.0, то я коментировал этистроки и оставлял только такое:

<?xml version='1.0' encoding='UTF-8'?>

<!-- =========== FULL CONFIGURATION FILE ================================== -->

<faces-config version="2.0"
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-face...p;quot;>


  <!--<application>
       <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
  </application>-->
  

</faces-config> 

Ошибка не уходит. 
А вы какой JSF используете 1.2 или 2.0?

У меня включены все библиотеки кроме:

richfaces-api.jar
richfaces-impl.jar
richfaces-ui.jar

Для чего они?

Конфиги такие:

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_...p;quot;>
   <!-- <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_...;gt;-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/faces-config.xml,
            /WEB-INF/applicationContext.xml,
            /WEB-INF/classes/PlatsDatabase2.xml,
            /WEB-INF/classes/PlatsController1.xml,
            /WEB-INF/classes/PlatsForser2.xml
        </param-value>
    </context-param>
    <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>WEB-INF/log4j.properties</param-value>
    </context-param>
    <!--<context-param>
        <param-name>log4jExposeWebAppRoot</param-name>
        <param-value>false</param-value>
    </context-param>-->
    <context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>uniqueAppRootNamee</param-value>
    </context-param>
    <listener>
        <description>log4j - listener.</description>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>

    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <!--<init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value/>
        </init-param>-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
       <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value/>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <!--<url-pattern>*.htm</url-pattern>-->
         <url-pattern>*.usr</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <!--<welcome-file>welcomeGWT.html</welcome-file>-->
         <welcome-file>redirect.jsp</welcome-file>
    </welcome-file-list>
    <resource-ref>
        <description>Jnidi by me.</description>
        <res-ref-name>jdbc/TestDB</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
        <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>
</web-app>

И еще такой вопрос в JSF 1.2 использовались JSP, в 2.0 уже facelets .xhtml.  Так JSP признаны устаревшими форматом для JSF?
Тогда как мне определить такую конструкцию:

<link rel="STYLESHEET" href="<spring:theme code="styleSheet"/>" type="text/css"/>

и подключить библиотеку :
<%@taglib uri="http://www.springframework.org/tags" prefix="spring" %>
для этого?



PM MAIL   Вверх
garbuz
Дата 11.1.2010, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 677
Регистрация: 22.1.2008

Репутация: 8
Всего: 11



Dreamtraveler, я нашел тот пост, там дело в либах было, пост про секьюрити. Проверь еще раз свои либы, посмотри деплоятся ли они на сервер или нет.
PM MAIL   Вверх
MisterCleric
Дата 11.1.2010, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 33
Всего: 38



Dreamtraveler, твоя ошибка вот здесь
Цитата

<param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/faces-config.xml, --тута
            /WEB-INF/applicationContext.xml,
            /WEB-INF/classes/PlatsDatabase2.xml,
            /WEB-INF/classes/PlatsController1.xml,
            /WEB-INF/classes/PlatsForser2.xml
        </param-value>


это конфиг jsf, а не spring. его кушает javax.faces.webapp.FacesServlet
А дальше они сами разруливают работу. Естественно, что для nameSpace="http://java.sun.com/xml/ns/javaee" у Spring нет хендлера

Добавлено через 34 секунды
да, richfaces - это конкретная реализация jsf


--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1066 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.