我有一个数据表,每行有一个按钮:
<ice:dataTable ... var="item">
<ice:column>
<h:commandButton value="Download" action="#{mybean.downloadItem(item)}" />
</ice:column>
</ice:dataTable>
Run Code Online (Sandbox Code Playgroud)
在支持bean中有这种方法:
public void downloadItem(Item item) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
一切正常(单击该方法时执行),但Eclipse验证失败并显示以下奇怪消息:
方法必须具有签名"String method(),String method(),String方法(String),String方法(String,String),String方法(String,String,String),String方法(String,String,String,String) ,String方法(String,String,String,String,String),String方法(String,String,String,String,String,String),String方法(String,String,String,String,String,String,String),String method(String,String,String,String,String,String,String,String),String方法(String,String,String,String,String,String,String,String,String),String方法(String,String,String, String,String,String,String,String,String,String),String方法(String,String,String,String,String,String,String,String,String,String,String),String方法(String,String,String, String,String,String,String,String,String,String,String,String),String method(String,String,String,String,String,String,String,String,String,String,String,String,String),String方法 tring,String,String,String,String,String,String,String,String,String,String,String,String,String),String method(String,String,String,String,String,String,String,String,String, String,String,String,String,String,String),String方法(String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String),String method(String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String),String method(String,String,String,String,String, String,String,String,String,String,String,String,String,String,String,String,String,String),String method(String,String,String,String,String,String,String,String,String,String, String,String,String,String,String,String,String,String,String)"但是有签名"void method()"
我能做什么?
如果这是相关的,我在Tomcat 7上使用Eclipse Indigo SR1.
Eclipse Facelet HTML Validator针对以下行报告错误"无法将表达式运算符应用于方法绑定":
<ui:fragment rendered="#{!empty managedBean.getSomething('ENUM_VALUE', someInt)}">
Run Code Online (Sandbox Code Playgroud)
我在Juno帮助中找到了这个(我正在使用Kepler):
Applying operator to method binding
#{bean.action * 5}
If bean.action indicates a method "action()" on bean, then it is not legal EL to treat its result as a value. In the example, multiplying action by 5 attempts treat it is as a value.
Run Code Online (Sandbox Code Playgroud)
我无法理解为什么将结果视为价值是不合法的?那么编写EL的正确方法是什么?谢谢!