@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...
}
}