假设我在这里有这个 URL
<s:url action ="profile" var ="profile_url">
<s:param name = "id">${user.userId}</s:param>
</s:url>
<s:a href = "%{profile_url}">My Profile</s:a>
其中参数 id 将只有一个int
值。所以在我的 Action 课程中。
public class ViewProfileAction extends ActionSupport{
public String execute(){
//someServiceLayer.getUser(id);
return "success";
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
private int id;
}
只要用户点击链接,一切似乎都很顺利,所以如果用户点击链接,网址将是这样的
localhost:8090/HelloStruts2/profile?id=1
但是如果用户直接操作 URL 会怎样?他在浏览器中手动输入了一个字母或字符?像这样
localhost:8090/HelloStruts2/profile?id=b
如果用户这样做,我相信会有异常或会发生错误。
我的问题是如何验证 URL 参数?或者如果用户做了这样的事情(在参数中输入字母或负数id
),我会将他重定向到另一个页面。