读书人

ssh中jsp向struts2的action传值有关

发布时间: 2012-03-28 15:40:03 作者: rapoo

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写的有没有问题咯!
------解决方案--------------------


1: bean中没有pass的属性或者 setter getter
2:没有用s2的标签
3:没有集成Action或者actionsupport
[解决办法]
是你页面的pass与bean中的不一样

读书人网 >J2EE开发

热点推荐