2013-12-16 5 views
1

Я пытаюсь проверить некоторые значения, переданные из URL-адреса. Я пытаюсь получить эти значения в пользовательском интерфейсе, но не работает.Получить текущий URL-адрес?

Я пробую это.

// link send by email, click to validate 
String url = "http://localhost:8080/MyProject/ValidateValues?NAME=FERNANDO&AGE=34" 

// ValidateValues UI class 
public class ValidateValues extends UI{ 
    @Override 
    protected void init(VaadinRequest request) { 
     String name = request.getParameter("NAME"); 
     String age = request.getParameter("AGE"); 

     System.out.println(name); 
     System.out.println(age); 
    } 
} 

Любая идея?

ответ

2

Следующий код рабочего раствора:

String sPathInfo = request.getPathInfo(); 
if ("/ValidateValues".equals(sPathInfo)) { 
    // TODO: Check if NAME and AGE are contained in the ParameterMap! 
    String sName = request.getParameterMap().get("NAME")[0]; 
    String sAge = request.getParameterMap().get("AGE")[0]; 
    Notification.show(String.format("Name: %s Age: %s", sName, sAge)); 
} 
else { 
    // not correct path 
} 
1

Вы можете работать на уровне строк.

Сначала получите подстроку, содержащую все значения.

String allVal = url.substring(url.indexOf("?")); 

Затем вы можете разделить эту строку, используя & в качестве разделителя, чтобы получить ассигнации.

String[] values = allVal.split("&"); 

Чтобы закончить, вы можете разделить каждый элемент значений с помощью = в качестве разделителя.

for(String val : values){ 
    String[] a= val.split("="); 
    String varName=a[0]; 
    String varValue=a[1]; 
} 

Теперь вы можете использовать VarName и varValue, чтобы сделать ваш валидаций

0

VaadinRequest не обеспечивает простой способ для получения всей фактической URL, однако использование request.getParameter("v-loc"); может решить эту проблему. Когда у вас есть полный URL, вы можете играть с ним, используя java.lang.String toolkit

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