The more complicated and more JSF-specific your code is, the more likely you're not doing it right. Consider that as the #1 rule for JSF. JSF is designed to do as much for you as possible and do it automatically.
In the case of setting the EventBean's country property, you can discard the valueChangeListener entirely. JSF will automatically invoke the EventBean's setCapital(). Provided of course, that your form does not contain any invalid data in it. When in doubt, add an "<h:messages/>" element to the page.
Customer surveys are for companies who didn't pay proper attention to begin with.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com