Java 在SubmitSpringMVC上绑定子对象
我是Java新手,所以这个问题看起来很简单。我有一个这样的模型:Java 在SubmitSpringMVC上绑定子对象,java,spring,jsp,spring-mvc,Java,Spring,Jsp,Spring Mvc,我是Java新手,所以这个问题看起来很简单。我有一个这样的模型: @Entity(name="website") public class Website { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="websiteId", nullable=false, unique=true) private long websiteId; @ManyToOne @JoinColumn(name = "publis
@Entity(name="website")
public class Website {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="websiteId", nullable=false, unique=true)
private long websiteId;
@ManyToOne
@JoinColumn(name = "publisherId")
private Publisher publisher;
public Website() {
}
//... all getter and setter....
}
你看,在Website类中,我有一个Publisher类型的对象:
@Entity(name="publisher")
public class Publisher {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="publisherId", nullable=false, unique=true)
private long publisherId;
private String publisherName;
@OneToMany(fetch=FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name="publisherId")
private List<Website> listWebsite;
public Publisher() {
}
//...all getter and setter...
}
我已将select标记的路径从publisher
更改为publisher.publisherId
,如下所示,来自Shantaram Tupe,但表单无法生成为html。我从publisher
改为publisher.publisherName
,一切看起来都很好,表单可以用html查看,值在publisher.publisherName
中发回服务器。我怎样才能把它发回publisher.publisherId?我的publisherId字段的配置似乎有问题
更新2
我的问题是只生成HTML表单。我尝试过在浏览器上编辑生成的html表单,例如:
<form.....>
<select id="publisher.publisherName" name="publisher.publisherName" size="1">......</select>
</form>
<form.....>
<select id="publisher.publisherId" name="publisher.publisherId" size="1">......</select>
</form>
......
例如:
<form.....>
<select id="publisher.publisherName" name="publisher.publisherName" size="1">......</select>
</form>
<form.....>
<select id="publisher.publisherId" name="publisher.publisherId" size="1">......</select>
</form>
......
一切都很顺利。现在,如何使用publisher.publisherId
生成表单
上次更新
最后,我找到了它。它适用于PublisherName,但不适用于PublisherName,因为PublisherName是字符串类型。我使用的select标记中的转储项(
)的值为NONE
——不能是长类型值。将其更改为0
,并成功生成表单。只需将
标记中的路径从
更改为publisher.publisherId
我这边还有一些事情:
@Column(name=“websiteId”,nullable=false,unique=true)
- 因为数据库中的列名和实体类中的字段名相同
- 因为它是用
注释的,所以它永远不会null,默认情况下uniqe@Id
@JoinColumn
,在@OneToMany
侧使用mappedBy属性,例如@OneToMany(mappedBy=“publisher”)
谢谢你在旁边的建议,我把票打了,但是改变路线没有帮助。起初,我按照您所说的那样放置路径(publisher.publisherId),但表单甚至无法生成为html。我将其更改为publisher,表单生成成功。我将用控制器函数更新我的问题。嗯。。。。我可以提供更多的东西。如果我将路径更改为“publisher.publisherName”,则表单生成成功,数据回发到服务器ok,publisherName的long type值为-fantastic。但是,如果我将其改回“publisher.publisherId”,该表单仍然无法生成。我已用许多内容更新了该问题,以使其更清晰。真的希望你能帮助我摆脱困境。<代码> PuxiSeID 的值可能是什么,除了<代码>没有< /代码>?如果所有都是<代码>长< /代码>类型,请考虑改变<代码>没有< /C> >,改为其他代码>代码>长类型…