无法显示 jsp 页

绑定结果和 Bean 名称“user” 的纯目标对象都不能作为请求属性


2019 年 4 月 05 日 9:18:13 AM 组织.apache.catalina.core.标准包装阀调用严重: Servlet.service() 在上下文中与路径 [/数据可视化] 抛出异常 [发生异常处理 JSP 页面 /WEB-INF/视图/AddUserForm.jsp在第 23 行


20:21:

22:输入名称:23:24:25:

26:保存


堆栈跟踪:] 具有根本原因 java.lang.非法状态异常:绑定结果和纯目标对象在组织上既不能作为请求属性,也不能作为请求属性。(宾德状态.java:153)


package com.datavisualization.controller;



import org.apache.log4j.Logger;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.validation.BindingResult;

import org.springframework.web.bind.annotation.ModelAttribute;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;


import com.datavisualization.model.User;


@Controller

@RequestMapping("restApi/dataVizualization")

public class GetUserData {

private static Logger logger=Logger.getLogger(GetUserData.class);

@RequestMapping(value="adduser")

public String addUserForm()

{

    logger.info("===addUserForm ");

    return "AddUserForm";

}

@RequestMapping(value="save", method=RequestMethod.POST)

public void saveUser(@ModelAttribute("user") User user,BindingResult                                          result,Model model)

{

    System.out.println("=== save user method");

}

}

模型类:包网站数据可视化模型;


import java.io.Serializable;


public class User implements Serializable {


private static final long serialVersionUID = 1L;


private String name;


public User() {

super();

// TODO Auto-generated constructor stub

}

public User( String name) {

super();


this.name = name;

}



public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}


米脂
浏览 233回答 2
2回答

一只甜甜圈

下面的方法调用用户表单,但在这里你没有提到JSP中使用的模型属性,这就是为什么你得到一个错误。因为在你的JSP页面中不知道什么是用户。所以你需要在控制器中提到用户属性@RequestMapping(value="adduser")public String addUserForm(){    logger.info("===addUserForm ");    return "AddUserForm";}解决方案是,将方法更改为此@RequestMapping(value="adduser")public String addUserForm(Model model){    logger.info("===addUserForm ");    model.addAttribute("user", new User());    return "AddUserForm";}和更改为您错过/在映射中。这是最佳实践。@RequestMapping("restApi/dataVizualization")@RequestMapping("/restApi/dataVizualization")祝你好运

翻过高山走不出你

为什么使用绑定结果?我只将绑定结果与@Valid一起使用。尝试删除绑定结果,我认为它会起作用!@RequestMapping(value="save", method=RequestMethod.POST)public void saveUser(@ModelAttribute("user") User user,Model model){    System.out.println("=== save user method");}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java