2013-04-18 2 views
2

Мне нужно построить стол в JSP. У меня есть arraylist с кучей фасоли, и бобы были сделаны из набора результатов, только из строк, возвращенных из вызова БД.Как сохранить логику из JSP?

В зависимости от данных, я хочу показать разные вещи. Примером может быть, если имя в компоненте начинается с 'a', выделите имя, если оно начинается с 'b', сделайте имя красным, но не выделенным (я думаю, что это касается моего вопроса/ситуации).

Если у меня нет логики в JSP, как я могу это контролировать?

+1

«Держите логику из JSP ", вы имеете в виду * бизнес-логику *, * логику отображения * или * логику управления программой *? – RustyTheBoyRobot

ответ

4

Один из способов сделать это, чтобы написать функцию, которая живет внутри класса бина, или, возможно, более правильно внутри обертки для класса компонента:

public class BeanFormatter { 

    private Bean bean; 

    public BeanFormatter(Bean myDataBean) { 
    this.bean = myDataBean; 
    } 

    public String getFormattedHTML() { 
    //put your logic here. Return the necessary HTML based on the bean. 
    } 
} 

Вполне возможно, что то, что вы хотите вернуть не HTML в формате String, но имя div или другой класс css для переноса данных. Но вы могли бы просто написать другой метод, например getDisplayCSSClass().

0

Вы можете создать объект «переводчик», который имеет один (или более) метод, который принимает компонент и возвращает форматированный HTML.

0

В случае, если вам нужно иметь какое-то особое поведение на виду, и вы хотите сохранить чистые JSP, вам следует подумать о создании нового тега. Вы должны знать, что существует несколько различных типов тегов. И поскольку ваш тег отвечает за создание визуального компонента, я бы предложил использовать файлы тегов.

Проверьте это tutorial, чтобы получить представление о том, как он работает.

0

Собственно, что вы подразумеваете под словом логика? Вещь, которую вы описали, относится к логике отображения, допустимо вводить такую ​​логику в файлы jsp. Большинство тегов JSTL предназначены для этой работы. В случае, если вы имеете в виду бизнес-логику, классы java (ejb, весенние бобы или простые классы) являются единственным местом для этого в хорошем дизайне (даже не в сервлетах/контроллерах, которые лучше подходят для логики управления)

Смежные вопросы