当前位置: 首页 > 知识库问答 >
问题:

Spring MVC-Form:复选框不给我带来项目

叶淇
2023-03-14

我正在使用表单:复选框,但不起作用。我可以检查html中的项目,当我把submit,debbuging,我看到我已经检查的项目不在我的表单的列表中,列表是空的

形式

private long id;
private List<ItemVenta> elementos;


public long getId() {
    return id;
}
public void setId(long id) {
    this.id = id;
}
public List<ItemVenta> getElementos() {
    return elementos;
}
public void setElementos(List<ItemVenta> elementos) {
    this.elementos = elementos;
}

@RequestMapping(值=“/ManageStock”,方法=RequestMethod.Get)public ModelAndView ControlStockParapaSaraventa(@RequestParam(“GetItem”)长id){

    try{

        Presupuesto p = this.presupuestoService.getPresupuesto(id);
        PresupuestoForm form = new PresupuestoForm();
        form.setId(p.getId());
        List<ItemVenta> elementos = new ArrayList<ItemVenta>();

        getItemsFromPresupuesto(p, elementos); // Method that fill the list elementos with some items

        ModelAndView m = new ModelAndView("manageStock");
        m.addObject("command",form);
        m.addObject("elementos",elementos);
        return m;

    }catch(Exception e){

        ...
    }
}




@RequestMapping(value = "/manageStockForm", method = RequestMethod.POST)
public Object manageStockPresupuestoForm(@ModelAttribute("manageStockForm") PresupuestoForm form, BindingResult result){

    Presupuesto p = null;

    try{

        p = this.presupuestoService.getPresupuesto(form.getId());

        for(ItemVenta i : form.getElementos()){


        }

        return "redirect:becomeVenta.html?getItem="+form.getId();

    }catch(BussinesException e){

        ...

    }catch(Exception e){

    ...

    }
}

HTML

<table>
    <tr style="display: none;">
                <td><form:input path="id"/></td> 
    </tr>
    <tr>
        <td><div class="texto">
            <form:checkboxes path="elementos" items="${elementos}" itemLabel="itemName" /> 
        </div></td>
    </tr>
    <tr>
            <td>
                    <input class="linkboton" type="submit" value="Submit"/>
                </td>
    </tr>

</table>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>SpringTiles</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
</web-app>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context3.0.xsd">


<context:component-scan base-package="controllers" />


<bean id="viewResolver"
    class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass">
        <value>
            org.springframework.web.servlet.view.tiles2.TilesView
        </value>
    </property>
</bean>
<bean id="tilesConfigurer"
    class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
    <property name="definitions">
        <list>
            <value>/WEB-INF/tiles.xml</value>
        </list>
    </property>
</bean>
</beans>

ItemVenta映射

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD3.0//EN"
                               "http://hibernate.sourceforge.n/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-access="field" default-cascade="save-update">
<class name="ventas.ItemVenta">

    <id column="id" name="id">
        <generator class="native" />
    </id>

<property name="precio" />
<property name="nombre" />
<property name="cantidad" />
<property name="idItem" />
<property name="tipo" />

</class>
</hibernate-mapping>

共有1个答案

屠浩
2023-03-14

My Form:Checkboxs必须检查实体列表(ItemVenta)并将我检查的实体保存在表单的list elementos中。我在谷歌搜索答案,发现我需要将方法equals添加到我的实体中。它没有起作用。因此,在表单列表中保存实体,现在我正在保存这些实体的ID,它起作用了。我还在看一个实体的名单。

 类似资料:
  • 我一直在研究这个问题,但我找不到一个带有复选框的get drawable的解决方案。我试图做的是,当你点击这个特定的复选框时,它会过滤相应颜色的复选框。顺便说一下,这是一个片段。所以,我有可以是红色、黄色或绿色的复选框。如果用户点击它们,它会改变颜色。例如,我有一个黄色的复选框,它是chkProgress,当它被单击时,我想找到所有黄色的复选框,并筛选黄色的复选框。所以,我有可绘制的ID,我需要得

  • 问题内容: 我需要将复选框添加到JTree。自定义TreeCellRenderer / TreeCellEditor似乎是正确的方法。到目前为止,我在此网页中使用了CheckBoxNodeRenderer方法。除了两件事,它可以正常工作: 复选框上方+下方有额外的空格;我想使其与常规JTree相同。 我想区分单击复选框本身(应尝试切换复选框)和单击与复选框相关联的文本(应允许事件侦听器将此解释为单

  • 问题内容: 是否可以将复选框代替“链接名称”? 如果是这样怎么办? 谢谢, 问题答案: 是的,当然有可能。您可以使用标准复选框: 然后在单独的javascript文件中使用jQuery订阅此复选框的change事件,并毫不客气地对其进行AJAXify:

  • 我试图创建一个表单,该表单顶部有一个复选框,当用户选中该复选框时,它会选择其他特定的复选框,但不是所有复选框。我很难通过反复试验或搜索找到答案。我唯一能找到的就是“全选”选项。不是我想要的。 理想情况下,当用户选中“管理包”旁边的复选框时,我想要“Chrome外观组”和“远程启动” 下面是代码和我在这方面的基本尝试,但它不起作用。提前谢谢。 超文本标记语言: Javascript 我不知道这个Ja

  • 我在这里使用这个示例代码创建一个JTree,其中所有的叶子都有一个复选框。我遇到的问题是,我还需要能够选择节点对象,而不必勾选复选框。在我的用例中,勾选复选框将使某些内容可见或隐藏,但选择节点将允许在UI的单独部分编辑对象。最好的方法是什么?是否可以检测何时单击复选框的“框”部分,或者是否选中节点? 我看到的另一个错误是,当文件夹有子元素时,文件夹左侧的指示器正确显示文件夹已打开: 但是如果'文件

  • 问题内容: 我有一个Django应用程序,想要在用户的个人资料中显示多个选择复选框。然后,他们将能够选择多个项目。 这是我的models.py的简化版本: 和我的形式课: 还有我的views.py: 我可以看到POST仅发送一个值: 并且本地vars参数正在发送一个列表: 所有表单字段都显示正确,但是当我提交POST时,我得到一个错误 错误绑定参数7-可能是不受支持的类型。 我是否需要在视图中进一