Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
在jsp编辑时的下拉列表中选择正确的值_Jsp_Spring Mvc - Fatal编程技术网

在jsp编辑时的下拉列表中选择正确的值

在jsp编辑时的下拉列表中选择正确的值,jsp,spring-mvc,Jsp,Spring Mvc,ClientBean import java.util.ArrayList; import java.util.Date; public class ClientBean { private Integer clientid; private String clientname; private String paymenttype; private Date joiningdate; private String email; private

ClientBean

import java.util.ArrayList;
import java.util.Date;

public class ClientBean {
    private Integer clientid;
    private String clientname;
    private String paymenttype;
    private Date joiningdate;
    private String email;
    private ArrayList<String> paymentnames;
    public ArrayList<String> getPaymentnames() {
        return paymentnames;
    }
    public void setPaymentnames(ArrayList<String> paymentnames) {
        this.paymentnames = paymentnames;
    }



    public Integer getClientid() {
        return clientid;
    }
    public void setClientid(Integer clientid) {
        this.clientid = clientid;
    }
    public String getClientname() {
        return clientname;
    }
    public void setClientname(String clientname) {
        this.clientname = clientname;
    }
    public String getPaymenttype() {
        return paymenttype;
    }
    public void setPaymenttype(String paymenttype) {
        this.paymenttype = paymenttype;
    }
    public Date getJoiningdate() {
        return joiningdate;
    }
    public void setJoiningdate(Date joiningdate) {
        this.joiningdate = joiningdate;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
}
import java.util.ArrayList;
导入java.util.Date;
公共类ClientBean{
私有整数clientid;
私有字符串clientname;
私有字符串paymenttype;
私人日期合并日期;
私人字符串电子邮件;
私人ArrayList paymentnames;
公共阵列列表getPaymentnames(){
返回PaymentName;
}
public void setPaymentnames(ArrayList paymentnames){
this.paymentnames=paymentnames;
}
公共整数getClientid(){
返回客户ID;
}
public void setClientid(整数clientid){
this.clientid=clientid;
}
公共字符串getClientname(){
返回clientname;
}
public void setClientname(字符串clientname){
this.clientname=clientname;
}
公共字符串getPaymenttype(){
返回付款类型;
}
公共void setPaymenttype(字符串paymenttype){
this.paymenttype=paymenttype;
}
公共日期getJoiningdate(){
返回接合日期;
}
公共无效设置加入日期(加入日期){
this.joiningdate=joiningdate;
}
公共字符串getEmail(){
回复邮件;
}
公用电子邮件(字符串电子邮件){
this.email=电子邮件;
}
}
ClientController

@RequestMapping(value = "/edit", method = RequestMethod.GET)
    public ModelAndView editClient(@ModelAttribute("command")  ClientBean clientBean,
            BindingResult result){
        Map<String, Object> model = new HashMap<String, Object>();
        model.put("client", prepareClientBean(clientService.getClient(clientBean.getClientid())));
        return new ModelAndView("addClient", model);
    }


private ClientBean prepareClientBean(Client client){
        ClientBean bean = new ClientBean();
        ArrayList<String> modes = new ArrayList<String>();
        modes.add("Monthly");
        modes.add("Quaterly");
        modes.add("Half-Yearly");
        modes.add("Yearly");
        bean.setPaymentnames(modes);
        bean.setClientname(client.getClientname());
        bean.setEmail(client.getEmail());
        bean.setJoiningdate(client.getJoiningdate());
        bean.setPaymenttype(client.getPaymenttype());
        bean.setClientid(client.getClientid());
        return bean;
@RequestMapping(value=“/edit”,method=RequestMethod.GET)
public ModelAndView editClient(@modeldattribute(“command”)ClientBean ClientBean,
BindingResult(结果){
映射模型=新的HashMap();
put(“client”,prepareClientBean(clientService.getClient(clientBean.getClientid()));
返回新模型和视图(“添加客户端”,模型);
}
私有客户端Bean prepareClientBean(客户端){
ClientBean=新ClientBean();
ArrayList模式=新建ArrayList();
模式。添加(“每月”);
模式。添加(“四分之一”);
模式。添加(“半年”);
模式。添加(“年度”);
setPaymentnames(模式);
setClientname(client.getClientname());
setEmail(client.getEmail());
setJoiningdate(client.getJoiningdate());
setPaymenttype(client.getPaymenttype());
setClientid(client.getClientid());
返回豆;

addClient.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Add Client Data</title>
    </head>
    <script>src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <body>
        <h2>Add Client Data</h2>
        <form:form method="POST" action="/ClientDetails/save.html" onsubmit="return ValidateForm();">
            <table>
                <tr>
                    <td><form:label path="clientid">Client ID:</form:label></td>
                    <td><form:input path="clientid" value="${client.clientid}" readonly="true"/></td>

                </tr>
                <tr>
                    <td><form:label path="clientname">Client Name:</form:label></td>
                    <td><form:input path="clientname" value="${client.clientname}"/></td>

              <tr>
                    <td><form:label path="paymenttype">Client Payment Type:</form:label></td>
                   <td><form:select path="paymenttype">
                        <form:options items="${client.paymentnames}" itemValue="{client.clientid}" />
                    </form:select></td>
                </tr>
                <tr>
                    <td><form:label path="joiningdate">Client Joining Date:</form:label></td>
                    <td><form:input path="joiningdate" value="${client.joiningdate}"/></td>
                </tr>
                 <tr>
                    <td><form:label path="email">Client Email:</form:label></td>

                  <td><form:input path="email" value="${client.email}"/></td>
                </tr>
               <tr>
                  <td colspan="2"><input type="submit" value="Submit"/></td>
              </tr>
            </table> 
        </form:form>


  <c:if test="${!empty clients}">
        <h2>List Clients</h2>
    <table align="left" border="1">
        <tr>
            <th>Client ID</th>
            <th>Client Name</th>
            <th>Payment Type</th>
            <th>Joining Date</th>
            <th>Client Email</th>
        </tr>

        <c:forEach items="${clients}" var="client">
            <tr>

                <td><c:out value="${client.clientid}"/></td>
                <td><c:out value="${client.clientname}"/></td>
                <td><c:out value="${client.paymenttype}"/></td>
                <td><c:out value="${client.joiningdate}"/></td>
                <td><c:out value="${client.email}"/></td>
                <td align="center"><a href="edit.html?clientid=${client.clientid}">Edit</a> </td>
            </tr>
        </c:forEach>
    </table>
</c:if>
    </body>
</html>

添加客户端数据
src=”https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js">
添加客户端数据
客户端ID:
客户名称:
客户付款类型:
客户加入日期:
客户电子邮件:
列出客户
客户端ID
客户名称
支付类型
加入日期
客户电子邮件

如何在jsp中的paymentNames下拉列表中选择正确的值?

请尝试在
表单中添加
itemValue=“paymenttype”
:选择
。Spring将选择通过
路径匹配的选项值

<form:select path="paymenttype" itemValue="paymenttype">
   <form:options items="${client.paymentnames}"  />
</form:select>
但是,在更新了
客户端之后,您将其保存在不同的模型属性(即客户端)名称中,如下所示:

model.put("client", prepareClientBean(clientService.getClient(clientBean.getClientid())));
因此绑定操作无法正常工作

解决方案

因此,如果您更改模型名称并形成与之相关的元素,它可能会起作用

模型名称与@modeldattribute(“命令”)相同:

和弹簧形式:

<form:select path="paymenttype">
    <form:options items="${command.paymentnames}"  />
</form:select>

另外:
Java使用camelcase语法来命名类、接口、方法和变量。您应该使用
paymentType
而不是
paymentType

谢谢您的回答,同样的方法不适用于编辑操作。
model.put("command", prepareClientBean(clientService.getClient(clientBean.getClientid())));
<form:select path="paymenttype">
    <form:options items="${command.paymentnames}"  />
</form:select>
@ModelAttribute("client") ClientBean clientBean

model.put("client", prepareClientBean(clientService.getClient(clientBean.getClientid())));

<form:form method="POST" modelAttribute="client">
 <form:select path="paymenttype">
    <form:options items="${client.paymentnames}"  />
 </form:select>
</form:form>