Pro jistotu jsem to prověřil a funguje to bez problémů. Ujistěte se, že nemáte nějaký ve value="#{bean2.nazevSouboru}" ve značce <f:attribute/> a že v tom beanu máte metodu getNazevSouboru(), která vrací řetězec != null.

Obávám se, že s tou aktualizací stránky po uložení souboru bude problém, protože voláním metody responseComplete() se prostě končí JSF cyklus a už nelze nic provést.

Pavel


Zkusil jsem uvedený postup, vyhazuje NullPointerException na příkazu
String s = e.getComponent().getAttributes().get("nazev_souboru" ).toString();

Nakonec jsem to vyřešil zabalením do commandLinku, kde fungují parametry.

Zůstává nevyřešený bod 2). Jak obnovit stránku, na které je tlačítko pro uložení souboru? Po stisknutí tlačítka se vyvolá action metoda, ve které je mimo jiné i aktualizace příznaku v DB. Po uložení souboru na disk je zapotřebí aby se aktualizovaný příznak zobrazil na stránce,
popřípadě aby se zavolala jiná jsp stránka.

K.Novotný

Toto chování je v souladu se specifikací JSF, protože komponenta javax.faces.Button se renderuje jako HTML element "input". Jinými slovy řečeno, commandButton nepodporuje předávání parametrů přes značku f:param. Co s tím:

1. *místo* značky commandButton použít commandLink a nastylovat jej tak, aby to vypadalo jako tlačítko,

2. pokud se nechcete vzdát použití značky commandButton, *zkuste* ten parametr předat pomocí <f:attribute name="nazev_souboru" value="#{bean2.nazevSouboru}">, do značky commandButton doplňte atribut actionListener="#{bean2.nejakaMetoda}" a v beanu implementujte tu metodu:

public void nejakaMetoda(ActionEvent e) {
String s = e.getComponent().getAttributes().get("nazev_souboru" ).toString();
}


Odpovedet emailem