Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Дата и DynaActionForm / 7 сообщений из 7, страница 1 из 1
12.10.2005, 11:41
    #33319348
Farlen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата и DynaActionForm
Ситуация такая: есть форма
<form-bean name="violationForm"
type="org.apache.struts.action.DynaActionForm">
<form-property name="violation" type="violation.model.Violation"/>
</form-bean>
где Violation - это бин, некоторые поля которого имеют тип java.sql.Date
Соответственно когда вводим в формочку дату в формате YYYY-MM-DD, то все хорошо, а когда оставляем поле пустым, то она ругается, тк видимо пытается пребразовать к дате пустую строчку. Можно ли с этим что-то поделать? Может, поможет Validator? Если это вариант, то как прописать правила в validation.xml?
...
Рейтинг: 0 / 0
13.10.2005, 11:02
    #33321903
yuriypalych
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата и DynaActionForm
Во-первых, как ругается?

Во-вторых, javascript тебе поможет ;)
(простая проверка перед submit'ом)

с validator'ом (интуитивно) думаю не пройдет...
...
Рейтинг: 0 / 0
13.10.2005, 12:57
    #33322356
Farlen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата и DynaActionForm
Ругается примерно вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
An Error has occurred in this application. 
javax.servlet.ServletException: BeanUtils.populate
	at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:844)
	at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:823)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:243)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1176)
	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:472)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
	at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:142)
	at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:58)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
	at java.lang.Thread.run(Thread.java:534)

Вообще, действительно склоняюсь к мысли про javascript, но проблема в том, что я его не знаю, во-первых, и во-вторых, если принудительно запихнуть вместо пустой строчки(а такая ситуация возможна) null, мне все равно кажется, что он ругнется, когда попытается преобразовать его к дате. Ну неужели эта проблема не решается как-то более изящно? Ну не верю я, тем более что в книжках этот DynaActionForm активно пропагандируется вместо простого ActionForm. Может быть можно в struts-confige как-то указать значение по умолчанию для формы?
...
Рейтинг: 0 / 0
13.10.2005, 13:28
    #33322512
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата и DynaActionForm
я совсем не знаю стратс, но неужели в каком то там валидаторе или конверторе нельзя сделать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
 public   boolean  validate(){
    if ( null  == date){
        return  true;
   }
  ......
}
...
Рейтинг: 0 / 0
13.10.2005, 14:28
    #33322734
Farlen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата и DynaActionForm
В том-то и проблема, что сначала он пытается преобразовать к дате и где-то там сохранить, а только потом происходит валидация. Можно конечно покопаться в стратсовских исходниках, но как-то грустно, я посмотрела - слишком уж глубоко копать:( . Может в java/sql какое-то значение даты, которое воспринимается как undefined?.. Его можно тогда было бы подставлять javascriptом на стороне клиента.
...
Рейтинг: 0 / 0
13.10.2005, 15:17
    #33322909
johanna
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата и DynaActionForm
...
Рейтинг: 0 / 0
13.10.2005, 16:06
    #33323132
johanna
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата и DynaActionForm
FarlenВ том-то и проблема, что сначала он пытается преобразовать к дате и где-то там сохранить, а только потом происходит валидация. Можно конечно покопаться в стратсовских исходниках, но как-то грустно, я посмотрела - слишком уж глубоко копать:( . Может в java/sql какое-то значение даты, которое воспринимается как undefined?.. Его можно тогда было бы подставлять javascriptом на стороне клиента.
Валидации в DynaActionForm не происходит, если нужна,то для DynaActionForm нужно валидатор от стратса подключать.
Или надо наследника от DynaActionForm писать и метод validate переписывать.
проверку нужно делать обязательно. а что если юзер поле не пустым оставит,а какую-нить билеберду задаст?
еще можно сделать из java.sql.Date String и проверку в Action проводить.
А почему бы не воспользоваться обычной ActionForm? Всё упростится само собой.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Дата и DynaActionForm / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]