我是Java EE和Struts2的新手。我需要知道我是否做错了。
我有一个这样的链接:http://localhost:8080/myProject/deleteUser?idUser=42
我想要的只是获取idUser值。
以下是我在动作类中使用的参数值:
HttpServletRequest request = (HttpServletRequest) ActionContext.getContext()
.get(ServletActionContext.HTTP_REQUEST);
System.out.println(request.getParameter("idUser"));
答案 0 :(得分:33)
S2提供了一种简洁的方法来获取操作类中的请求参数,只需遵循这些简单的规则即可。
S2将检查请求参数,并在您的操作类中查找匹配属性,并将该值注入到受尊重的属性中。
在你的情况下你需要做的一切
public class MyAction extends ActionSupport{
private String idUser;
getter and setters
}
因此,在这种情况下,S2将在您的动作类中找到idUser
属性,并且它在拦截器中的构建将在idUser
属性中注入值
答案 1 :(得分:15)
好吧,我不是Struts专家,但我在Struts 2.2项目中所做的事情(并且运行正常)是:
String paramValue = ServletActionContext.getRequest().getParameter("paramName");
这里paramName将是“idUser”。
答案 2 :(得分:2)
试试这个:
ActionContext context = ActionContext.getContext();
Map<String, Object> params = context.getParameters();
String userId = findParam("idUser", params);
public String findParam(String key, Map<String, Object> params) {
Object obj = params.get(key);
if(obj != null) {
String[] values = (String[])obj;
return values.length > 0 ? values[0] : null;
}
return null;
}
答案 3 :(得分:0)
public class MyAction extends ActionSupport {
HttpServletRequest request;
String idUser = request.getParameter("idUser");
System.out.println(idUser);
}
试试这个!