Java 将对象从视图传递到控制器或从控制器传递到控制器

Java 将对象从视图传递到控制器或从控制器传递到控制器,java,spring,spring-mvc,Java,Spring,Spring Mvc,我对spring mvc有疑问 是否可以将对象从视图传递到控制器或从控制器传递到控制器 我有一个名为person的类(它由人的姓名、年龄、地址组成) 我试过这样的东西,但没用 首先,我将对象从控制器传递到视图,如下所示 model.addAttribute("person",person); return "table"; 在table.jsp文件中,我创建了一个链接 < a href="validate.html?person=${person}" >validate< /

我对spring mvc有疑问

是否可以将对象从视图传递到控制器或从控制器传递到控制器

我有一个名为person的类(它由人的姓名、年龄、地址组成)

我试过这样的东西,但没用

首先,我将对象从控制器传递到视图,如下所示

model.addAttribute("person",person);
return "table";
在table.jsp文件中,我创建了一个链接

< a href="validate.html?person=${person}" >validate< /a >

可能吗?如果是,那么怎么做?

你不能这样做。如果您使用的是Spring 3.1.x,您只需执行以下操作: 验证

然后在控制器中,您有:

public String validate(Person person) {
   return "validate";
}
更好的方法是填充会话而不是模型。会话包含可序列化对象:)


有关news Spring MVC功能的更多信息,请参见这里:

您完全可以使用您想要的方式来完成它。您实现了转换器接口,该接口在链接中的spring文档中如下所示:

package org.springframework.core.convert.converter;

public interface Converter<S, T> {
    T convert(S source);
}
package org.springframework.core.convert.converter;
公共接口转换器{
T转换(S源);
}
从字符串到人物,从人物到字符串。所以你的实现应该是这样的

 @RequestMapping(value="/validate",method = RequestMethod.GET)
public String validate(@RequestParam("person")Person person, Model model){
    model.addAttribute("message",person.getName);
            return "validate";
}
public class PersonToStringConverter<Person, String> {
    String convert( Person person ) {
        // some code here that serializes your Person object 
        // into a String that you can later parse back into a person.
        return mySerializedPerson;
    }
}
公共类PersonToStringConverter{
字符串转换(个人){
//这里有一些序列化Person对象的代码
//转换为一个字符串,以后可以解析回person。
返回mySerializedPerson;
}
}
然后是StringToPersonConverter的一个实现,它执行解析、填充并返回Person对象。然后按照Spring文档中的说明配置转换器以供使用,就可以开始了


考虑到上述用法,您需要对序列化的person进行url编码,以便在“a”标记的href中使用。

这样考虑-如何在url中传递person对象?URL只是一个字符串。