powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Дата и DynaActionForm
7 сообщений из 7, страница 1 из 1
Дата и DynaActionForm
    #33319348
Farlen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация такая: есть форма
<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
Дата и DynaActionForm
    #33321903
yuriypalych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Во-первых, как ругается?

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

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


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