获取当前值网址?

时间:2013-12-16 13:12:14

标签: java frameworks vaadin vaadin7

我正在尝试验证从URL传递的一些值。我正在尝试在UI中获取这些值但不起作用。

我正在尝试这个。

// 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);
    }
}

有什么想法吗?

3 个答案:

答案 0 :(得分: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 :(得分:1)

您可以在字符串级别工作。

首先获取包含所有值的子字符串。

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

然后你可以用&分割这个字符串作为分配来获得分配。

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

要完成,您可以使用= as delimiter分割每个值元素。

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

您现在可以使用varName和varValue进行验证

答案 2 :(得分:0)

VaadinRequest并未提供获取整个实际网址的简单方法,但使用request.getParameter("v-loc");可能会解决此问题。如果您有完整的网址,则可以使用java.lang.String工具包

来使用它