2016-07-24 16 views
0

我真的试图从表单参数的DTO对象来获取,我点击了按钮,但没有happaning,它似乎是数据传输的心不是春天的Web应用程序 - 获取表单数据 - POST方法

为什么那?

Cntroller:

@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.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspTagException: Neither BindingResult nor plain target object for bean name 'scanForm' available as request attribute

更新错误 - 2

org.apache.jasper.JasperException: org.springframework.beans.NotReadablePropertyException: Invalid property 'seller_name' of bean class [com.searcher.model.UserRequestDTO]: Bean property 'seller_name' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?

回答

2

您的文章的切入点是/scanRequest但你提交给/requestlist,就因为你的目标不是映射方法正确的失败。

如果/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">... 

编辑:

你的scanForm是不存在当渲染页面包含荷兰国际集团的形式,所以你必须添加它,这种方法添加到您的控制器:

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

编辑2:

添加一个正确的getter到模型:

public String getSellerName() { 
     return seller_name; 
    } 

这不属于适当的吸气剂属性seller_name更改为

public String getSeller_name() { 
    return seller_name; 
} 

让您的IDE自动生成它们。

+0

你说得对,当我改变它后,它会抛出一个错误(我将它添加到我的问题中) – Guyb

+0

我添加了它,但另一个错误,我不明白我是什么做错了.. – Guyb

+0

@Guyb检查我的编辑,你的getter是错误的,会议是得到+ firtLetterto大写+你的属性名称的其余部分 –

相关问题