2014-01-27 1 views
0

Я ищу помощь в моем проекте в Struts2. Мне нужно найти решение для отображения недельного расписания занятий. В проекте также используется JDBC, значения каждого класса должны быть сохранены в базе данных. Я думал о отображении классов в таблице, как внизу, но я не знаю, как я могу динамически добавлять значения, нажимая на час из таблицы. Для любой помощи, спасибо.Как показать расписание в рамке struts2?

   Monday  Tuesday  Wednesday Thursday Friday 

7.30-8.45
8.15-9.00
9.15-10.00
10.00-10.45
11.00-11.45
11.45-12.30
12.45-13.30
13.30-14.15
14.30-15.15
15.15-16.00
16.15-17.00
17.00-17.45
18.00-18.45
18.45-19.30
19.45-20.30
20.30-21.15

ответ

0

ну, у меня был проект, перед которым использован Struts2 + Ibatis (теперь MyBatis), и он был обработан следующим образом , конечно, это не самый эффективный способ сделать это, но он может дать вам такой подход, я был во 2-м уровне карьеры, когда я осуществил это:

для загрузки:

  1. Создать таблицу «Расписание» с «id», «startDate», «endDate» и «description» (необязательно)

  2. Создать таблицу «Курсы» с «id», «name» и «scheduleId»,

  3. вы экономите свое «расписание», как: insert into schedule values (1, '07:40', '08:50', null);

  4. сохранить курс, таким образом: insert into course values('A1','Calculus 1', 1);

Тогда вам просто нужно, чтобы соответствовать их в графике, используя свой обычай «Закон ion ", как" LoadScheduleAction ", выполнив запрос к db с помощью jdbc.

Если вы хотите отметить ячейку часом, например (понедельник, 9:40 - 10:50), то вы можете использовать «divs», а цвет javascript их синий или зеленый, убедитесь, что вы даете каждый div и «id», поэтому вы можете получить выделенную ячейку. Затем, каждый раз, когда вы нажимаете, чтобы выбрать ячейку или щелкните, чтобы отменить выбор ячейки, я имею в виду, если вы нажмете первый раз, тогда она станет цветной, если вы выберете для второй раз ту же ячейку, что она вернется к своему первоначальному статусу, и поэтому на. Ну, каждый раз, когда вы выбираете ячейку, вы можете сохранить координаты в массиве в сеансе (или arraylist или set), например, сеанс может содержать: (понедельник, 9:40 - 10:50), (вторник, 9:40 - 10:50) сохранить его как пользовательский объект внутри на ArrayList в сессии:

ScheduleItem item = new ScheduleItem(day, hourRange);

Затем, каждый раз вы выбираете продать вы получаете:

item1('monday', '9 - 10'); 
item2('monday, '11 -13'); 
item3('tuesday, '15-17'); 

и так далее ...все они, сохранены в arraylist временном в вашей сессии.

ArrayList<ScheduleItem> scheduleItems = new ArrayList<ScheduleItem>(); 
scheduleItems.add(item1) 

... И, наконец, когда вы уже нажать на кнопку «Отправить» или что-то в этом роде, просто извлечь этот список из сеанса и сохраняется его с помощью JDBC в новой таблице, как «studentSchedule» или «teacherSchedule «в зависимости от того, что вам нужно делать.

Это очень простой подход, основанный на том, что я понял с вашим вопросом. Надеюсь, вам это поможет.

С уважением.