日期:2014-05-19  浏览次数:20773 次

struts2中的下拉列表中listKey和listValue的问题
最近一直在看视频学习struts2.看到struts的表单标签中的下拉列表获取不到值了。

我查了查。主要原因就是:listKey和listValue的问题

源码如下:

一个省的类

package com.test.vo;

public class Province {
private Integer pId;
private String pName;
private String PCity;
public Province(Integer pId, String pName, String pCity) {
this.pId = pId;
this.pName = pName;
PCity = pCity;
}
public Province() { }
public Integer getpId() {
return pId;
}
public void setpId(Integer pId) {
this.pId = pId;
}
public String getpName() {
return pName;
}
public void setpName(String pName) {
this.pName = pName;
}
public String getPCity() {
return PCity;
}
public void setPCity(String pCity) {
PCity = pCity;
}
}

这是一个Action类

package com.accp.testAction;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.opensymphony.xwork2.ActionSupport;
import com.test.vo.Province;

public class FormAction2{

/**
*  
*  
*/
private List<Province> province;
public List<Province> getProvince() {
return province;
}
public void setProvince(List<Province> province) {
this.province = province;
}
public FormAction2(){
province=new ArrayList<Province>();
province.add(new Province(1, "江西", "南昌"));
province.add(new Province(2, "山西", "太原"));
province.add(new Province(3, "广东", "广州"));
province.add(new Province(4, "江苏", "南京"));
}
}
还有一个表单:主要代码:
<s:select list="#fa.province" name="province" headerKey="-1" headerValue="--省--" label="籍贯" listKey="sa" listValue="sa"></s:select>

如果把listKey和listValue去了。下拉列表里就是一个对象的地址。反之则是就是空的。但是有四个模块。option里面没东西。编译源文件如下:

<td class="tdLabel"><label for="login_province" class="label">籍贯:</label></td>
  <td
><select name="province" id="login_province">
  <option value="-1"
  >--省--</option>
  <option value=""></option>
  <option value=""></option>
  <option value=""></option>
  <option value=""></option>
 
 
</select>


------解决方案--------------------
<s:select list="province" name="province" headerKey="-1" headerValue="--省--" label="籍贯" listKey="pId" listValue="pId" "></s:select>

你懂得。


------解决方案--------------------
listValue="pName"
------解决方案--------------------
Action 里面对这个province进行封装了吗?即get(),set()方法,还有pid和pname有没有写错,
注意大小写,大哥你那个pname写错了,应该是pName,而不是PName