现在我需要设置变量的帮助。 我有两个实体赛季和锦标赛,锦标赛属于赛季。 所以现在我创造了一个赛季,我看到了本赛季的名单。我这里有一个“选择”按钮,可以将实际季节保存到会话范围:
public String selectSezona(Sezona sezona){
this.sezona = sezona;
return "index";
}
所以现在我选择了一个赛季,现在我想在本赛季创造锦标赛,但我不想选择赛季,所以我写这个:
<h:inputHidden value="#{turnaje.turnaj.setSezona(sezony.sezona)}" />
这是隐藏的输入文本,应该为本次锦标赛分配实际赛季,但这不会起作用:(。错误是:javax.el.PropertyNotWritableException。我看到那个赛季已经设定,因为我看到了它的名字。如何看待这个问题?请帮忙 THX
编辑:
我也在锦标赛中有吸气剂和制定者
@ManyToOne
private Sezona sezona;
public Sezona getSezona() {
return sezona;
}
public void setSezona(Sezona sezona) {
this.sezona = sezona;
}
但为什么我应该没有参数的方法setSezona?
答案 0 :(得分:2)
嗯,您有一个selectSezona(...)
方法,但不是setSezona(...)
。
事实上,您的隐藏字段需要一个属性作为其值,而不是方法。
你的setSezona(...)
没有返回任何内容,但是,JSF需要一种获取初始值的方法。
因此,您需要将表达式更改为#{turnaje.turnaj.sezona}
。
您仍然会收到错误,因为JSF无法在String
和Sezona
之间进行转换,因此您还需要为隐藏字段提供转换器。