ssh中,jsp向struts2的action传值问题(100%结贴)
ssh中jsp向action传值,只得到一个属性的值,还有其他属性的值得不得。寻思许久不得其解,故请各位帮忙解答。
jsp页面内:
<form action="savePerson" method="post">
密码:<input name="person.pass" type="password"><br/ >
用户名 :<input name="person.username" type="text"><br/>
age:<input name="person.age" type="text"><br/ >
<input name="submit" type="submit"/>
</form>
action里面:
public class SavePerson {
private Person person;
private PersonService personService;
public void setPerson(Person person) {
this.person = person;
}
public void setPersonService(PersonService personService) {
this.personService = personService;
}
public String execute(){
System.out.println(person);
personService.savePerson(person);
return "success";
}
}在person的bean里面已经覆写了tostring方法。
只打印了username,其他的却打印不出来。
hibernate显示的hsl语句为:
用户名:222 密码:null 年龄:0
Hibernate: select max(id) from person
Hibernate: insert into s2sh.person (username, password, age, id) values (?, ?, ?, ?)
请各位帮忙解答。(100%结贴)
------解决方案--------------------远程我帮你看看,qq:359060090
------解决方案--------------------你把post改成get,看下这个url有没有把参数传过去,有的话用request.getParameter("XXX")能不能获取到
------解决方案--------------------你可以通过标签来取
第一种方法
通过<s:property value="" />取值
当Action的valueStack中有该属性的值时,只需直接使用该属性的名字即可;
当Action的valueStack中没有该属性的值时,比如在session,application范围中的属性值时,需要加#或者#attr.;
例子:
假设某Action中有person成员变量,在application中存在company属性
那么我们可以通过以下方法取值:
<s:property value="person.name" />
<s:property value="#person.name" />
<s:property value="company.name" /> //无法取到,因为company不在action的valueStack中
<s:property value="#company.name" />
第二种方法
在任意的<s:/>标签内使用%{}来取值
当Action的valueStack中有该属性的值时,只需直接使用该属性的名字即可;
当Action的valueStack中没有该属性的值时,比如在session,application范围中的属性值时,需要加#或者#attr.;
例子:
假设某Action中有person成员变量,在application中存在company属性
<s:textfield name="person.name" value="person.name" /> //错误,value会直接显示person.name字样
<s:textfield name="person.name" value="%{person.name}" />
<s:textfield name="person.company.name" value="%{#company.name}" />
<s:textfield name="person.company.name" value="%{#attr.company.name}" />
------解决方案--------------------那你仔细检查下,可能是哪里不小心写错了
------解决方案--------------------Person 里是否都get/set了呢。
------解决方案--------------------action 里的Person加一个get方法
person.pass,你的BEAN里是PASS?不是PASSWORD?
------解决方案--------------------action里面:
public class SavePerson {
沒有繼承吧
------解决方案--------------------bean 对象的属性 写错没有,还有就是 怎么没有继承ActionSupport啊
------解决方案--------------------应该是get/set方法问题,或者是你的toString写的有没有问题咯!
------解决方案--------------------