首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.lang.IllegalStateException: bean名称“newReward”的BindingResult或普通目标对象都不能作为请求属性使用

java.lang.IllegalStateException: bean名称“newReward”的BindingResult或普通目标对象都不能作为请求属性使用
EN

Stack Overflow用户
提问于 2013-03-07 09:16:17
回答 1查看 2.4K关注 0票数 0

我是Spring的新手,遵循"Spring in Action“一书,从零开始创建我自己的项目。当我试图达到“奖励. get”时,我得到以下异常:

java.lang.IllegalStateException: bean名称的BindingResult或普通目标对象都不能作为请求属性使用

我的课程内容:

reward.jsp

代码语言:javascript
复制
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="sf"%>
<html>
<head>
<title>Rewards</title>
</head>
<body>
    <h1>Rewards module</h1>

<h2>Add reward</h2>
<sf:form action="add" method="post" modelAttribute="reward">
    Reward name:<sf:input path="name" />
    Point value:<sf:input path="pointValue" />
    <input type="submit" value="Add">
</sf:form>


<br />
<h2>Reward list</h2>
<table>
    <c:forEach var="reward" items="${rewardList}">
        <tr>
            <td>${reward.name}</td>
            <td>${reward.pointValue}</td>
            <td><a href="delete/${reward.id}">delete</a></td>
        </tr>
    </c:forEach>
</table>

当我删除表单输入时,它工作得很好。

RewardController.java

代码语言:javascript
复制
@Controller
public class RewardController {

@Autowired
private RewardService rewardService;

@RequestMapping("/reward")
public String listRewards(Map<String, Object> model) {
    model.put("rewardList", rewardService.listReward());
    return "reward";
}

@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addReward(@ModelAttribute("reward") Reward reward,
        BindingResult result) {

    rewardService.addReward(reward);
    return "redirect:/reward";
}

@RequestMapping("/delete/{rewardId}")
public String deleteContact(@PathVariable("rewardId") long rewardId) {
    rewardService.removeReward(rewardId);
    return "redirect:/reward";
}
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-07 10:15:33

更改listRewards方法,以便将表单支持对象添加到模型映射model.put("reward", new Reward())中。

代码语言:javascript
复制
@RequestMapping("/reward")
public String listRewards(Map<String, Object> model) {
    model.put("rewardList", rewardService.listReward());
    model.put("reward", new Reward())
    return "reward";
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15267187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档