суббота, 23 ноября 2013 г.

23й - практикум. Универсальный UI mapping

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

Это достаточно универсально, изменять только одно место - форму, не затрагивая место хранения. А мне это потребуется для следующего практикума.  


Решение этого вопроса достаточно простое - это возможность EL работать с Map. Таким образом мой mapping будет представлять отображение значений UI компонент на Map.

Вот сам  бин:

public class UIMappingBean
{
  public UIMappingBean()
  {
    super();    
  }
  
  private Map<String, Object> map = new HashMap<String, Object>();

  public void setMap(Map map)
  {
    this.map = map;
  }

  public Map getMap()
  {
    return map;
  }

 А вот и сам mapping:



<af:inputText label="Имя" id="it1" value="#{uiMappingBean.map['name']}"/>
Таким образом удалось отобразить произвольное количество компонент, без изменений в bean.


Результат работы выведем в консоль:
public void printValues(ActionEvent actionEvent)
  {
    System.out.println(Arrays.toString(map.entrySet().toArray()));
  }


все сохранилось.
Вот сама форма.



 В следующем практикуме я найду этому более интересное применение.


Источник

Value and Method Expressions
http://docs.oracle.com/javaee/6/tutorial/doc/bnahu.html

Исходник



Комментариев нет:

Отправить комментарий