Передача входного текста JSF 1.2 методу в сессионном компоненте
Я изучаю JSF 1.2, и у меня есть сценарий, где представление "profile.jsf" отображается с использованием bean-объекта запроса BeanProfile
, Бин "BeanProfile" является бином запроса, потому что мне нужны обновленные данные в каждом запросе и обновление представления. По мнению есть <h:commandButton/>
который вызывает метод в сессионном компоненте LoginBean
и который должен обновить профиль пользователя перед его сохранением. Итак, мне нужно передать всю информацию в представлении профиля методу в сессионном компоненте. Я пытался использовать <f:attribute/>
в <h:commandButton/>
как это:
<h:commandButton id="submit" actionListener="#{beanLogin.updateUser}" value="Update">
<f:attribute name="ttt" value="789"/> <!-- just for debug -->
<f:attribute name="name" value="#{name}" /> <!-- I will pass just that one for the moment -->
</h:commandButton>
и компонент:
<h:inputText id="name"
binding="#{name}"
value="#{beanProfile.name}"
required="true" />
в моем методе у меня есть:
public void updateUser(ActionEvent event) {
/*Debug*/
System.err.println("size: "+event.getComponent().getAttributes().size());
System.err.println("--"+(String) event.getComponent().getAttributes()
.get("ttt")+"--");;
UIInput input = (UIInput) event.getComponent().getAttributes().get("name");
String text = (String) input.getSubmittedValue();
System.err.println("++"+text+"++");
}
В результате я получаю:
2014-12-20T01:43:25.850+0100|Severe: size: 1
2014-12-20T01:43:25.850+0100|Severe: --789--
java.lang.NullPointerException ...
Таким образом, я передал 2 параметра, и я получил только один в методе в сессионном компоненте, и это вызвало java.lang.NullPointerException
, Я не знаю, что я делаю неправильно. Я работаю в Eclipse 4.4.1 SR1, используя динамический веб-модуль 3.0 и GlassFish Server Open Source Edition 4.1, которая включает Mojarra 2.2.7.
Обновить:
Я попробовал тот же код, используя tomcat 8.0.15, MyFaces 1.2.12 и JSTL 1.2, которые я уже использовал с GlassFish и Mojarra. У меня та же проблема, и я обнаружил, что инъекция бобов думала, что managed-property
в Face-config.xml также не работает (нулевое значение) в обеих конфигурациях, которые я использовал.