在form表单中 用S标签的doubleselect 写了一个二级联动的下拉选择框
一级的下拉框list拿到了 也能显示出来 但是二级的map页面可以获取到 在值栈里
但是二级下拉框怎么也不能获取map里的key和value 以下是源码 新手实在找不出问题所在 求大神解答!
这是form里的doubleselect图片说明
BookFatherPlaceVO.java
package com.javasm.homework01;
public class BookFatherPlaceVO {
private String fatherPlaceId;
private String fatherPlaceName;
public BookFatherPlaceVO(){}
public BookFatherPlaceVO(String fatherPlaceId , String fatherPlaceName){
this.fatherPlaceId = fatherPlaceId;
this.fatherPlaceName = fatherPlaceName;
}
public String getFatherPlaceId() {
return fatherPlaceId;
}
public void setFatherPlaceId(String fatherPlaceId) {
this.fatherPlaceId = fatherPlaceId;
}
public String getFatherPlaceName() {
return fatherPlaceName;
}
public void setFatherPlaceName(String fatherPlaceName) {
this.fatherPlaceName = fatherPlaceName;
}
}
BookSonPlaceVO
package com.javasm.homework01;
public class BookSonPlaceVO {
private String BookSonPlaceId;
private String BookSonPlaceName;
public BookSonPlaceVO(){}
public BookSonPlaceVO(String BookSonPlaceId , String BookSonPlaceName){
this.BookSonPlaceId = BookSonPlaceId;
this.BookSonPlaceName = BookSonPlaceName;
}
public String getBookSonPlaceId() {
return BookSonPlaceId;
}
public void setBookSonPlaceId(String bookSonPlaceId) {
BookSonPlaceId = bookSonPlaceId;
}
public String getBookSonPlaceName() {
return BookSonPlaceName;
}
public void setBookSonPlaceName(String bookSonPlaceName) {
BookSonPlaceName = bookSonPlaceName;
}
}
BookTypeVOService
package com.javasm.homework01;
import java.util.List;
import java.util.Map;
public interface BookTypeVOService {
List<BookTypeVO> selectBookTypeVo();
List<BookFatherPlaceVO> selectBookFatherPlaceVO();
Map<String,List<String>> selectBookSonPlaceVO();
}
BookTypeVOServiceImpl
```package com.javasm.homework01;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class BookTypeVOServiceImpl implements BookTypeVOService{
public List<BookTypeVO> selectBookTypeVo() {
List<BookTypeVO> list = new ArrayList<>();
/*BookTypeVO typeVO = new BookTypeVO();
typeVO.setTypeid("1");
typeVO.setTypename("玄幻奇幻");
list.add(typeVO);
BookTypeVO typeVO1 = new BookTypeVO();
typeVO1.setTypeid("2");
typeVO1.setTypename("武侠仙侠");
list.add(typeVO1);
BookTypeVO typeVO2 = new BookTypeVO();
typeVO1.setTypeid("3");
typeVO1.setTypename("都市言情");
list.add(typeVO2);
BookTypeVO typeVO4 = new BookTypeVO();
typeVO1.setTypeid("4");
typeVO1.setTypename("科幻灵异");
list.add(typeVO4);*/
list.add(new BookTypeVO("1","玄幻奇幻"));
list.add(new BookTypeVO("2","武侠仙侠"));
list.add(new BookTypeVO("3","都市言情"));
list.add(new BookTypeVO("4","科幻灵异"));
return list;
}
public List<BookFatherPlaceVO> selectBookFatherPlaceVO() {
List<BookFatherPlaceVO> list = new ArrayList<>();
list.add(new BookFatherPlaceVO("1","北京市"));
list.add(new BookFatherPlaceVO("2","河北省"));
list.add(new BookFatherPlaceVO("3","黑龙江省"));
list.add(new BookFatherPlaceVO("4","广东省"));
list.add(new BookFatherPlaceVO("5","山东省"));
return list;
}
public Map<String, List<String>> selectBookSonPlaceVO() {
Map<String, List<String>> map = new HashMap();
map.put("1",new ArrayList<String>(){{
add("海淀区");
add("朝阳区");
add("通州区");
add("丰台区");
add("顺义区");
}});
map.put("2",new ArrayList<String>(){{
add("邢台");
add("唐山");
add("石家庄");
add("张家口");
add("秦皇岛");
}});
map.put("3",new ArrayList<String>(){{
add("哈尔滨");
add("大庆");
add("齐齐哈尔");
add("牡丹江");
add("佳木斯");
add("东京");
}});
map.put("4",new ArrayList<String>(){{
add("广州");
add("深圳");
add("珠海");
add("厦门");
add("东莞");
}});
map.put("5",new ArrayList<String>(){{
add("济南");
add("青岛");
add("威海");
add("烟台");
add("蓬莱");
}});
return map;
}
}
BookVO
package com.javasm.homework01;
public class BookVO {
private String name;
private String author;
private String pageNum;
private String type;
private String father;
private String son;
public BookVO(){}
public BookVO(String name,String author,String pageNum,String type,String father,String son){
this.name = name;
this.author = author;
this.pageNum = pageNum;
this.type = type;
this.father = father;
this.son = son;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getPageNum() {
return pageNum;
}
public void setPageNum(String pageNum) {
this.pageNum = pageNum;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getFather() {
return father;
}
public void setFather(String father) {
this.father = father;
}
public String getSon() {
return son;
}
public void setSon(String son) {
this.son = son;
}
}
action
package com.javasm.homework01;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class HomeWork01Action {
BookTypeVOService typeService = new BookTypeVOServiceImpl();
private BookVO book;
private BookTypeVO type;
private BookFatherPlaceVO fatherVO;
private BookSonPlaceVO sonVO;
private List<BookTypeVO> typeList;
private List<BookFatherPlaceVO> fatherList;
private Map<String, List<String>> sonMap;
public String execute(){
return "execute";
}
public String add(){
typeList = typeService.selectBookTypeVo();
fatherList = typeService.selectBookFatherPlaceVO();
sonMap = typeService.selectBookSonPlaceVO();
return "add";
}
public String doAdd(){
return "doAdd";
}
public BookVO getBook() {
return book;
}
public void setBook(BookVO book) {
this.book = book;
}
public List<BookTypeVO> getTypeList() {
return typeList;
}
public void setTypeList(List<BookTypeVO> typeList) {
this.typeList = typeList;
}
public List<BookFatherPlaceVO> getFatherList() {
return fatherList;
}
public void setFatherList(List<BookFatherPlaceVO> fatherList) {
this.fatherList = fatherList;
}
public Map<String, List<String>> getSonMap() {
return sonMap;
}
public void setSonMap(Map<String, List<String>> sonMap) {
this.sonMap = sonMap;
}
public BookFatherPlaceVO getFatherVO() {
return fatherVO;
}
public void setFatherVO(BookFatherPlaceVO fatherVO) {
this.fatherVO = fatherVO;
}
public BookSonPlaceVO getSonVO() {
return sonVO;
}
public void setSonVO(BookSonPlaceVO sonVO) {
this.sonVO = sonVO;
}
}
add页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
名称: /s:textfield
输入书籍作者: /s:textfield
输入书籍页数: /s:textfield
list="fatherList"
listKey="fatherPlaceId"
listValue="fatherPlaceName"
doubleList="sonMap.get(top.fatherPlaceId)"
doublelistKey ="fatherPlaceId"
doubleListValue="BookSonPlaceName"
name="father"
doubleName="son">
/s:doubleselect
<s:submit value="提交"></s:submit>
<s:debug></s:debug>
</s:form>
这是JSP报错页面![图片说明](https://img-ask.csdn.net/upload/201710/14/1507966419_813331.jpg)
还有一种就是在doubleListKey里写fatherPlaceId
在开发者模式里报![图片说明](https://img-ask.csdn.net/upload/201710/14/1507966541_124611.jpg)
总之就是map已经在值栈中 但是就是获取不到二级菜单的值~~~ 求大神帮忙