У меня есть критерий на странице поиска, который является boolean
. Поскольку это не обязательно, я не могу использовать флажок, потому что я могу пропустить его;
JSP
<s:select list = '#{ "":"Make your choice...", true:"FOO", false:"BAR" }'
name = "myBooleanCriterion" />
Действие
private Boolean myBooleanCriterion;
/* Getter and Setter */
Мы знаем, что boolean
по умолчанию имеет значение false
, а Boolean
— null
, тогда при первом отображении страницы все в порядке (отображается "Сделайте свой выбор").
Однако после POST Struts создает экземпляр свойства Boolean
(по умолчанию это false
), даже если он находит ""
в качестве значения, поэтому, когда я возвращаюсь к JSP, значение предварительно выбирается как false
("BAR").
Как я могу указать Struts не создавать экземпляр этой переменной, если значение равно ""
, оставив его в исходном состоянии null
? Нужно ли создавать конвертер или что-то указывать в файле .properties
? (у меня в основном тот же код, что и в примере .2 из этого ответа)
Я использую (слегка нестандартный) paramsPrepareParamsStack
Interceptor Stack.
Я чувствую, будто я пропускаю что-то глупое.