开发者

How to get the contextual Pojo when handling a JSF 2.0 Event

I am using a third party JSF 2.0 component (the Primefaces 3.0 FileUpload) that defines its own custom event. On the server side, the signature of the handler looks like this:

public void handleFileUpload(FileUploadEvent event)

Problem is, my form is built dynamically and may have dozens of separate FileUpload controls in it, and I need t开发者_开发百科o know WHICH of the fileupload controls generated the event.

Actually, I don't need to know which, I just need the "var" that was in the ui:repeat that caused that particular FileUpload control to be generated. With normal controllers I could have easily just passed in the variable I need, but this 3rd party component happens to use an event handling mechanism rather than a controller, and being rather ignorant of how to work with JSF 2.0 events, I don't know how to get at the POJO, given only the event.

I see that event has a getComponent() method on it that tells me the UIComponent, but after poking around I don't see any easy way to get at the contextual variables, or even a way to generate my own EL expression to evaluate to get at the contextual variables.

So the question boils down to... given only an event, how can I get at the contextual variables in scope for the particular component that was clicked?


Figured it out... I needed to put this inside the 3rd party component

<f:attribute name="myObject" value="#{myObject}"/>

Then it is available in the attributes map of the component on the server side:

final MyOjbect myObject = (MyObject) event.getComponent().getAttributes().get("myObject");
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜