Хотя то, что вы спрашиваете, невозможно, так как значение - это единственное, что будет храниться в JCR (как упомянуто @ rakhi4110), вы все равно можете добавить текстовое значение в атрибут значения и проанализировать его в модели слинга..
Вот один из способов сделать это:
<items jcr:primaryType="nt:unstructured">
<colors
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/coral/foundation/form/select"
fieldLabel="Select a Color"
name="./colors">
<items jcr:primaryType="nt:unstructured">
<blue
jcr:primaryType="nt:unstructured"
text="Blue"
value="Blue:bl blue"/>
<green
jcr:primaryType="nt:unstructured"
text="Green"
value="Green:gr green"/>....
Уведомление value="Blue:bl blue"
и value="Green:gr green"
Теперь в вашей модели стропа вы можете сделать:
@Model(adaptables=Resource.class)
public class Color{
@Inject @Named("colors") @Optional
private String colorValue ;
private cssClass;
private label;
@PostConstruct
protected void init() {
// This is a very rudimentary way to illustrate the point
// you can do this in many other ways/data structures to get the same result
String[] parts = colorValue.split(":");
label = parts[0];
cssClass = parts[1];
}
public String getCssClass() {
return cssClass;
}
public String getLabel() {
return label;
}
}