Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
@modeldattribute如何将数据发送到jsp_Jsp_Spring Mvc_Modelattribute_Model View - Fatal编程技术网

@modeldattribute如何将数据发送到jsp

@modeldattribute如何将数据发送到jsp,jsp,spring-mvc,modelattribute,model-view,Jsp,Spring Mvc,Modelattribute,Model View,我有一个问题。我正在@modeldattribute中的函数上使用@formController @ModelAttribute("modelAttrVar") public ModelAttr function(){ ModelAttr obj = new ModelAttr(); //...code return obj; } 但此模型属性未添加到我返回的ModelAndView public ModelAndView func2(){ ModelAndVi

我有一个问题。我正在
@modeldattribute
中的函数上使用
@formController

@ModelAttribute("modelAttrVar")
public ModelAttr function(){
    ModelAttr obj = new ModelAttr();
    //...code
    return obj;
}
但此模型属性未添加到我返回的ModelAndView

public ModelAndView func2(){
    ModelAndView obj = new ModelAndView();
    obj.addAttribute("variableName" , value);
    obj.setViewName("viewName");
    return obj;
}
现在,当我看到jsp时,模型属性变量
modelatrvar
在jsp中可用,并给出值。怎么做


请帮忙

有点不清楚

@modeldattribute
注释用于将jsp中的表单绑定到控制器,以使html表单中编写的所有字段在控制器中可用

因此,基本上,在post请求(表单提交)之后,用
@modeldattribute
注释的方法应该作为
着陆点
方法工作

让我们举个例子,你有一个POJO,有两个变量:

public class ModelAttrExample {

String name;
String lastName;

///getter and setter...
}
JSP indexForm.JSP

<form:form action="/greeting" >
 <form:input path="name" />
 <form:input path="lastName" />

 <input type="submit" value="Submit" />
</form:form>
提交表单后,将触发
greetingSubmit()
方法,并在该方法中提供填充表单数据的
modelatrtexample
实例

所以@ModelAttribute用于从html表单字段获取值,并将这些数据放入类实例变量中

我建议您从, 它写得很好,很容易理解


如果您需要更多信息,请随时询问:)

谢谢,先生。。。谢谢你的答复。事实上,当我们从列表屏幕打开一条记录时。调用转到FormController,然后转到modelAttribute函数@modelAttribute(“modelAttrVar”)公共ModelAttr函数(){},该函数从数据库中提取特定记录。然后在func2()之后,我们接收modelAndView,最后转到jsp。然后在jsp中,我们得到modelAttrVar模型属性,如${modelAttrVar.var1}。这意味着当打开一条记录时,我们从未将此modelAttrVar添加到ModelAndView,但它仍然会转到jsp,来自modelAttrVar对象的数据填充jsp页面上的相关字段。怎么做?我还是不明白你的流程,你说“那么在func2()之后我们会收到modelAndView”,谁在调用func2()?您如何使用该方法接收模型和视图?例如,如果您只需要从列表中显示记录selectec,您可以触发一个通过get id传递的方法,从数据库中获取数据,然后使用model.addAttribute(“modelAttrVar”,youExtracteInstanceOfModelAtrVar)呈现提取的值;然后在jsp中,使用${modelatrvar.var1}获取值,请显示整个代码并准确解释您需要做什么
@Controller
public class GreetingController {

@RequestMapping(value="/greeting", method=RequestMethod.GET)
public String greetingForm(Model model) {
    model.addAttribute("", new ModelAttrExample ());
    return "indexForm";
}

@RequestMapping(value="/greeting", method=RequestMethod.POST)
public String greetingSubmit(@ModelAttribute ModelAttrExample example, Model model) {

   example.getName();//same form value
   example.getLastName(); //same form value
   //do your logic here...
   }
}