阅读:32043回复:3
struts2使用Set接收表单传入的参数值时,getPassword()为null
1.这是定义用于接收登录表单的form类:
public class User { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } 2.在使用Set获取表单传入的参数值时,使用user.getPassword()获取的值为null,但在user的setPassword()中传入的值为表单提交的值。 public class LoginAction_Set extends ActionSupport { private User user; public void setUser(User user) { this.user = user; } @Override public String execute() throws Exception { // TODO Auto-generated method stub String username = user.getUsername(); //user自带的getPassword()此时赋值为null? String password = user.getPassword(); if(password==null||password.isEmpty()||username==null||username.isEmpty()){ System.err.println("password为null"); return null; } DbSession dbSession = new DbSession(); String sql = "select id from user where name=? and password=?"; List list = dbSession.queryBaseInfo(sql, username, password); if(list.size() == 1){ return "success"; }else{ return "index"; } } } |
|
沙发#
发布于:2016-10-13 14:26
这要看你前台表单是怎么写的了,标签的name属性必须写并且是name=user.name这样的写法,而且如果实在获取不到值,你直接使用ModelDriven拦截器来完成封装前台参数的值吧
|
|
|
板凳#
发布于:2016-10-13 17:54
1.值从jsp那里获取到了,我在这里设置了:
图片:java.png 2.在控制台显示效果如下: 图片:java2.png 3.在ModelDriven<User>接口中实现的步骤,在调用getModel().getPassword()返回值如上: null:fenglian。 图片:re.png |
|
地板#
发布于:2016-10-14 15:06
你值不是获取到了吗?最后那个是你的uesrname为空导致输出password为null,你把你if条件好好看看
|
|
|