当前位置: 代码迷 >> J2EE >> ssh中,jsp向struts2的action传值有关问题(100%结贴)
  详细解决方案

ssh中,jsp向struts2的action传值有关问题(100%结贴)

热度:78   发布时间:2016-04-22 02:00:28.0
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写的有没有问题咯!
------解决方案--------------------
  相关解决方案