xushuangdouble 2017-10-14 07:37
浏览 466

Strust2 s标签下的doubleselect 第二级下拉框获取不到值

在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


/s:select


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已经在值栈中  但是就是获取不到二级菜单的值~~~  求大神帮忙


  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 fluent的在模拟压强时使用希望得到一些建议
    • ¥15 STM32驱动继电器
    • ¥15 Windows server update services
    • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
    • ¥15 模糊pid与pid仿真结果几乎一样
    • ¥15 java的GUI的运用
    • ¥15 Web.config连不上数据库
    • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
    • ¥15 怎么配置广告联盟瀑布流
    • ¥15 Rstudio 保存代码闪退