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

Spring web应用程序-获取表单数据-发布方法

印季
2023-03-14

我正在尝试从表单参数获取到 DTO 对象,我单击了按钮,但没有任何令人满意的内容,似乎数据没有传输

这是为什么呢?

控制器:

@RequestMapping(value = "/scanRequest", method = RequestMethod.POST)
public String scanRequest(@ModelAttribute("scanForm")UserRequestDTO userRequestDTO, BindingResult bindingResult, Model model) {

    if (bindingResult.hasErrors()) {
        return "home";
    }

    model.addAttribute("msg", userRequestDTO.getSellerName());


    return "home";
}

DTO:

public class UserRequestDTO {

    private String seller_name;

    public String getSellerName() {
        return seller_name;
    }

    public void setSellerName(String sellerName) {
        seller_name = sellerName;
    }
}

HTML表单:

<form:form method="POST" action="${contextPath}/requestlist" modelAttribute="scanForm" class="form-signin">
    <h2 class="form-signin-heading">Create your account</h2>
    <spring:bind path="seller_name">
        <div class="form-group ${status.error ? 'has-error' : ''}">
            <form:input type="text" path="seller_name" class="form-control" placeholder="Seller Name" autofocus="true"></form:input>
            <form:errors path="seller_name"></form:errors>
        </div>
    </spring:bind>

    <button class="btn btn-lg btn-primary btn-block" type="submit">Submit</button>
</form:form>

更新错误:

org . Apache . jasper . jasper异常:javax . servlet . servlet异常:javax . servlet . JSP . JSP异常:bean名称“scanForm”的BindingResult和plain target对象都不能用作请求属性

更新错误-2

org.apache.jasper.JasperExc的:org.springframework.beans.的无效属性seller_namebean类[com.searcher.model.用户请求DTO]:Bean属性seller_name不可读或具有无效的getter方法:getter的返回类型是否与setter的参数类型匹配?

共有1个答案

汪安然
2023-03-14

您的post入口点是< code>/scanRequest,但是您提交到< code>/requestlist失败,因为您没有将正确的映射方法作为目标。

如果< code>/requestlist是控制器(包含scanRequest方法的控制器)的请求映射,则将您的表单更改为:

<form:form method="POST" 
action="${contextPath}/requestlist/scanRequest" 
modelAttribute="scanForm"  class="form-signin">...

如果是不是,而您的控制器执行

   <form:form method="POST" 
    action="${contextPath}/scanRequest" 
    modelAttribute="scanForm"  class="form-signin">...

编辑:

呈现包含表单的页面时,您的< code>scanForm不存在,因此您必须添加它,将此方法添加到您的控制器中:

@ModelAttribute("scanForm")
public UserRequestDTO getScanForm(){
  return new UserRequestDTO();
}

编辑2:

为您的模型添加正确的吸气剂:

public String getSellerName() {
        return seller_name;
    }

这不是属性seller_name的正确getter,请将其更改为

public String getSeller_name() {
    return seller_name;
}

或者让IDE自动生成它们。

 类似资料:
  • 据我所知,在APK下的google开发者控制台中有一个名为“UNPUBLISH”的选项。 在添加ManageAPK之后,google实际上删除了对APK的访问。 不幸的是,我在生产中上传了APK而不是BETA版,我需要删除/取消发布该应用程序。 我怎么能做到呢? 解决这个问题的最佳流程是什么。 我检查了所有与我的问题类似的问题,但所有答案都过时了,因为古尔奇添加了Manage APK来代替APK。

  • 问题内容: 我必须承认我有点困惑…我以前从未做过,而且我显然缺少一些东西 当我通过http.post将数据传递到我的php文件时,我似乎无法收集数据… 有人可以告诉我为什么这行不通吗? FormData会显示在控制台日志中,并且可以确定正在写入文件。但是,看起来好像没有数据传递。 这是在我的php文件中。试图将提交表单中的数据写入文件中(只是测试)。 问题答案: 经过大量研究后,我发现这有点像ph

  • 可以使用方法从服务器获取数据,使用方法将数据发布到服务器吗?

  • 问题内容: 我的代码: 我试图使用提取API发布表单,它发送的正文如下: (我不知道为什么每次发送时边界数字都会更改…) 我希望它使用“ Content-Type”:“ application / x-www-form- urlencoded”发送数据,我该怎么办?或者,如果我只需要处理它,如何在控制器中解码数据? 向谁回答我的问题,我知道我可以做到: 我想要的是类似jQuery中的$(“#for

  • 下面的代码是一个HTML表单,我想要做的是从该表单中获取输入,将其保存到会话存储,并能够跨页传输。 我知道通常如何这样做,但特别是对于HTML表单,这对我不起作用。 因此,如果一个用户在Conor中输入一个用户名,我希望该用户名保存到会话存储中,这样我就可以获得该用户名并在另一个页面上使用它 当我尝试从会话存储获取该输入时,它当前没有获取该输入,并且它什么也不做。 所以如果有人能向我解释一下我在获

  • 问题内容: 我是golang的新手,熟悉http包。我在获取使用邮递员发送的邮政数据时遇到麻烦。 是我的URI。我正在传递键:值:使用表单数据。我尝试了以下方法 但是这些方法都不起作用。我得到的回应是空洞的。 以下是我的代码: 当我打印要求时,我得到以下信息: 解决方案: 我找到了解决方案。既然,content-type是我解析表格的正确方法是使用http方法。 问题答案: 您使用的不正确。使用时