可以在JSF中省略setter

时间:2015-05-14 17:11:20

标签: jsf-2 primefaces

我使用WildFly 8.0.2和primefaces 5.2,我有一个p:datatable,其中一列有p:inputSwitch,此p:inputSwitch上的值是方法(返回true或false),因此它没有setter方法,我附加了p:ajax来处理切换事件(开/关),但是当我更改值时它总是引发{ {1}}异常(导致值是一个方法......并且没有setter)。 这是我的代码:

javax.el.PropertyNotWritableException: Illegal Syntax for Set Operation

我尝试使用<p:column styleClass="status #{employee.haveSkill(skill) == true ? 'have' : 'dosntHave'}"> <div style="text-align: center;"> <p:inputSwitch value="#{employee.haveSkill(skill)}" onLabel="#{msgs.yes}" offLabel="#{msgs.no}"> <p:ajax listener="#{skillsController.addSkill(employee, skill)}" /> </p:inputSwitch> </div> </p:column> ,将方法的结果存储在变量中,然后将其分配给c:set组件,但这对我没有用,{{1}总是设置为false(虽然单元格样式类的EL表达式工作正常),这是我尝试过的代码:

p:inputSwitch

那么有没有办法告诉jsf或el不要解雇&#34; set&#34;该组件的方法?并在ajax ??

上执行该监听器

更新 我也尝试使用p:inputSwitch,但它也提升了<p:column styleClass="status #{employee.haveSkill(skill) == true ? 'have' : 'dosntHave'}"> <div style="text-align: center;"> <c:set var="have" value="#{employee.haveSkill(skill)}" scope="request" /> <p:inputSwitch value="#{have}" onLabel="#{msgs.yes}" offLabel="#{msgs.no}"> <p:ajax listener="#{skillsController.addSkill(employee, skill)}" > </p:ajax> </p:inputSwitch> </div> </p:column>

ui:param

0 个答案:

没有答案