Я работаю с JSF 2.2 и Tomcat 8, и я только начинаю играть с ними.Передайте параметр с ManagedBean на страницу jsf
У меня есть кнопка команды на странице jsf.
<h:commandButton id="newObject" value="New Object" action="#{someObject.someAction}">
<f:param name="object_id" value="#{someObject.object_id}" />
</h:commandButton>
ManagedBean похож на это:
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
@ManagedBean
public class SomeObject implements Serializable{
private static final long serialVersionUID = 1L;
private int object_id;
public int getObject_id() {
return object_id;
}
public void setObject_id(int object_id) {
this.object_id = object_id;
}
public String someAction() {
setObject_id(sqlInsert());
if(getObject_id() != 0) {
System.out.println(getObject_id());
return "new_page";
}
}
}
Метод SQLInsert работает нормально. Я использую его, чтобы вставить новую строку в какую-нибудь таблицу sql и получить автоматически сгенерированный ключ, который является int. Если вставка не была выполнена, она вернет 0.
Я могу перейти к новой_странице, но param object_id равен 0. Я добавил println, чтобы показать object_id, и это фактический ключ.
Что я делаю неправильно?
Помимо того, что вы неправильно понимаете некоторые фундаментальные понятия об общении в JSF, почему вы передаете 'objectId' bean'а обратно? В какой момент кода вы показываете здесь, действительно ли вы устанавливаете значение 'objectId' в значение, отличное от 0? – kolossus
На странице jsf я не устанавливаю objectId, потому что он еще не существует в db. Метод sqlInsert создает объект, поэтому я устанавливаю там идентификатор объекта. И возвращает правильное семя db, но на новой странице im получает 0 как objectID. – jaec86
Я предполагаю, что некоторые вещи ошибочны, @ jaec86. Один из них заключается в том, что вы не объявили область действия на вашем ManagedBean, а по умолчанию - RequestScoped, что означает, что она воссоздана по запросу _every_ HTTP. Вместо того, чтобы начинать с публикации вопросов по StackOverflow, я рекомендую вам начать с [ссылки ссылки JSF Bauke Scholtz] (https://jsf.zeef.com/bauke.scholtz). – DavidS