2010-03-26 3 views
1

Я изучаю макеты и Seam, и я столкнулся со следующей проблемой: у меня есть 2 xhtml-файла, один из которых включает в себя другой, и каждый из них имеет свой собственный компонент Seam в качестве бэк-компонента. Я хочу отправить и возразить на включенное лицо и получить этот объект в фонотеке, соответствующем включенному личинку. Я приведу пример, чтобы объяснить ситуацию лучше:Как получить значение ui: param в Javabean

  • registration.xhtml с компонентом шва в качестве основы боба Registration.java. В этом классе у меня есть объект типа Person
  • address.html с компонентом шва в качестве бэк-компонента Address.java. В этом классе я хочу получить объект Person из компонента регистрации и установить адрес.
  • registration.xhtml включает address.xhtml и передает объект с помощью

Как получить этот объект в адресной боб? Будет ли такая же ссылка объекта с регистрационного компонента? ui: param является решением передачи этого объекта или есть другое решение для этого? (возможно, f: атрибут, но даже в этом случае, как получить объект в bean-компоненте)

Этот пример прост и не обязательно реалистичен, но у меня есть аналогичная проблема, и я не знаю, как ее решить.

Заранее спасибо.

+0

@mihaela Если вы видите хороший ответ, UPvote. –

ответ

1

Вы можете использовать действие страницы, чтобы подключить ваш боб

<page view-id="/registration.xhtml"> 
    <action execute="#{registrationBackingBean.wire}"/> 
</page> 

...

@Name("registrationBackingBean") 
public class RegistrationBackingBean { 

    @In(required=false) 
    private Person person; 

    @In(required=false) 
    private Address address; 

    public void wire() { 
     person.setAddress(address); 
    } 

} 

Если вы хотите, чтобы провод во время первоначального запроса (GET), выполните следующие действия

<page view-id="/registration.xhtml"> 
    <action execute="#{registrationBackingBean.wire}" if="#{empty param['javax.faces.ViewState']}"/> 
</page> 
+1

AFAIK, имеет атрибут on-postback. Вы можете установить значение false, вместо того, чтобы проверять if = "# {empty param ['javax.faces.ViewState']}". –

+0

Ну, я имел в виду

+0

@Petar Minchev Полезно знать. Спасибо! Какую версию поддерживает Seam? –

Смежные вопросы