2013-12-16 87 views
1

我想驗證從URL傳遞的一些值。我試圖在UI中獲取這些值,但不起作用。獲取當前值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("&"); 

要完成,您可以使用= as分隔符分隔每個值的元素。

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

您現在可以使用的varName和varValue,使您的驗證

0

VaadinRequest不會用於獲取整個實際提供的簡單方法但是,使用request.getParameter("v-loc");的URL可能會解決此問題。當你有完整的URL時,可以使用java.lang.String工具包