具有非String参数的JSF调用方法 [英] JSF calling method with non String parameters

查看:129
本文介绍了具有非String参数的JSF调用方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 < h:commandButton value =添加到购物车
呈现=#{movieDisplayController.movi​​e.available!= 0}
action =#{cartController.addMovie(movieDisplayController.movi​​e,'2')}>
< / h:commandButton>

动作在日食中以红色加下划线(kepler JEE)并显示:


方法必须有签名String method(),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
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,Strin g,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 met hod(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(Movie,Integer)


该方法定义为:

  public String addMovie(Movie movie,Integer quantity){
// ...
return null;
}

当我点击按钮时,它正常运行 - 是日食中的错误还是我做错了吗?



编辑:正确运行:

  action =#{cartController.addMovie(movieDisplayController.movi​​e,2)}> 

  action =#{cartController.addMovie(movieDisplayController.movi​​e,
movieDisplayController.quantity)}>

也是如此报告

解决方案

引用@BalusC在将参数设置为JSF操作


重定向到一个web.xml的Servlet 3.0容器(Tomcat 7,Glassfish 3,JBoss AS 6等),根据声明定义了Servlet 3.0,那么你应该能够将参数直接传递给EL的动作方法由EL 2.2(它是Servlet 3.0的一部分)支持。


你的方式应该是完全正确的,我想这是一个错误eclipse kepler。


I have in my JSF:

<h:commandButton value="Add to Cart"
    rendered="#{movieDisplayController.movie.available != 0}"
    action="#{cartController.addMovie(movieDisplayController.movie, '2')}">
</h:commandButton>

The action is underlined in red in eclipse (kepler JEE) and displays:

Method must have signature "String method(), String method(), String method(String), String method(String, String), String method(String, String, String), String method(String, String, String, String), String method(String, String, String, String, String), String method(String, String, String, String, String, String), String method(String, String, String, String, String, String, String), String method(String, String, String, String, String, String, String, String), String method(String, String, String, String, String, String, String, String, String), String method(String, String, String, String, String, String, String, String, String, String), String method(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 method(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 method(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 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)" but has signature "String method(Movie, Integer)"

The method is defined as :

public String addMovie(Movie movie, Integer quantity) {
    //...
    return null;
}

It runs correctly when I hit the button - is it a bug in eclipse or am I doing something wrong ?

EDIT: runs also correctly with :

action="#{cartController.addMovie(movieDisplayController.movie, 2)}">

and

action="#{cartController.addMovie(movieDisplayController.movie,
    movieDisplayController.quantity)}">

too so reported

解决方案

Quoting @BalusC in Passing parameter to JSF action

When you're targeting a Servlet 3.0 container (Tomcat 7, Glassfish 3, JBoss AS 6, etc) with a web.xml whose root declaration definies Servlet 3.0, then you should be able to just pass the parameter straight into the action method by EL as that's supported by EL 2.2 (which is part of Servlet 3.0).

your way should be completely right, and I guess it's a bug in eclipse kepler.

这篇关于具有非String参数的JSF调用方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆