我在学习Struts2时,使用Struts2的模型驱动来赋值,但始终是null,如下:
html:<body>
<s:form action="person" method="get">
<s:textfield name="person.name" label="name"/>
<s:textfield name="person.age" label="age"/>
<s:submit value="submit"/>
</s:form>
</body>bean:public class Person {
private int id;
private String name;
private int age;
//....省略getter与seter方法action:public class PersonAction extends ActionSupport {
//通过spring注入
private PersonMgr personMgr; public Person person;
public Person getPerson() {
return person;
} public void setPerson(Person person) {
this.person = person;
}
@Override
public String execute() throws Exception {
//此时打印出的person值始终为null,不知是为什么
System.out.println("person=" + person);
personMgr.addPerson(person);
return SUCCESS;
}
}在action中的execute方法中得到的person始终是null,请问是为什么?
我在google里搜了下,在此PersonAction类中实现了ModelDriven接口,如下:public class PersonAction extends ActionSupport implements ModelDriven<Person> { //通过spring注入
private PersonMgr personMgr; public Person person = new Person(); public Person getPerson() {
return person;
} public void setPerson(Person person) {
this.person = person;
}
@Override
public String execute() throws Exception {
System.out.println("person=" + person);
if (person != null) {
//此时得到的name依然是null
System.out.println(person.getName());
}
personMgr.addPerson(person);
return SUCCESS;
}
public Person getModel() {
return person;
}
}
通过Person person = new Person()得到的person虽然不是null,但person.getName()得到的依然是null,但我在页面上是输过值的,希望高手能指导下,解决立即给分!谢谢
html:<body>
<s:form action="person" method="get">
<s:textfield name="person.name" label="name"/>
<s:textfield name="person.age" label="age"/>
<s:submit value="submit"/>
</s:form>
</body>bean:public class Person {
private int id;
private String name;
private int age;
//....省略getter与seter方法action:public class PersonAction extends ActionSupport {
//通过spring注入
private PersonMgr personMgr; public Person person;
public Person getPerson() {
return person;
} public void setPerson(Person person) {
this.person = person;
}
@Override
public String execute() throws Exception {
//此时打印出的person值始终为null,不知是为什么
System.out.println("person=" + person);
personMgr.addPerson(person);
return SUCCESS;
}
}在action中的execute方法中得到的person始终是null,请问是为什么?
我在google里搜了下,在此PersonAction类中实现了ModelDriven接口,如下:public class PersonAction extends ActionSupport implements ModelDriven<Person> { //通过spring注入
private PersonMgr personMgr; public Person person = new Person(); public Person getPerson() {
return person;
} public void setPerson(Person person) {
this.person = person;
}
@Override
public String execute() throws Exception {
System.out.println("person=" + person);
if (person != null) {
//此时得到的name依然是null
System.out.println(person.getName());
}
personMgr.addPerson(person);
return SUCCESS;
}
public Person getModel() {
return person;
}
}
通过Person person = new Person()得到的person虽然不是null,但person.getName()得到的依然是null,但我在页面上是输过值的,希望高手能指导下,解决立即给分!谢谢
解决方案 »
- 在linux上运行,log4j日志有时候就不输出了
- 在struts2中怎么实现在同一个action两个result中跳转(在线等)
- 请教struts2
- 页面一对多保存
- jsp牛人请进!!!!!用jsp做好登录界面,想在个人主页上添加修改个人信息功能!可是不知道怎么获得用户名!!!!在线求高人指点!
- java中jar包中的jar包无法找到
- 咋实现自定义审批流程呢
- ofbiz 配置 实例
- 超BT的查询,请高手帮忙
- 怎么通过页面打开远程电脑上的文件或文件夹
- 请在MyEclipse下安装成功了的aptana插件的朋友帮帮忙好吗 ,有什么其他注意的地方,我一直安装失败
- 关于Spring+JPA,applicationContext.XML配置的问题,请前辈们可以帮忙解答一下。
改成<s:form action="person" method="post">无语
person.name这个是干嘛啊
有谁能帮下吗?我已经搞了一整天了
在线等,一旦测试通过,则马上给分!
你的PersonAction类的struts.xml配置发过来!
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="personService" extends="struts-default">
<action name="person" class="PersonAction">
<result name="success" type="redirect">/add.jsp</result>
<result name="input">/add.jsp</result>
</action>
</package>
</struts>
还是这个类没有包 类名是PersonAction
<bean id="PersonAction" class="cn.zcl.ssh.action.PersonAction" scope="prototype">
<property name="personMgr" ref="personMgr"/>
</bean>
怪了,如果是在不行 就只能把person类的所有属性放入action中吧 这样应该是没问题我也很纳闷 正常是不会出现想你这种情况的