我现在已经完成了一些MVC控制器并使用spring form标签来回传递数据但我现在意识到我的实际理解有点薄。在我目前的情况下,我实际上只能将响应作为url参数发送,但是大约有15个,如果可能的话,我更愿意将它作为pojo发送。
我的实际问题是...是否可以在jsp中设置spring样式模型属性而不传入属性并且不使用表单标签?
例如,
的内容//Pojo
Class personclass
{
private String name + getters and setters
private String address + getters and setters
private String phone + getters and setters
...
}
////first mvc call
@RequestMapping ("/")
Public ModelAndView LandingPage()
{
// no mention of Person pbject
Return mandvobject;
}
//jsp page
//This is the question!
SET ModelAttribute that wasn't passed in to the page
personclass = X
//New MVC call without a submit
window.open ("/NewMVCCall")
//New mvc call
@RequestMapping ("/NewMVCCall")
Public void newMVCPage(@ModelAttribute ("pc") personclass pc, Model model)
{
//process pc object
}
或者我错过了这一点,我必须将其作为json字符串参数发送?抱歉,我对此的掌握非常简陋,我不确定我是否可以很容易地设置我自己的http表单内容,或者是否因为我到目前为止使用了Spring表单对象,所以我还没有意识到正在发生的事情的复杂性在幕后(即表格标签将pojos转换为json等)?
非常感谢有人有时间让我走上正确的道路......
答案 0 :(得分:0)
我不确定我是否正确理解了您的问题,但您可以将模型链接到您的控制器,而无需在每次需要时手动将其传递给视图,Spring将负责:
控制器中的:
public class MyController{
@ModelAttribute("pc")
public PersonneClass getPersonnelClass(){
return new PersonneClass();
}
@RequestMapping ("/NewMVCCall")
Public void newMVCPage(@ModelAttribute ("pc") personclass pc, Model model)
{
//process pc object
}
//other methods
}
在命名类时遵循java约定是一种很好的做法 (personneClass)必须以大写(PersonneClass)开头。