До тех пор, пока это разрешено правилами области видимости, наилучшим подходом является позволить инфраструктуре обрабатывать внедрение свойств и bean-компонентов в другие bean-компоненты.
Так как вам нужен bean-объект с областью приложения внутри bean-объекта сессионной области, вы можете просто определить внедрение следующим образом:
<managed-bean>
<managed-bean-name>Actions</managed-bean-name>
<managed-bean-class>com.utils.actions</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>application</property-name>
<value>#{App}</value>
</managed-property>
</managed-bean>
Чтобы принять внедрение свойства внутри вашего компонента Bean-действия, определите общедоступный выполните следующие действия:
public class actions implements Serializable {
private Application app;
public void setApplication(Application app) {
this.app = app;
}
}
Таким образом, вы можете держать бин приложения в любом месте, где вам это нужно, в классе, не решая его снова и снова, когда вам это нужно. Вы также можете решить, что ссылка на компонент приложения - это слишком много, и вам просто нужны данные. В этот момент вам просто нужно настроить faces-config.xml
и метод получения соответственно, чтобы получить именно это.
<managed-property>
<property-name>allData</property-name>
<value>#{App.allData}</value>
</managed-property>
public class actions implements Serializable {
private static final long serialVersionUID = 1L;
private ArrayList<District> allData;
public void setAllData(ArrayList<District> allData) {
this.allData = allData;
}
}
Теперь два совета.
public class Application implements Serializable {
private static final long serialVersionUID = 1L;
private ArrayList<District> allData;
//public Application(){
// try {
// getAllData();
// } catch (NotesException e) {
// e.printStackTrace();
// }
//}
public ArrayList<District> getAllData() {
if (allData == null) {
try {
allData = // your logic result
} catch (NotesException e) {
throw new FacesException(e);
}
}
return allData;
}
}
Единственное представление, которое я видел используемый (хотя по общему признанию мой опыт ограничен DOJO) ISO 8601 , который работает приятно и представляет примерно что-либо, о чем Вы могли возможно думать.
Для примеров, можно посетить ссылку выше.
Профессионалы:
Недостатки:
Нет никакого литерала набора так использование, что является самым легким для Вас. Для большинства людей это - или строка вывода UTC или длинное целое центрируемого UTC временного кода.
Read это некоторое время больше фона: http://msdn.microsoft.com/en-us/library/bb299886.aspx