java - 如何获取表单:select in a Spring MVC的选定项目id和值

标签 java spring spring-mvc

我是 Spring 新手,我想获取下拉列表中所选项目的 idvalue。这是一个简单的例子

class MaritalStatus{
    private int id;
    private String status;
}

class regForm{
    private MaritalStatus maritalStatus;
    ...
}

//填充列表的简单 Controller

@RequestMapping(value = "/save")
public String init(Model model){
    List<MaritalStatus> maritalList = new ArrayList<MaritalStatus>();
    maritalStatus.setId(1)
    maritalStatus.setStatus("Married")
    maritalList.add(maritalStatus);// add all status to the list....

    model.addAttribute("maritalList",maritalList);
    ...
}

jsp页面

<form:form commandName="regForm" action="save">
    <form:select path="maritalStatus.id">
        <form:options items="${maritalList}" itemValue="id" itemLabel="status" />
    </form:select>
</form:form>

这是我想要获取所选项目 ID 和值(1 和已婚)的地方

@RequestMapping(value = "/save")
public String save(Model model,@ModelAttribute("regForm") RegForm regForm){
    // here I want to get selected item Id and Status(Label)
    //regFrom.getMaritalStatus().getId() and regFrom.getMaritalStatus().getStatus()
}

最佳答案

您至少可以通过两种方式实现这一目标:

  1. 仅发送所选 MaritalStatus 的 id(实际上是在 jsp 中执行的),将其直接绑定(bind)到 regForm.maritalStatusId,然后(当您需要时)通过所选 id 从 maritalList 获取 MaritalStatus(你必须保留 maritalList 或在某个地方创建它,无论如何你都会这样做)

  2. 将您的选择直接绑定(bind)到 regForm.maritalStatus <form:select path="maritalStatus">并编写一个专门的格式化程序,可以将 id 转换为 MaritalStatus 对象,反之亦然。您可以在此处找到如何执行此操作的更多信息:http://docs.spring.io/spring/docs/4.0.0.RELEASE/spring-framework-reference/html/validation.html#format

[您还可以发送所选字段的 id 以及隐藏字段中的值,然后尝试在服务器端从这些内容构建 MaritalStatus,但这并不优雅。]

关于java - 如何获取表单:select in a Spring MVC的选定项目id和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22421628/

相关文章:

ajax - 406 Not Acceptable : Spring 3. 2 + JSON + AJAX

java - JFrame : Getting actual content size

java - 如何在java中标记字符串时转义分隔符

java - 如何让线程等待服务器响应

java - Spring BOM 发布和依赖项的方法如何工作?

spring - 将 spring-boot 配置为仅针对特定依赖项自动配置以进行测试

spring - Tomcat 无法启动应用程序

java - 如何使用 Jquery AJAX 调用 Spring Controller 方法

java - 使用 java、thymeleaf 和 spring mvc 形成表格

java - 为什么Java构造函数不能同步?