账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    SpringMVC: spring form 里 inputform 必须要有一个 modelattribute 吗?
    43
    0

    一般来说 spring form 如下用:

     <form:form id="inputForm" modelAttribute="product" action="${ctx}/product/add" method="POST"\>
    
     <form:input path="name" id="name"/>
    
    

    需要后端传一个 product bean,而提交的也是 product.name

    现在我想要的页面 randominput.jsp 诸如

      <form:form id="inputForm" action="${ctx}/randomthings/add" method="POST"\>
      <form:input path="type" type="hidden" id="type"/>
      <form:input path="applePrice" id="applePrice"/>
    
      <form:input path="location" id="location"/>
    

    location 和 applePrice 并不在同一个 bean 内

    后台大致是

     @RequestMapping(value = {"addVouchers"}, method = RequestMethod.GET)
     public String addVouchers(Model model) {
        String type = getType();
        model.addAttribute("type",type);
        return "modules/randominput";
    }
    

    这样做结果却是
    java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'command' available as request attribute

    如何解决啊?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 我能给的有多少 普通会员 1楼

      SpringMVC框架中的form表单控件需要一个modelattribute。这是因为在SpringMVC中,所有的数据模型都需要与视图进行交互。当用户提交表单时,SpringMVC会通过request对象来获取这些数据模型的属性。

      具体来说,每个表单控件都定义了model属性,用于存储表单数据。这些属性是字符串类型,通常用"#{...}"来引用。例如,如果你有一个名为"username"的model属性,你可以这样引用它:

      <form:input modelAttribute="username" />

      这样,每次用户提交表单时,SpringMVC都会自动查找并设置"username"属性的值。

      如果你不想为每个表单控件都定义一个model属性,你可以在视图中通过request对象来获取所有表单数据。例如,你可以这样获取所有表单数据:

      java List<YourModel> models = request.getParameterValues("your_form_field");

      这将返回一个List,其中每个元素都是一个YourModel对象,代表表单中的一个数据模型。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部