Когда я пытаюсь отправить форму, входное значение присутствует в методе валидации, но ушло в метод submit. Почему свойство ввода пустоты к моменту достижения программой функции submit?Значение формы JSF исчезает при отправке
Входной сигнал: ASDF
genres.xhtml
<h:form>
<h:inputText
id="userGenre"
value="#{genres.input}"
validator="#{genres.validateLength}"
required="true" size="3"
/>
<h:commandButton
value="Add genre"
action="#{genres.submit}"
/>
<h:message for="userGenre" />
</h:form>
Genres.java
@Named
@SessionScoped
public class Genres {
static final Logger LOG = LoggerFactory.getLogger(Genres.class);
private String input = "";
public void validateLength(FacesContext context, UIComponent toValidate, Object value) {
LOG.info("Validating");
input = (String) value;
LOG.info("name:"+input); // result: "name:asdf"
int min = 3;
int max = 15;
int len = input.length();
if (len < min || len > max) {
((UIInput) toValidate).setValid(false);
FacesMessage message = new FacesMessage("Must be at least 3 and at most 15 characters.");
context.addMessage(toValidate.getClientId(context), message);
return;
}
}
public void submit() {
LOG.info("Submitting");
LOG.info("name:"+input); // result: "name:"
// process input
}
public String getInput() {
return input;
}
public void setInput(String input) {
this.input = input;
}
}
лица-config.xml
<managed-bean>
<managed-bean-name>genres</managed-bean-name>
<managed-bean-class>no.krystah.Genres</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>input</property-name>
<property-class>java.lang.String</property-class>
<value/>
</managed-property>
</managed-bean>
Это имело бы смысл, потому что независимо от того, что инициализирую поле ввода «с» (в этом коде, Я использую «») - это то, что будет отправлено при подаче. Однако добавление аннотации @ManagedBean, к сожалению, не помогло ... – krystah
Я беру это обратно. Добавление ManagedBean в одиночку не сработало, но если я также удалил @Named, он сработал. Спасибо. :) – krystah
Добро пожаловать, рад видеть, что ваша проблема решена – jfun