一个普通的User类public class User implements Serializable {
private String name;
private Long number;
private String sex;
private int age;
private String address; public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Long getNumber() {
return number;
}
public void setNumber(Long number) {
this.number = number;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
action类
public class UserAction extends BaseAction { private User user;
private UserService userService =ObjectFactory.getUserService();
private List<User> users; public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String loginUser(){
System.out.println(user.getName());
}。。 后面代码省略为什么一运行到红色的代码就会吧这个空指针异常呢, 这个问题困扰我2天了
private String name;
private Long number;
private String sex;
private int age;
private String address; public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Long getNumber() {
return number;
}
public void setNumber(Long number) {
this.number = number;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
action类
public class UserAction extends BaseAction { private User user;
private UserService userService =ObjectFactory.getUserService();
private List<User> users; public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String loginUser(){
System.out.println(user.getName());
}。。 后面代码省略为什么一运行到红色的代码就会吧这个空指针异常呢, 这个问题困扰我2天了
解决方案 »
- 补充struts2官网例子的代码
- java 读properties文件 路径问题(菜鸟级在线等)
- java io流 关闭问题
- 求助:数据库异常错误[SQLServer 2000 Driver for JDBC]Invalid operation for the current cursor
- 请问如何写验证码 在线谢谢
- 父窗口承担责任!!!
- jsp如何对ognl获得的值进行数学运算
- IIS7 asp跳转jsp不显示端口
- 利用jsp,能否通过网页,激活服务器上的某一给定的独立程序?如photoshop.
- jsp操纵本机的串口,急??
- HttpURLConnection
- 用了jquery的代码,有些东西不能正常取出来
struts2的拦截器会拦截下来表单里的数据。
然后你才能get或者set
你看这个流程你哪个完成不了。
<s:textfield name="user.username" /> <br>
<s:textfield name="user.username" />
为啥改成这样就好了?
不是 user.name ?
是user.name
不好意思,我一直都用的是username
提交表单后,struts2的参数拦截器会找user对像的setName方法,将前台的参数赋值。
如果是这样:
<s:textfield name="name" /> <br>
那action中如果有个
private String name;
public void setName(String name) {
this.name = name;
}
那也可以得到值,它是action中的属性,而不是user的属性,
如果再加个getName()方法,那当action返回页面时,会给前台的标签
如<s:textfield name="name" /> ,<s:propoty value="name" /> <br>
赋值.
建议你看下struts2的默认拦截器,有个是param的拦截器做这个的
比如说你如果在你的action 定义了一个 Public String name
那么通过 <s:textfield name="name" /> <br> 你就可以获得name的值了
只要在页面中输入值,后台打印System.out.println("name=="+name);肯定有值,而楼上,的User user=new User();
这一一步只做了声明并实例化,而没有复制,所以出错!
你可以再随意在action定义一个string的name属性,然后get/set....再在页面上直接
<s:textfield name="name" /> 这样肯定是有值的.区别就在于一个是对象里属性,
另一个直接是属性