草庐IT

java - bean 名称 'categoryOptions' 的 BindingResult 和普通目标对象都不能用作请求属性

coder 2023-11-05 原文

我知道有很多关于这个主题的话题,我已经尝试了其中的大部分,但仍然无法解决我的问题。我正在使用 SpringMVCMongoDB 我正在尝试实现是,我将在数据库中存储一些数据,然后我将从数据库中将其检索回选择选项。这是我的代码。

Jsp页面..

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="http://www.springframework.org/tags/form" prefix="f"%>
    <%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<!DOCTYPE html>
<html lang="en">
    <title>Master Referral</title>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width= device-width, initial-scale=1">
        <link type="text/css" rel="stylesheet" href='<spring:url value="/resources/css/bootstrap.min.css" />' >
        <link type="text/css" rel="stylesheet" href='<spring:url value="/resources/css/stylesvitalbeat.css" />' >


    </head>
    <body>
 <div class="container-fluid">
<div class="row">
                 <form action="http://localhost:8080/LoginMavenSpringMVC/admin/create" method="post">
                 <div class="col-md-2 col-sm-3">
                     <label class="control-label">Create Category:</label></div>
                     <div class="col-md-2 col-sm-4">
                   <input type="text" class="form-control input-sm field_color"  name="categoryName" placeholder="Name of the Category">
                         </div>
                     <div class="col-md-1 col-sm-3">
                <input type="submit" class="btn btn-primary btn-sm   height_margin"  name="create" value="Create">
                     </div>
                      </form>
<div>
<form class="form-horizontal" action="http://localhost:8080/LoginMavenSpringMVC/admin/saveReferral" method="post">
         <div class="row margin_div">
            <div class="col-sm-3 col-md-2">
                <label class="control-label">Select Category</label>
            </div>
             <div class="col-sm-5 col-md-4">
             <f:select path="categoryOptions">
            <f:options items="${list}"/>
         </f:select>
                              </div>

                </div>

</div>

Controller 类

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import com.java.Dao.services.RegisterDao;
import com.java.Dao.services.RegisterDaoImplementaion;

@Controller
@RequestMapping("/admin")
public class ReferralController {

    @Autowired
    RegisterDao registerDao;

    @RequestMapping(value="/create", method=RequestMethod.POST)
    public ModelAndView create(@ModelAttribute("create") Category create){
        ModelAndView model =new ModelAndView("referralPage");
        System.out.println("Referral Controller.");     
    System.out.println( create.getCategoryName());
    if((StringUtils.hasText(create.getId()))) {
        registerDao.UpdateCategory(create);
    } else {
        registerDao.addCategory(create);
    }
    List<Category> list= registerDao.categoryList();
    model.addObject("list", list);
   return model;
    }

    @RequestMapping(value="/saveReferral", method=RequestMethod.POST)
    public ModelAndView save(@ModelAttribute("saveReferral") Referrals referral){
        ModelAndView model=new ModelAndView("referralPage");        
        return model;
    }
}  

道服务

dao class...
package com.java.Dao.services;

import java.util.List;
import com.java.Package.Login.Category;


public interface RegisterDao {
public void addCategory(Category createCategory);
    public void UpdateCategory(Category createCategory);
    public List<Category> categoryList();
}  

道实现

import java.util.List;
import java.util.UUID;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Repository;
import com.java.Package.Login.Category;
import com.mongodb.DBCollection;


@Repository
public class RegisterDaoImplementaion implements RegisterDao {

    @Autowired
    private MongoTemplate mongoTemplate;
    public static final String Collection_Category="CategoryList";
public void addCategory(Category createCategory) {
        // TODO Auto-generated method stub

        createCategory.setId(UUID.randomUUID().toString());
        System.out.println("Object in Repos::"+createCategory);
        mongoTemplate.insert(createCategory, Collection_Category);
    }
    public void UpdateCategory(Category createCategory) {
        // TODO Auto-generated method stub
        mongoTemplate.insert(createCategory, Collection_Category);      
    }
    @Override
    public List<Category> categoryList() {      
        return mongoTemplate.findAll(Category.class, Collection_Category);
    }
}

映射类别选项的类

public class Referrals {
    private String categoryOptions;

    public String getCategoryOptions() {
        return categoryOptions;
    }

    public void setCategoryOptions(String categoryOptions) {
        this.categoryOptions = categoryOptions;
    }
}

我收到此错误日志

Servlet.service() for servlet [spring-dispatcher] in context with path [/LoginMavenSpringMVC] threw exception [An exception occurred processing JSP page /WEB-INF/views/referralPage.jsp at line 366

363:             </div>
364:              <div class="col-sm-5 col-md-4">
365:              
366:              <f:select path="categoryOptions">
367:                <f:options items="${list}"/>
368:              </f:select>
369:             <!--  <select class="form-control input-sm" name="categoryOptions" >


Stacktrace:] with root cause
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'categoryOptions' available as request attribute

我哪里错了?我尝试了不同问题的解决方案,但无法解决。

最佳答案

您缺少将 Referrals 对象添加到模型。

    @RequestMapping(value="/saveReferral", method=RequestMethod.POST)
    public ModelAndView save(@ModelAttribute("saveReferral") Referrals referral){
        ModelAndView model=new ModelAndView("referralPage");     
        model.addAttribute("categoryOptions",new Referrals());   //or referral
        return model;
    }

异常发生是因为 <f:select path="categoryOptions"> ,你提到了categoryOptions在路径中但不在你的位置 returning对此jspcategoryOptions .

更新: 所以这表示每当您加载 referral jsp , 你必须加载 categoryOptions bean

并在下面的行中使用 model.addObject() 将列表添加到模型中但是路径变量 categoryOptions不见了。所以在 model.addObject("list", list); 行之后添加 model.addAttribute("categoryOptions", new Referrals());

<f:select path="categoryOptions">
   <f:options items="${list}"/>
</f:select>

关于java - bean 名称 'categoryOptions' 的 BindingResult 和普通目标对象都不能用作请求属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39695674/

有关java - bean 名称 'categoryOptions' 的 BindingResult 和普通目标对象都不能用作请求属性的更多相关文章

  1. ruby-on-rails - rails : "missing partial" when calling 'render' in RSpec test - 2

    我正在尝试测试是否存在表单。我是Rails新手。我的new.html.erb_spec.rb文件的内容是:require'spec_helper'describe"messages/new.html.erb"doit"shouldrendertheform"dorender'/messages/new.html.erb'reponse.shouldhave_form_putting_to(@message)with_submit_buttonendendView本身,new.html.erb,有代码:当我运行rspec时,它失败了:1)messages/new.html.erbshou

  2. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  3. ruby-on-rails - Rails 3.2.1 中 ActionMailer 中的未定义方法 'default_content_type=' - 2

    我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer

  4. ruby - 在 jRuby 中使用 'fork' 生成进程的替代方案? - 2

    在MRIRuby中我可以这样做:deftransferinternal_server=self.init_serverpid=forkdointernal_server.runend#Maketheserverprocessrunindependently.Process.detach(pid)internal_client=self.init_client#Dootherstuffwithconnectingtointernal_server...internal_client.post('somedata')ensure#KillserverProcess.kill('KILL',

  5. ruby - 主要 :Object when running build from sublime 的未定义方法 `require_relative' - 2

    我已经从我的命令行中获得了一切,所以我可以运行rubymyfile并且它可以正常工作。但是当我尝试从sublime中运行它时,我得到了undefinedmethod`require_relative'formain:Object有人知道我的sublime设置中缺少什么吗?我正在使用OSX并安装了rvm。 最佳答案 或者,您可以只使用“require”,它应该可以正常工作。我认为“require_relative”仅适用于ruby​​1.9+ 关于ruby-主要:Objectwhenrun

  6. ruby - 无法让 RSpec 工作—— 'require' : cannot load such file - 2

    我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳

  7. ruby-on-rails - Rails HTML 请求渲染 JSON - 2

    在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这

  8. ruby-on-rails - 新 Rails 项目 : 'bundle install' can't install rails in gemfile - 2

    我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="

  9. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  10. ruby-on-rails - rspec should have_select ('cars' , :options => ['volvo' , 'saab' ] 不工作 - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion在首页我有:汽车:VolvoSaabMercedesAudistatic_pages_spec.rb中的测试代码:it"shouldhavetherightselect"dovisithome_pathit{shouldhave_select('cars',:options=>['volvo','saab','mercedes','audi'])}end响应是rspec./spec/request

随机推荐