我正在尝试验证从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);
}
}
有什么想法吗?
答案 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
工具包