Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用不在主对象中的列表对象保存主对象_Java_Jquery_Spring_Spring Mvc - Fatal编程技术网

Java 使用不在主对象中的列表对象保存主对象

Java 使用不在主对象中的列表对象保存主对象,java,jquery,spring,spring-mvc,Java,Jquery,Spring,Spring Mvc,我想从表单中保存对象C。此表单包含两个选择下拉列表,每个下拉列表表示A类和B类。 C类与a类有连接,a类与B类有列表连接 当我从表单中保存对象C时,我从选择下拉列表中选择一个项目class A,从class B中选择一个项目。 新的CID和选择的AID保存到数据库表db_C,选择的BID应该与新创建的CID和新的DID一起保存到数据库表db_D,其中包含到B和C的连接 表db_A __A__ 1 2 3 表db_B __B__|__C__ 4 | 2 5

我想从表单中保存
对象C
。此表单包含两个选择下拉列表,每个下拉列表表示
A类
B类
C类
a类
有连接,
a类
B类
有列表连接

当我从表单中保存对象C时,我从选择下拉列表中选择一个项目
class A
,从
class B
中选择一个项目。 新的
C
ID和选择的
A
ID保存到数据库表
db_C
,选择的
B
ID应该与新创建的
C
ID和新的
D
ID一起保存到数据库表
db_D
,其中包含到
B
C
的连接

表db_A

__A__
  1  
  2  
  3  
表db_B

__B__|__C__
  4  |  2
  5  |  1
表db_C

__C__|__A__
  1  |  2
  2  |  3
表db_D

__D__|__B__|__C__
  1     2     1
我有一个C的控制器:

@RequestMapping(value = "/new", method = RequestMethod.GET)
public String add(Model model) {

    model.addAttribute("listOfAs", listOfAs());
    model.addAttribute("C", new C());
    model.addAttribute("listOfBs", listOfBs());

    return "C/edit";
}

private List<B> listOfBs() {
    List<B> listOfBs = new ArrayList<>();
    try {
        listOfBs.addAll(BService.listBs());
    } catch(DataAccessException ex) {
        logger.error(ex.getMessage(), ex);
    }
    return listOfBs;
}

private List<A> listOfAs() {
    List<A> listOfAs = new ArrayList<>();
    try {
        listOfAs.addAll(AService.listAs());
    } catch (DataAccessException ex) {
        logger.error(ex.getMessage(), ex);
    }
    return listOfAs;
}

@RequestMapping(value = "/save", method = RequestMethod.POST)
public String update(Model model, @ModelAttribute("C") C C, BindingResult CResult) {
    C.setA(AService.getA(C.getA().getID()));

    System.out.println(C.getA().getBs().isEmpty()); //Prints "True"

    if (C.getID() == 0) {
        CService.save(C);
    } else {
        CService.update(C.getID(), C);
    }
    return "redirect:/mvc/C/viewList";
}
@RequestMapping(value=“/new”,method=RequestMethod.GET)
公共字符串添加(模型){
addAttribute(“listOfAs”,listOfAs());
addAttribute(“C”,新的C());
addAttribute(“listOfBs”,listOfBs());
返回“C/edit”;
}
私有列表{
List listOfBs=新的ArrayList();
试一试{
addAll(BService.listBs());
}捕获(DataAccessException ex){
logger.error(例如getMessage(),例如);
}
返回列表OFBS;
}
私人名单

我没有把姓名和身份证放进optiontag

这样做的目的是在
C
的表单中选择
A
B
,保存时,我希望将表单中输入的所有值分别保存到
db\u C
db\u d

我希望有人能帮我:)


我编辑了这个问题,因为第一个问题有点让人困惑。

我创建了一个新的带有打印和解析函数的类a formatter。成功了

没有人?真的吗?这是不可能的,还是说我为什么要实现这一点毫无意义?
<s:url value="/mvc/C/save" var="actionUrl" />
<sf:form method="POST" modelAttribute="C" action="${actionUrl}">
    <fieldset>
        <table>
            <tr>
                <th><label for="A">A:</label></th>
                <td><sf:select path="A.ID">
                        <sf:option value="0">&nbsp;</sf:option>
                        <sf:options items="${listOfAs}" itemLabel="name" itemValue="ID" />
                    </sf:select></td>
            </tr>
            <tr>
                <th><label for="B">B:</label></th>
                <td>
                    <sf:select path="A.listRefToB">
                        <sf:option value="0">&nbsp;</sf:option>
                        <sf:options items="${listOfBs}" itemLabel="name" itemValue="ID" />
                    </sf:select>
                </td>
            </tr>
            <tr>
                <td colspan="2">
                    <input id="saveButton" class="right" type="submit" title="Save" value=" [ Save ] " />
                </td>
            </tr>
        </table>
    </fieldset>
</sf:form>