最近一直在看视频学习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>
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>
解决方案 »
- 非本页面的action和页面之间传递参数问题
- spring 使用annotion @RequestMapping(params能不能设置默认方法
- 请问hibernate3怎么对简单属性进行lazy
- 我的留言本中文显示为乱码,谁能帮帮我?
- 大家好,现在做了一个文件读入,读取.txt文件,在文件头,有个null,不知何故.如 "null 投注规则:".txt文件没有问题,为什么会出现这种情况,希望高手解答.
- tomcat5.5和apache 频繁报错 80分
- 请大家帮忙啊,再不解决作不下去了!!
- 【求助】eclipse添加新项目,但是tomcat的webapps下没反应
- JBOSS启动出现了如文所示的异常,请高手指点迷津!!!
- 群发邮件是怎么一回事?
- Cannot forward after response has been committed
- 线程大神们、高手们请进啊。。。求解啊
<s:select list="#fa.province" name="province" headerKey="-1" headerValue="--省--" label="籍贯" listKey="pId" listValue="PName"></s:select>各位大神。。求教了。
注意大小写,大哥你那个pname写错了,应该是pName,而不是PName
谢谢您的提醒。但是我这改了。还是没有用。而且我发现一个很奇怪的现象:就是在action类中的属性必须是大写的。如果是小写就出不来了。如果是在action类中是大写。在listKey和listValue都用PId和Pid是一样的。求解。。
另外。我又写了一个action类里面放的是map集合。如下代码
private Map<Integer,String> province;
public Map<Integer,String> getProvince() {
return province;
}
public void setProvince(Map<Integer,String> province) {
this.province = province;
}
public FormAction1(){
province=new HashMap<Integer,String>();
province.put(1,"江西");
province.put(2,"湖南");
province.put(3,"湖北");
province.put(4,"广东");
province.put(5,"广西");}
但这里面就取不出来了用select标签
[code]
<s:bean name="com.accp.testAction.FormAction1" id="fa2"></s:bean>
<s:select list="#fa2.province" listKey="PId" listValue="PName" headerKey="-1" headerValue="--省--" emptyOption="true" name="province" label="籍贯" ></s:select>[/code]
无论pid大小写。难道我的action类写错了?
<s:select list="#fa2.province" listKey="PId" listValue="PName" headerKey="-1" headerValue="--省--" emptyOption="true" name="province" label="籍贯" ></s:select>
真心求解。。谢谢。。