Need to help in parameter handler

The current situation is following. I have vaadin appllication what is deployed to liferay portal.
My application listening parameters, but I can get any parameters because it is inside portal.
I found one solution to get parameter in liferay using following code:

[code]

HttpServletRequest httpReq = PortalUtil.getOriginalServletRequest(PortalUtil.getHttpServletRequest(req));
String myArticleId = httpReq.getParameter(“articleId”);

[/code], but it doesn’t help me because I don’t known current httprequest inside parameterhandler

Doesn’t anyone know any workaround?

This is my current code:


		Window mainWindow = new Window("app");
		final Label label = new Label("Hello Vaadin user");

		ParameterHandler handler = new ParameterHandler() {

			@Override
			public void handleParameters(Map parameters) {
				System.out.println("parametreja " + parameters.size());
				for (Object key : parameters.keySet()) {
					System.out.println("key " + key + " == "
							+ parameters.get(key));
				}
				if (parameters.containsKey("parameter")) {
					label.setCaption("parameter " + parameters.get("u"));
				} else {
					label.setCaption("Parameter not found");
				}
			}
		};
		mainWindow.addParameterHandler(handler);

ParameterHandler is a bit higher level place, there is no http request object instance. Probably, implementing your TransactionListener is what you need

I don’t understand how to TransactionListener can help me? There is only method for listening start and end transaction but parameters can come in many times in one transaction.

Vaadin “transaction” equals “http request”.

/**
     * Vaadin "transaction" equals "http request".  This method fires for all servlets
     * in the session.
     */
    private void attachHttpRequestListener() {
        getContext().addTransactionListener(new TransactionListener() {
			private static final long serialVersionUID = -2365336986843262181L;

			public void transactionStart(Application application,
                    Object transactionData) {
        		((LocalizedSystemMessages)getSystemMessages()).setThreadLocale(getLocale());
        		current.set(CompetitionApplication.this);  // make the application available via ThreadLocal
        		HttpServletRequest request = (HttpServletRequest)transactionData;
        		request.getSession(true).setMaxInactiveInterval(3600);
            }
            
			public void transactionEnd(Application application,
                    Object transactionData) {
                // Transaction listener gets fired for all (Http) sessions
                // of Vaadin applications, checking to be this one.
                if (application == CompetitionApplication.this) {
                    closeHibernateSession();
                }
            }
        });
    }