![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
struts2,action里面获取不了jsp页面中的值
使用jsp作为页面:<s:formname='form1'id='form1'method='get'action='testAction'><s:textfieldna...
使用jsp作为页面:
<s:form name='form1' id='form1' method='get' action='testAction'>
<s:textfield name="username" label="username"></s:textfield>
<s:password name="password" label="password"></s:password>
<s:submit value="提交"></s:submit>
</s:form>
对应的action:
private String username;
private String password;
两个属性都有get和set方法,在execute()方法里:
System.out.println("username:"+username);
System.out.println("password:"+password);
发现打印的值是null。
不是有setter方法就能给action里的属性赋值吗?为什么是null?求高手解答!!
public String getUsername() {
System.out.println("调用username 的getter方法");
return username;
}
public void setUsername(String username) {
this.username = username;
System.out.println("调用 username 的setter方法");
}
public String getPassword() {
System.out.println("调用password的getter方法");
return password;
}
public void setPassword(String password) {
this.password = password;
System.out.println("调用password的setter方法");
} 展开
<s:form name='form1' id='form1' method='get' action='testAction'>
<s:textfield name="username" label="username"></s:textfield>
<s:password name="password" label="password"></s:password>
<s:submit value="提交"></s:submit>
</s:form>
对应的action:
private String username;
private String password;
两个属性都有get和set方法,在execute()方法里:
System.out.println("username:"+username);
System.out.println("password:"+password);
发现打印的值是null。
不是有setter方法就能给action里的属性赋值吗?为什么是null?求高手解答!!
public String getUsername() {
System.out.println("调用username 的getter方法");
return username;
}
public void setUsername(String username) {
this.username = username;
System.out.println("调用 username 的setter方法");
}
public String getPassword() {
System.out.println("调用password的getter方法");
return password;
}
public void setPassword(String password) {
this.password = password;
System.out.println("调用password的setter方法");
} 展开
4个回答
展开全部
是你form表没有对应到你的class类里,应该改为user.username,user.password,然后后台通过声明user类给予get和set方法才能得到你要的
追问
我的action类叫MyAction,属性是:private String username; private String password;
你的意思是
这样?
追答
你这样是页面的处理,还有后台的Action处理类需要写private MyAction myAction和相应的get与set
这样就可以直接用myActiond.getUsername调用,
如果你的Action处理就在MyAction中,那就没必要这么写。
展开全部
你确定进了action了吗?里面是set不是setter。例如id:
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
你看看是不是你大小写错了?set里面一定要是this.username = username this.password=password
别写错了哦。可以用工具生成的,那就不会错的。
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
你看看是不是你大小写错了?set里面一定要是this.username = username this.password=password
别写错了哦。可以用工具生成的,那就不会错的。
追问
帖出来了,没写错啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你看看是不是set写错了,或者字段名不统一,最好复制下
追问
代码贴出来了,没写错啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把get和set方法贴出来看看,问题应该在这几个方法上导致没法设置值
追问
贴出来了,麻烦帮忙看看
追答
这个地方的action地址是不是有问题啊,你struts的拦截后缀配的是什么啊,如果是“action”的话那么这里的action属性应该写成“testAction.action”,整个应该写成如下:
ps:我用你的代码试过了,我这边是正确的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询